SOLID principles based NodeJS API template

Features

  • SOLID Principles:
    • S: Single-responsibility Principle ✅
    • O: Open-closed Principle
    • L: Liskov Substitution Principle ✅
    • I: Interface Segregation Principle
    • D: Dependency Inversion Principle (with TSyringe) ✅
  • Typescript ✅
  • ExpressJS ✅
  • Swagger Docs UI ✅
  • Docker & Docker compose ✅
  • Error handler ✅
  • CORS with multi origins ✅
  • Dotenv ✅
  • Date provider with DayJS ✅
  • Request validators with Celebrate ✅
  • Unit tests with Jest ✅
  • Integration tests with Supertest ✅
  • Tests Coverage Reports ✅
  • Sentry ✅
  • Rate Limiter with node-rate-limiter-flexible
  • CLI:
    • Add module ✅
    • Add module/useCase ✅
    • Add module/repository ✅
    • Add provider

Env

Enable Rate Limiter

RATE_LIMITER_ENABLED=1

Enable Sentry

SENTRY_ENABLED=1
SENTRY_DSN=https://your-sentry-dsn-domain