This monorepo contains the following apps:
- API Gateway Service - REST API gateway for various services. The service applies auth guards to each protected API route.
- Authentication Service - This service handles authenticating login and access. It provides encrypting and decrypting of cookie data containing JWT tokens, and generating, verifying and revoking of JWT tokens.
- Communication Service - This service is used for sending emails utilizing Handlebars and Nodemailer.
- Entity Service - This service handles entities such as Tasks, Projects, Organisations, Members and Notification. The service connects to PostgreSQL using MikroORM. The service enforces CASL abilities based access control based on the authenticated user.
- CMS Service - A CMS built using PayloadCMS and used for public pages on the frontend.
- NATS Messaging Server - NATS is used for communication between the backend microservices.
- PostgreSQL Server - Postgres is used by both the Entity Service and the CMS.
The backend server was originally a monolithic Nest.js app with the fronend is a seperate repo. These old repos can be found at the links below