A unified platform for intelligent campus management β Streamline academic operations with AI-powered timetable generation, smart elective selection, and seamless event coordination.
- Problem Statement
- Overview
- Features
- Tech Stack
- Project Structure
- Quick Start
- One-Command Setup
- Documentation
- Screenshots
- Contributing
- Roadmap
University campuses face significant operational challenges with fragmented systems β timetable scheduling, elective allocation, and event management are handled through separate, often manual processes. This leads to:
- Scheduling conflicts when rooms, teachers, or time slots are double-booked
- Unfair elective allocation not based on objective criteria like CGPA
- Poor event visibility with no central place for students to discover activities
- High administrative overhead from managing everything in spreadsheets
Smart Campus Utility Hub solves these problems by providing a unified, web-based platform that automates intelligent timetable generation, CGPA-based elective allocation, and centralised event management β accessible to students, faculty, and admins from a single interface.
Smart Campus Utility Hub is a comprehensive, full-stack campus management platform designed to revolutionize how educational institutions handle scheduling, electives, and events. Built with modern web technologies, it provides a seamless experience for students, faculty, and administrators.
- π€ AI-Powered Scheduling - Intelligent timetable generation with automatic conflict detection
- π― Smart Allocation - CGPA-based elective selection with fair distribution algorithms
- π Event Management - Unified platform for campus events and club activities
- π Secure & Scalable - JWT authentication with enterprise-grade security
- π¨ Modern UI/UX - Beautiful, responsive design with smooth animations
- 5,000+ Students Connected
- 100+ Campus Events Managed
- 50+ Active Clubs
- Automated Generation - Backtracking algorithm for optimal scheduling
- Conflict Detection - Real-time validation of scheduling conflicts
- Room Allocation - Intelligent resource optimization
- Export Options - Download timetables in multiple formats
- Multi-View Support - Day, week, and month views
- CGPA-Based Allocation - Fair distribution based on academic performance
- Preference Ranking - Students can prioritize their choices
- Real-Time Availability - Live seat count updates
- Subject Management - Comprehensive subject catalog with:
- Artificial Intelligence
- Data Warehousing & Data Mining
- Big Data Analytics
- Cloud Computing
- Machine Learning
- Network Security
- And more...
- Event Discovery - Browse and search campus events
- RSVP Management - Easy registration and tracking
- Club Activities - Manage club memberships and activities
- Event Creation - Simple event posting interface
- Notifications - Real-time updates for upcoming events
- JWT Authentication - Secure token-based authentication
- Role-Based Access - Student, Faculty, and Admin roles
- Password Encryption - bcrypt hashing for user credentials
- Rate Limiting - Protection against brute-force attacks
- CORS & Helmet - Enhanced security headers
| Technology | Version | Purpose |
|---|---|---|
| React | 19+ | UI Framework |
| TypeScript | 5.x | Type Safety |
| Vite | 7.x | Build Tool |
| Tailwind CSS | 3.x/4.x | Styling |
| Framer Motion | 12.x | Animations |
| React Router | 7.x | Routing |
| TanStack Query | 5.x | Data Fetching |
| Axios | 1.12+ | HTTP Client |
| Zustand | 5.x | State Management |
| Radix UI | Latest | Accessible Components |
| Lucide React | 0.4+ | Icons |
| Lottie React | 2.4+ | Animations |
| Technology | Version | Purpose |
|---|---|---|
| Node.js | 18+ | Runtime |
| Express.js | 5.x | Web Framework |
| PostgreSQL | 13+ | Database |
| JWT | 9.x | Authentication |
| bcryptjs | 3.x | Password Hashing |
| Joi | 17.x | Validation |
| Winston | 3.x | Logging |
| Helmet | 7.x | Security |
| CORS | 2.x | Cross-Origin Resource Sharing |
- Bun - Fast JavaScript runtime (frontend alternative)
- Jest - Testing framework
- Supertest - API testing
- Nodemon - Development server
- ESLint - Code linting
smart-campus-utility-hub/
β
βββ .github/ # GitHub configuration
β βββ workflows/
β β βββ lint.yml # CI: lint + type-check + tests
β βββ ISSUE_TEMPLATE/ # Issue templates (bug, feature, good-first-issue)
β βββ PULL_REQUEST_TEMPLATE.md
β
βββ smart-campus-backend/ # Node.js / Express API
β βββ src/
β β βββ app.js # Express application entry point
β β βββ config/
β β β βββ db.js # PostgreSQL connection pool
β β βββ middleware/
β β β βββ auth.middleware.js # JWT authentication
β β β βββ errorHandler.js # Global error handling
β β β βββ validation.js # Request validation helpers
β β βββ components/
β β βββ users/ # User registration & authentication
β β βββ timetable/ # Timetable generation (backtracking)
β β βββ electives/ # CGPA-based elective selection
β β βββ campus-events/ # Events & club management
β βββ sql/
β β βββ schema.sql # Full database schema
β β βββ migrate.js # Migration runner
β βββ __tests__/ # Jest test suites
β βββ .env.example # Environment variable template
β βββ package.json
β
βββ smart-campus-frontend/ # React + TypeScript frontend (Vite)
β βββ src/
β β βββ components/
β β β βββ ui/ # shadcn/ui base components
β β β βββ landing/ # Landing page sections
β β β βββ animations/ # Lottie / Framer Motion components
β β βββ pages/
β β β βββ Landing.tsx # Public landing page
β β β βββ Auth.tsx # Login / Registration
β β β βββ student/ # Student dashboard & features
β β β βββ admin/ # Admin panel
β β βββ services/ # API service layer (Axios)
β β βββ contexts/ # React context providers
β β βββ hooks/ # Custom React hooks
β β βββ lib/
β β βββ axios.ts # Configured Axios instance
β βββ .env.example # Environment variable template
β βββ package.json
β
βββ docs/
β βββ ISSUES.md # 20 pre-written NSoC GitHub issues
β βββ LABELS.md # GitHub label strategy
β
βββ scripts/
β βββ setup.sh # One-command local setup script
β
βββ docker-compose.yml # Docker multi-service stack
βββ CONTRIBUTING.md # Contribution guide
βββ ROADMAP.md # Project roadmap (Phase 1/2/3)
βββ README.md
- Clone the repository
git clone https://github.com/KanavCode/smart-campus-utility-hub.git
cd smart-campus-utility-hub- Backend Setup
# Navigate to backend
cd smart-campus-backend
# Install dependencies
npm install
# Create .env file from the example
cp .env.example .env
# Edit .env with your DB credentials and JWT_SECRET
# Run database migrations
npm run db:migrate
# Start development server
npm run devThe backend will run on http://localhost:5000
- Frontend Setup
# Navigate to frontend
cd ../smart-campus-frontend
# Install dependencies
npm install
# Create .env file from the example
cp .env.example .env
# VITE_API_BASE_URL=http://localhost:5000/api
# Start development server
npm run devThe frontend will run on http://localhost:5173
Create a PostgreSQL database and run the schema:
psql -U your_username -d your_database -f smart-campus-backend/sql/schema.sqlOr use the migration script:
cd smart-campus-backend
npm run db:migrateThe quickest way to get everything running locally:
# Automated setup (Node.js + PostgreSQL required)
chmod +x scripts/setup.sh
./scripts/setup.shOr with Docker (no local PostgreSQL needed):
# Copy and configure environment
cp smart-campus-backend/.env.example smart-campus-backend/.env
cp smart-campus-frontend/.env.example smart-campus-frontend/.env
# Start all services
docker compose up --buildThis starts PostgreSQL, the backend API, and the frontend dev server automatically.
Comprehensive API documentation is available in the backend directory:
π smart-campus-backend/API_DOCUMENTATION.md
π smart-campus-backend/README.md
π smart-campus-frontend/INTEGRATION_GUIDE.md
π smart-campus-frontend/README.md
POST /api/auth/register- User registrationPOST /api/auth/login- User login
GET /api/timetable- Get timetablePOST /api/timetable/generate- Generate timetableGET /api/timetable/conflicts- Check conflicts
GET /api/electives- Get available electivesPOST /api/electives/select- Submit preferencesPOST /api/electives/allocate- Admin allocation
GET /api/events- Get all eventsPOST /api/events- Create eventGET /api/events/:id- Get event detailsPOST /api/events/:id/rsvp- RSVP to event
For detailed request/response examples, see Backend API Documentation.
Modern, animated landing page with feature highlights and testimonials.
Comprehensive dashboard with timetable, electives, and events management.
Powerful admin interface for managing users, subjects, timetables, and events.
Interactive timetable with drag-and-drop functionality and conflict detection.
Intuitive elective selection interface with preference ranking.
cd smart-campus-backend
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coveragecd smart-campus-frontend
# TypeScript type check
npx tsc --noEmit
# Lint
npm run lintSee ROADMAP.md for the full project roadmap across three phases:
- Phase 1 (Q2 2026) β Stability & open-source readiness
- Phase 2 (Q3 2026) β New features (iCal export, waitlists, OAuth)
- Phase 3 (Q4 2026+) β Scaling, Redis caching, CI/CD pipeline
βββββββββββββββ
β Client β
ββββββββ¬βββββββ
β
βΌ
βββββββββββββββ
β Express.js β βββ Middleware (Auth, CORS, Helmet)
ββββββββ¬βββββββ
β
ββββ /api/auth βββΊ User Authentication
ββββ /api/timetable βββΊ Timetable Generation
ββββ /api/electives βββΊ Elective Selection
ββββ /api/events βββΊ Event Management
β
βΌ
ββββββββββββββββ
β PostgreSQL β
ββββββββββββββββ
βββββββββββββββ
β Router β
ββββββββ¬βββββββ
β
ββββ Landing βββΊ Public landing page
ββββ Auth βββΊ Login/Register
ββββ Student Dashboard βββΊ Student features
ββββ Admin Dashboard βββΊ Admin features
β
ββββ TanStack Query βββΊ Data fetching
ββββ Zustand βββΊ State management
ββββ Axios βββΊ API communication
We welcome contributions from the community! Whether it's bug fixes, feature additions, or documentation improvements. This project participates in NSoC 2026.
π Read the full contribution guide: CONTRIBUTING.md
- Fork the repository
- Create a feature branch
git checkout -b feat/your-feature-name
- Commit with Conventional Commits
git commit -m "feat(timetable): add iCal export endpoint" - Push and open a Pull Request
git push origin feat/your-feature-name
Looking for a place to start? Check out issues labelled good first issue or browse the pre-written issues in docs/ISSUES.md.
Database Connection Error
# Check PostgreSQL is running
psql -U postgres -c "SELECT version();"
# Verify .env DATABASE_URL is correct
# Format: postgresql://user:password@localhost:5432/databaseFrontend API Connection Failed
# Ensure backend is running on correct port
# Verify VITE_API_URL in .env matches backend port
# Check CORS configuration in backendPort Already in Use
# Find and kill process using port 5000
lsof -ti:5000 | xargs kill -9
# Or change port in .env fileFor more troubleshooting, see Backend Troubleshooting Guide.
Smart Campus Team
- Mann
- Kanav
- Kavya
- Kirtan
- GitHub Issues: Report a bug
- Discussions: Ask questions
- React - UI Framework
- Express.js - Backend Framework
- PostgreSQL - Database
- Tailwind CSS - Styling
- Radix UI - Component Primitives
- Framer Motion - Animations
Made with β€οΈ by the Smart Campus Team
β Star this repository if you find it helpful!
Report Bug Β· Request Feature Β· Documentation Β· Contributing