This project uses NX to manage the Monorepo structure. NX is a build system that helps manage several libraries and applications in a single repository. NX makes it very easy to extract code into completely separate libraries and import them into our applications.

The following is a brief outline of the important directories in the monorepo:

/apps - Core Applications

/backend - NestJS Backend

/frontend - NextJS Frontend

/frontend-e2e - E2E Tests for the frontend

/components-e2e - E2E Tests for components

/libs - Supporting Libraries

/messaging - Common WebSocket Protocol

/components - Components with Storybook

/database - NestJS Database Module (only way to access the database)

/gql - Generation of frontend mutations and queries to the API

/prisma - Database Schema

/schema.prisma - Where to describe our database relations

Stack

Frontend

Backend