Project structure
The project is organised as follows:
readme.md
config/
<-- configuration files per environmentsrc/
index.ts
<-- Application launch and teardownserver.ts
<-- API server setup and initialisation logicdb.ts
<-- Db initialisationlogger.ts
<-- Logger setupapp.ts
<-- The main application routerbase/
website/
<-- Documentation websitedocs/
src/
static/
.github/workflows/
<-- CI/CD github actions
Project setup
- nvm setup for node version
- Typescript setup
- Linter
- Import synax
- Build scripts
- Production setup
- Nodemon
- Reload on config and code changes
- Ignores tests
- Dev Tool inspect
- Tests
- Jest for typescript
- Detect open handles
- Code coverage
- Supertest
- Config
- Env variables support
- Defaults, dev, test & prod environment settings
- Logger
- Json output
- Api request log
- Docker file
- Incremental changes
- Test image
- Production image excluding dev dependencies
- Private packages
- CI/CD - GitHub Actions
- Linter
- Tests
- Licences audit
- Sonarqube
- Integration env
- Public doc to github pages
- OpenAPI doc
- Build image
- Publish image to Github packages
- Helm chart
- Server setup
-
ok
andnot found
middlewares - error handler for uncatched and silent exceptions
- exit on initialization error
- health probe
- prometheus metrics
- license, licenses and license summary endpoints
- API doc-[x] Persistency
- [x] OpenAPI doc
- [x] Development server url from config - Mongodb setup
-