AI-first platform for holistic health coaching.
- Frontend: Next.js 14 (App Router, TypeScript, Tailwind CSS)
- Backend: NestJS (TypeScript, Clean Architecture)
- Database: PostgreSQL with Prisma ORM
- Monorepo: Turborepo
- Testing: Jest + React Testing Library + Supertest
nova/
├── apps/
│ ├── web/ # Next.js frontend (port 3000)
│ └── api/ # NestJS backend (port 3001)
├── packages/
│ ├── ui/ # Shared React components
│ ├── types/ # Shared TypeScript types
│ ├── config/ # Shared configs (eslint, tsconfig)
│ └── utils/ # Shared utilities
├── docker-compose.yml
└── turbo.json
- Node.js >= 18.0.0
- npm >= 10.0.0
- Docker & Docker Compose
cd nova
npm install# Copy environment files
cp .env.example .env
cp apps/api/.env.example apps/api/.env
cp apps/web/.env.example apps/web/.envdocker compose up -dnpm run db:generate
npm run db:migratenpm run devThis starts:
- Web app: http://localhost:3000
- API: http://localhost:3001
| Command | Description |
|---|---|
npm run dev |
Start all apps in development mode |
npm run build |
Build all apps |
npm run test |
Run all tests |
npm run lint |
Lint all packages |
npm run db:migrate |
Run database migrations |
npm run db:generate |
Generate Prisma client |
npm run db:studio |
Open Prisma Studio |
npm run clean |
Clean all build artifacts |
src/
├── domain/ # Business logic, entities, value objects
│ ├── entities/
│ ├── value-objects/
│ └── repositories/ # Interfaces only
├── application/ # Use cases, DTOs
│ ├── use-cases/
│ └── dtos/
├── infrastructure/ # External services, database
│ ├── database/
│ └── services/
└── presentation/ # Controllers, API layer
└── controllers/
- User: Core user entity with metadata
- Profile: Health metrics (weight, height, age, sex, objective)
- DailyEntry: Logs for food, exercise, sleep, mood, energy
- Agent: AI coaching agents configuration
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Health check |
| POST | /api/users |
Create user |
| GET | /api/users |
List users |
| GET | /api/users/:id |
Get user by ID |
# Run all tests
npm run test
# Run with coverage
cd apps/api && npm run test:cov
# Run e2e tests
cd apps/api && npm run test:e2e# Start PostgreSQL
docker compose up -d
# Start with pgAdmin (optional)
docker compose --profile tools up -d
# Stop all
docker compose downpgAdmin available at http://localhost:5050 (admin@nova.local / admin)
Private - All rights reserved