- Programming language: Typescript
- Framework: NestJS
- Formatter: Prettier
- Code quality scanner: Eslint
- Pre-commit checker: CommitLint + Husky
- API docs: Swagger UI
- ENV manager: config + dotenv
- Authentication: jsonwebtoken + bcryptjs
- pino (Default)
- winston
- NestJS logger
- NestJS Event
- NestJS RabbitMQ
- Kafka
- NestJS Kafka (Default)
- confluent-kafka-javascript
npm ci
docker-compose up -d postgres mongo kafka-admin rabbitmq
docker-compose exec -it mongo mongosh --eval 'rs.initiate({ _id: "mongo-set", members: [{ _id: 0, host: "mongo:27017" }]})'
npm run start:dev
npm run start:prod
npm test
npm run test:e2e
npm run test:bvt
# generate new migration file
npm run migration:typeorm:generate --db=<db> ---name=<name>
# revert migration
npm run migration:typeorm:revert --db=<db>
# generate new migration file
npm run migration:mongo:generate --db=<db> ---name=<name>
# run migration
npm run migration:mongo:up --db=<db>
# revert migration
npm run migration:mongo:down --db=<db> -- --last #Undo the last applied migration
npm run migration:mongo:down --db=<db> -- --all #Undo all applied migrations
# check migration status
npm run migration:mongo:status --db=<db>