You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A centralized, production-ready web platform for managing room bookings and shared campus resources. Built with Next.js 15, PostgreSQL, Prisma, and Tailwind CSS.
Features
JWT Authentication with role-based access control (Student, Club Admin, Department Officer, Super Admin)
Resource & Room Registry — create/manage rooms, equipment, and assets with booking constraints
Weekly Calendar View — real-time availability with visual slot display
Deterministic Waitlist — FCFS mechanism with automatic promotion on cancellation
Approval Workflow — routed requests with approve/reject + comments
Audit Logging — immutable log for all booking and admin actions
Real-time Notifications — in-app notification bell with unread counts
Tech Stack
Layer
Technology
Frontend
Next.js 15 (App Router), React 19, Tailwind CSS
Backend
Next.js API Routes (REST), Zod validation
Database
PostgreSQL, Prisma ORM
Auth
JWT (jose), bcryptjs, HttpOnly cookies
Email
Nodemailer
Icons
Lucide React
Getting Started
Prerequisites
Node.js 18+
PostgreSQL 14+ (or Docker)
1. Clone and install
npm install
2. Configure environment
cp .env.example .env
# Edit .env with your PostgreSQL connection string and JWT secret
3. Set up database
# Start PostgreSQL with Docker (optional)
docker compose up db -d
# Push schema and generate client
npx prisma db push
npx prisma generate
# Seed with test data
npm run db:seed