Project Structure

The Nine Line project is organized as a monorepo using Turborepo, which allows multiple applications and packages to coexist in a single repository.

This structure promotes code reuse, consistency, and efficient development workflows.

Below is an overview of the main directories and their purposes:

nine-line/
├── apps/
│   ├── api/                   # Main backend API (Node.js, Express, Prisma)
│   ├── web/                   # Frontend application (Next.js, React)
│   ├── backoffice/            # Frontend application (Next.js, React)
│   └── docs/                  # Documentation site (Next.js or static docs)
├── packages/
│   ├── ui/                    # Shared UI components (React, TypeScript)
│   ├── eslint-config/         # Shared ESLint configuration
│   └── tsconfig/              # Shared TypeScript configuration 
├── docker-compose.yml         # Orchestration for API, database, and Redis
├── package.json               # Root dependencies and scripts
├── turbo.json                 # Turborepo configuration
└── README.md                  # Project overview and setup instructions

Example: Backend API Structure

api/
├── src/
│   ├── modules/
│   │   ├── users/
│   │   ├── appointments/
│   │   ├── spaces/
│   │   ├── ratings/
│   │   ├── auth/
│   │   └── rbac/
│   ├── core/        # Shared core logic (errors, types, etc.)
│   └── config/      # Environment and service configuration
├── prisma/          # Prisma schema and migrations
├── scripts/         # Setup and utility scripts
├── docs/            # API documentation (Markdown)
├── package.json     # API-specific dependencies and scripts
└── Dockerfile       # API Docker configuration

Last updated