NestJS challenge of a selective process to be made within a week. The system is divided into User, Client, Product, Order, Order Items, and Selling Reports entities containing different types of relationships. The main features are Authentication, Permission, and Clients and Products Management. The API is connected with AWS S3 and deployed on EC2, based on a Clean architecture and documented on Swagger.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
You will need to have Docker, Docker Compose, and Node version 20.11.1 installed in your machine.
- Follow the official documentation to install the Node: https://nodejs.org/en/download
To run the project for the first time you must follow these steps:
- Clone the GitHub repository:
git clone https://github.com/Giovaniavs/nestjs-node-challenge.git
-
Create a .env file with these credential availeble at: https://github.com/brocoders/nestjs-boilerplate/blob/main/env-example-relational
-
In you .env:
Change DATABASE_HOST=postgres to DATABASE_HOST=localhost
Change MAIL_HOST=maildev to MAIL_HOST=localhost
- Open the terminal and run:
docker compose up -d postgres adminer maildev
npm install
npm run migration:run
npm run start:dev
- Open http://localhost:3000
- Deployed version http://ec2-3-80-202-206.compute-1.amazonaws.com:3000/
- Authentication
- Permission/Protected Routes
- Email confirmation
- Users CRUD
- Clients CRUD
- Products CRUD
- Swagger documentation
- S3 Bucket integration
- EC2 Server deployed
- Clean Architecture
- Orders Management
- Custom Reports
- App Crash Monitoring
Developed by Giovani Albuquerque