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