Kala is a full-stack live creative learning marketplace that connects students with verified instructors for structured, slot-based creative sessions.
It transforms informal creative learning into a secure, organized, and transaction-safe digital platform.
Frontend
- React
- TypeScript
Backend
- NestJS
- PostgreSQL
- Prisma ORM
- JWT Authentication
- Role-Based Access Control (RBAC)
Monorepo Setup
- pnpm workspaces
- apps/web (frontend)
- apps/api (backend)
Kala is designed as an interview-grade backend system demonstrating:
- Relational data modeling (3NF)
- Foreign key enforcement
- Unique constraints to prevent double booking
- Slot reservation concurrency control
- Transaction-safe booking lifecycle
- Modular NestJS architecture
- Type-safe development using Prisma
- Clean separation of concerns
- Role-based authentication (Student / Instructor / Admin)
- Instructor onboarding & admin approval workflow
- Slot-based availability management
- Conflict-safe booking system
- Payment lifecycle integration (planned)
- Review and rating system
- Secure relational integrity with PostgreSQL
AVAILABLE → RESERVED → BOOKED
PAYMENT_PENDING → CONFIRMED → COMPLETED → CANCELLED
- Slots are reserved before payment.
- Each slot can have only one booking (database enforced).
- Each booking has exactly one payment record.
- Reviews are allowed only after booking completion.
kala/ ├── apps/ │ ├── web/ → React frontend │ └── api/ → NestJS backend ├── pnpm-workspace.yaml └── package.json
pnpm install
DATABASE_URL="postgresql://user:password@localhost:5432/kala" JWT_SECRET="your-secret"
cd apps/api pnpm prisma migrate dev
pnpm --filter api dev
pnpm --filter web dev
Kala is built as a structured learning and portfolio project to demonstrate:
- Clean backend architecture
- Concurrency-aware system design
- Secure booking lifecycle handling
- Strong relational database modeling
- Scalable modular NestJS development
Fathima