This project is a RESTful API developed using Node.js, Express.js, and MySQL, serving as the backend for an e-commerce application. The API provides functionalities for user registration, email verification, and login to facilitate a seamless shopping experience.
- User Registration: Users can create an account by providing necessary information.
- Email Verification: Email confirmation is required to activate user accounts.
- User Login: Registered users can securely log in to access personalized features.
- Database Integration: MySQL is used as the database to store user information securely.
- Node.js: A JavaScript runtime environment for server-side development.
- Express.js: A web application framework for Node.js, providing robust routing and middleware features.
- MySQL: A relational database management system for data storage and retrieval.
- Docker: A containerization platform used for packaging the application and its dependencies.
- GitHub Actions: An automation tool for executing tests and deploying the application to Docker.
The API is developed using Node.js and Express.js, with MySQL as the database backend. Continuous testing and integration have been implemented using GitHub Actions. Regular updates and improvements will be made throughout the development process.
- Clone this repository to your local machine.
- Install the required dependencies using
npm install
. - Set up a MySQL database and update the connection details in the configuration file.
- Run the application using
npm dev
. - Access the API endpoints using an API client, such as Postman.
Automated unit tests have been implemented using a testing framework Jest. To run the tests, use the command npm test
. The tests will be executed automatically through GitHub Actions when pushing changes, ensuring the application's integrity.
The application is deployed to Docker using GitHub Actions. When the automated unit tests are completed successfully, the application will be built into a Docker image and deployed to a containerized environment.
Contributions to this project are welcome. If you would like to contribute, please fork the repository and create a pull request following the guidelines in the CONTRIBUTING.md file.
This project is licensed under the MIT License, granting you the freedom to use, modify, and distribute the code as per the license terms.
For any questions or inquiries, please contact the project team at juanj.vergaram@gmail.com.