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