A production-grade full-stack application for visualizing and managing campus classroom and facilities availability in real-time.
Frontend (Next.js/React/Tailwind)
Backend (Node.js - NestJS)
Data Storage (PostgreSQL)
Real-Time Layer (WebSockets)
Visualization Layer (D3.js / Three.js)
- Interactive Visualization: 2D/3D building, floor, and room visualization
- Real-time Updates: WebSocket-based live room status updates
- Data Import: Support for JSON and CSV bulk imports
- Advanced Search: Filter rooms by type, capacity, and availability
- Schedule Management: Complete scheduling system with conflict detection
- Clean Architecture: SOLID principles, dependency injection, type-safe DTOs
- Production Ready: Docker, CI/CD, comprehensive testing (90%+ coverage)
├── backend/ # NestJS backend (Clean Architecture)
├── frontend/ # Next.js frontend (App Router)
├── docs/ # Documentation (API, ERD, Architecture)
├── docker/ # Docker configurations
├── nginx/ # Nginx reverse proxy config
└── .github/ # CI/CD workflows
- Node.js 18+
- PostgreSQL 14+
- Docker & Docker Compose (optional)
- Clone and Install
git clone <repository-url>
cd Rooms- Backend Setup
cd backend
npm install
cp .env.example .env
# Configure database connection in .env
npm run db:migrate
npm run db:seed
npm run start:dev- Frontend Setup
cd frontend
npm install
cp .env.example .env.local
npm run devdocker-compose up -d# Backend tests (90%+ coverage)
cd backend
npm run test
npm run test:e2e
npm run test:cov
# Frontend tests (70%+ coverage)
cd frontend
npm run test
npm run test:coverage- JWT-based authentication
- Input validation on all endpoints
- CORS restrictions enforced
- File upload sanitization
- SQL injection prevention via Prisma ORM
- Framework: NestJS
- ORM: Prisma
- Database: PostgreSQL
- Real-time: Socket.IO
- Validation: class-validator, class-transformer
- Testing: Jest, Supertest
- Framework: Next.js 14 (App Router)
- UI: React, TailwindCSS
- Visualization: D3.js, Three.js
- State Management: React Hooks
- Testing: Vitest, React Testing Library
MIT
YOU