This repository is structured as a monorepo containing multiple NestJS microservices and Vite web application. It utilizes Turborepo for managing builds and TypeORM for database interactions and bunch of other cool stuff.
- GitHub Actions
- CD (GCP + Terraform)
- Create docker-compose for local development (currently only databases and message broker are included)
- TODOs in code (and infinite number of small issues that I did not have time to fix)
| Name | Platform | Description |
|---|---|---|
| Service Gateway | Backend | The GraphQL gateway for routing queries and mutations between different services. |
| Service Events | Backend | Manages event-related data and interactions. |
| Service Auth | Backend | Handles authentication and user management. |
| Web | Frontend | The main web application. |
| Storybook | Frontend | Storybook for UI components. |
| Name | Description |
|---|---|
| Backend Contracts | TypeScript interfaces and constants used across different backend services. |
| Backend Shared | Shared configurations, utilities, and modules used across multiple backend services. |
| UI Library | A collection of reusable React components and utilities for frontend applications. |
- Message Broker: RabbitMQ is used for communication between services.
- Databases: PostgreSQL is used with separate instances for authentication and event services.
This project uses Turborepo for build system management. You can find more information by reading the Turborepo documentation.
- Run
docker-compose upto start databases and rabbitmq. - Run
yarn installto install dependencies. This project uses Yarn workspaces to manage dependencies across all apps and packages. - Run
yarn prepare:huskyto set up Git hooks. - Run
yarn buildto build all packages and service (remember that packages are static and required to run the app services) - Run
yarn devto start all services in development mode- The GraphQL gateway will be available at
http://localhost:8080/graphql
- The GraphQL gateway will be available at
yarn dev- Starts all services in development mode with live reloading.yarn build- Builds all services.yarn lint- Lints the codebase using ESLint.yarn format- Formats code using Prettier.