01 Application Architecture - Pioneer18/Rent-A-Car GitHub Wiki
Design Philosophy:
This application was designed with SOLID principles to keep it easy to adjust, extend, test, and scale. It was built with NestJS, an out-of-the-box application architecture which allows developers and teams to create highly testable, scalable, loosely coupled, and easily maintainable applications. The architecture is heavily inspired by Angular".
- Modules: Modular injection based design
- TypeScript: Type system and OOP with classes
- Providers: Injectable services, repositories, factories, utilities, etc.
- Configuration: Nested configuration objects for grouping related configuration settings; e.g. database config, API config, etc.
- Exception Filters: Error Handling and Http Exception Filters
- Pipes: Transform and validate request input data before passing to handlers
- Guards: Authorize whether a given request will be handled by the route handler or not
- Middleware:
- Caching:
- Serve Static Files: Serve frontend static content like a Next.JS Single Page Application
- Testing: Jest e2e and unit testing