- typescript - Language of choice
- node.js - Runtime
- koa - Web Framework for nodejs
- tsoa - API Generation Framework
- typescript-ioc - Dependency Injection
- jwt - Token Authentication
- postgres - Node postgres client
- squel - Declarative SQL Queries
- Liquibase - Database Migrations
/
.github/ - Github Meta pages
.s2i/ - s2i scripts for openshift
.vscode/ - vscode settings
config/ - project configuration
database/ - liquibase & database migration scripts
dist/ - Location of built scripts
docs/ - project documentation
openshift/ - Openshift scripts and templates
scripts/ - Scripts for supporting development tasks related with the project
src/ - Source code
client/ - The API Client
common/ - Code commone to client and server
controllers/ - Controllers (i.e. endpoints)
db/ - Database Infrastructure
infrastructure/ - Base classes and other utilities
models/ - Data Models used by controllers
services/ - Services used by controllers
templates/ - Templates used in code generation
The following diagram shows the general authentication flow of the authentication from the frontend into the backend and back.
In order to more cleanly facilitate per-request context and resources such as the current user, this project uses dependency injection and an IOC container that is created on a per-request basis.
This project is using typescript-ioc. Refer to their docs for more information.