Not yet usable, as is still in active development with major changes happening.
Bold are required components (not easy to replace)
| Component | Using | Descrption |
|---|---|---|
| Base | NestJS | |
| Database | TypeORM | |
| File Upload | Multer | |
| Logger | Winston | |
| Error Reporting | Sentry | |
| Validation | Class-Validator | |
| Documentation | Swagger | |
| Configuration | Dotenv | |
| Authentication | Passport.js | |
| Testing | Mocha & Chai | |
| Code Style | Airbnb & TS-Lint |
- File Upload (disk, s3, memory)
- Authentication (JWT, OAuth)
- Logger
- Request Context
- Error Reporting
- Database Migrations
- Database Seeding
- Testing (e2e, unit)
$ npm install
Create new file .env in project root folder using example.env as a template.
Development environment:
$ npm run start
Production environment:
$ npm run build
$ node dist/src/api.ts
$ npm run migrate sync
Creating new migration named createSomeModel:
$ npm run migrate create createSomeModel
Other commands are self-explanatory:
$ npm run migrate [up|down|executed|pending|create]
First run the testing server:
$ npm run start:test
Then run Mocha testing framework:
$ mocha test/*.spec.ts
Before hooks in e2e/ directory will clean test database, initialize sequelize and seed fake data.