Amatronic is an RESTful API made for educational's purposes, it's a personal project to contribute with my Career portfolio and was built to serve as an Back-end of an E-commerce application, whatever is the theme, it's functional 🔥🚀.
📌 Project requeriments :
All business rules for this API can be found on this link.
💻 Enviroment Setup :
# Clone this repository
$ git clone https://github.com/GabrielMorettii/Amatronic.git
# Enter the repository:
$ cd Amatronic
# Install the dependencies:
$ yarn
# Create the app containers:
$ docker-compose up -d
# Run the migrations
$ yarn typeorm migration:run
# Run the application
$ yarn dev
# The server is running at port 3333 (http://localhost:3333/)
🧪 Run the tests :
# To run all tests and generate coverage reports:
$ yarn test
# The coverage reports can be seen by going to /coverage/lcov-report/index.html and opening this html file in your browser.
📚 Docs :
All API endpoints have been documented using Swagger. To view just access the URL below
Remember to start the server first
🔧 Built With :
- BCrypt - For password-hashing
- Cors - Enable the cross-origin acess
- Docker - Enables the containerization
- ExpressJS Async Errors - Error handling support for express
- JSONWebToken - For authentication
- Swagger - Helps on the RESTful API Design and documentation
- TSConfig-Paths - Modules Mapping
- TSyringe - Dependency Injection
- TypeORM - ORM
- TypeScript - Javascript's superset
- eslint - JS Linter and code style
- JEST - Tests
- prettier - Code formatter
- super-test - Test HTTP requests
- NodeJS - Build the server
- AWS - IaaS used in the production
- GitHub - CI + CD
- express - Router of the Application
- postgreSQL - Relational Database
- pm2 - Process Manager used in the production
- dotenv - Environment loader
- multer - File Upload
🧰 Support tools :
- Amazon SES - Email Provider
- Amazon S3 - Storage Service
🧐 Contributing :
You can send how many PR's do you want, I'll be glad to analyse and accept them! And if you have any question about the project...
Email-me: [email protected]
Connect with me at LinkedIn
Thank you!
🔑 License :
This project is licensed under the MIT License - see the LICENSE.md file for details.