Skip to content

wat144p/SmartSlot

Repository files navigation

SmartSlot: Student-Centric Timetable Optimizer

CS391 Complex Computing Problems MVP
An AI-powered university timetable optimization system using Simulated Annealing

Python FastAPI PostgreSQL


🔐 Access Instructions (For Instructor/TAs)

Live URL: https://smartslot-207x.onrender.com

How to Test

  1. Visit the live URL above
  2. Sign In: Select your Faculty (AI/CS/DS/CE/CYS) and Year (1-4)
  3. Click "Sign In & Continue"
  4. View Timetable: If empty, click "🌱 Seed Data" in navbar
  5. Run Optimization: Click "⚡ Optimize" → "Run Optimization"
  6. View Metrics: Click "📊 Metrics" to see analytics

No username/password required - faculty/year-based access for demo.


🎯 Overview

SmartSlot solves the NP-hard university timetable scheduling problem using metaheuristic optimization. It minimizes gaps between classes and avoids scheduling conflicts—all while maintaining hard constraints.

Key Features

  • 🧮 Simulated Annealing optimizer with guaranteed zero conflicts
  • 📊 Built-in B-M-L metrics tracking
  • 🎓 20 courses across 5 faculties (AI, CS, DS, CE, CYS)
  • 🏫 12 rooms: 9 Lecture Halls (75 seats) + 3 Main Lecture Halls (150 seats)
  • 📈 Real-time metrics dashboard

📁 Course Structure

Faculty Year 1 Year 2 Year 3 Year 4
AI AI-101 AI-201 AI-301 AI-401
CS CS-101 CS-201 CS-301 CS-401
DS DS-101 DS-201 DS-301 DS-401
CE CE-101 CE-201 CE-301 CE-401
CYS CYS-101 CYS-201 CYS-301 CYS-401

Max section size: 55 students


🏫 Room Structure

Room Type Count Capacity
Lecture Halls (LH-1 to LH-9) 9 75 seats
Main Lecture Halls (MLH-1 to MLH-3) 3 150 seats

🚀 Quick Start

1. Clone & Install

git clone https://github.com/wat144p/SmartSlot.git
cd SmartSlot
pip install -r requirements.txt

2. Set Database URL

export DATABASE_URL="your_neon_postgresql_url"

3. Run

uvicorn main:app --reload

Open http://localhost:8000


📁 Project Structure

SmartSlot/
├── main.py              # FastAPI application
├── models.py            # SQLAlchemy ORM models
├── database.py          # Database connection
├── optimizer.py         # Simulated Annealing algorithm
├── metrics.py           # B-M-L metrics tracking
├── seed_data.py         # Sample data (20 courses, 12 rooms)
├── templates/           # Jinja2 HTML templates
└── static/              # CSS styles

📊 Metrics Tracked

  1. Activation Rate: % of users who run optimization
  2. Completion Rate: % who view the results
  3. Improvement Score: Average penalty reduction

© 2025 SmartSlot - CS391 Complex Computing Problems MVP

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors