This project is made with the help of Claude (1M context).
A production-grade hotel booking platform built with Next.js App Router, Prisma, and PostgreSQL.
| Technology | Purpose |
|---|---|
| Next.js 16.1 | Full-stack framework (App Router) |
| TypeScript 5.x | Language (strict mode) |
| Prisma 7.2 | ORM |
| PostgreSQL 17 | Primary database |
| Redis 7 | Caching & job queues |
| BullMQ 5.70 | Background jobs |
| Razorpay | Payment gateway |
| Resend | Email delivery |
| Zod 4.3 | Validation |
| Tailwind CSS 4 | Styling |
- Node.js 22+
- Docker & Docker Compose (for PostgreSQL and Redis)
-
Clone and install:
git clone <repo-url> cd vicity npm install
-
Set up environment variables:
cp .env.example .env # Edit .env with your values -
Start databases:
docker compose up -d
-
Set up the database:
npm run db:generate npm run db:migrate npm run db:seed
-
Run the development server:
npm run dev
The app runs at http://localhost:6912. API docs are available at
/api/docs/ui.
| Command | Description |
|---|---|
npm run dev |
Start dev server (port 6912, Turbopack) |
npm run build |
Production build |
npm start |
Start production server |
npm run lint |
Run ESLint |
npm run type-check |
TypeScript type checking |
npm run db:generate |
Generate Prisma client |
npm run db:migrate |
Run database migrations |
npm run db:push |
Push schema changes (no migration) |
npm run db:seed |
Seed database with test data |
npm run db:studio |
Open Prisma Studio |
npm test |
Run tests |
npm run test:coverage |
Run tests with coverage |
app/
├── (site)/ # Public-facing pages (home, rooms, booking, auth)
├── admin/ # Admin dashboard
└── api/ # API route handlers (versioned under /api/v1/)
lib/
├── services/ # Business logic layer
├── middleware/ # Auth, rate limiting, validation
├── validators/ # Zod schemas
└── utils/ # Shared utilities
prisma/
├── schema.prisma # Database schema
└── seed.ts # Seed script
docs/
├── requirements/ # PRD, BRD, specs
├── architecture/ # Implementation plan, tech decisions
└── reference/ # Feature list, audit reports
Development:
docker build --target development -t vicity-dev .Production:
docker build --target production -t vicity .