An opinionated minimal boilerplate for clean architecture
Report Bug
·
Request Feature
Table of Contents
A minimal Rest API template trying to follow clean acrhitecture guidelines
All the assets related to http server are all located in src/server. All the server related setup is happening in express.api.ts as a single source of truth.
Controllers which serves the http resources are located under server/controllers. Each controller is encouraged to find the down stream services using service locators using dependency injection
The project uses custom helpers located in src/server/helpers to decrease the surface area of dependencies. Notably using custom decorators for controllers and custom logging utility.
The domain is where all your domain entities and business logic goes. Care should be taken so that the domain is clean and free of framework related assets and should be properly encapuslated using services or usecases.
The project is setup to run ESLint on precommit
The project is setup with commit zen utility to generate conventional commits
Commitlint will kick in on each commit message to prevent non conventional commits. Use the below command to invoke the commit message generator
npm run commit
The project uses Kustomize to generate K8s Manifest
make deploy-dev
deploys to Dev cluster
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request