Project highlights
-
Auth & RBAC: JWT issuance, refresh-aware guards and role decorators are wired through NestJS's DI system, so route-level access checks stay declarative and testable.
-
Persistence Layer: TypeORM entities map cleanly to PostgreSQL with migrations, giving the API a deterministic schema lifecycle suitable for production deployment.
-
Validation & DTOs: Class-validator pipes enforce contract integrity at the boundary, surfacing structured 400 errors before requests touch the service layer.