Back to Projects

Opti-Time - AI Integrated Time Table Generator
Django timetabling engine solving university scheduling with constraint handling, batch management, and optimized faculty allocation.
PythonDjangoHTMLCSSBootstrapAIMLPostgreSQL
Read Me
๐ Opti-Time - AI Integrated Time Table Generator
Automated Class Timetable Generator A robust, randomized heuristic-based system for automating complex academic scheduling. Built with Django, it easily handles classes, practical batches, and teacher assignments while strictly adhering to constraints.
โจ Key Features
- ๐ค Automated Scheduling: Generate valid, multi-class timetables with a single click.
- โก Conflict Detection: Real-time validation prevents double-booking of teachers and rooms.
- ๐งช Batch Management: Automatically handles distinct practical batches (e.g., A1, A2, A3) with unique teachers.
- โ๏ธ Smart Allocation: Prioritizes practical blocks, limits theory to max 2/day, and intelligently fills gaps.
- ๐ Visual Dashboards: Global and per-class analytics for tracking workloads and conflicts.
- ๐ Dynamic Regeneration: One-click alternative schedule generation.
- ๐ฅ Export Ready: Download schedules in PDF, Excel, and PNG formats.
๐ ๏ธ Tech Stack
- Backend: Python 3.11+, Django, SQLite/PostgreSQL, WhiteNoise
- Frontend: HTML5, CSS3, Vanilla JS
- Key Libraries:
itertools&random(algorithm),reportlab(PDF),xlsxwriter(Excel)
๐ง How the Algorithm Works
- Phase 1: Practical Scheduling (Hard Constraint) - Allocates combined practical slots ensuring unique teachers and cross-checking availability.
- Phase 2: Theory Scheduling - Assigns theory lectures based on teacher availability and a daily load limit (max 2/day).
- Phase 3: Gap Filling & Optimization - Fills remaining empty slots with "Extra" or "Library" periods to ensure a complete schedule.
๐ฆ Quick Start
# Clone the repository
git clone https://github.com/vedangdhuri/Opti-Time-69.git
cd Opti-Time
# Setup virtual environment & install dependencies
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
# Setup Database & optional sample data
python manage.py makemigrations
python manage.py migrate
python populate_fyco_real.py
python populate_syco_real.py
python populate_tyco_real.py
# Run the server
python manage.py runserver
Visit http://127.0.0.1:8000/ in your browser.