<<<<<<< HEAD
A small Flask web app that generates examination timetables from available dates, branch subjects, subject restrictions, and difficulty ratings.
- Python 3.7 or newer (the scheduler uses dataclasses).
- Flask
Create and activate a virtual environment, then install Flask:
python -m venv .venvOn Windows:
.venv\Scripts\Activate.ps1On macOS or Linux:
source .venv/bin/activateInstall the dependency and start the app:
python -m pip install Flask
python app.pyOpen http://127.0.0.1:5000 in your browser. The built-in Flask server runs in debug mode and is intended for local development only.
-
Enter available examination dates separated by commas. ISO dates such as
2026-10-01are recommended. -
Enter the daily time slot.
-
Enter one branch per line, with subjects separated by commas:
Computer Science: Mathematics I, Data Structures, Operating Systems Electrical Eng: Mathematics I, Circuit Analysis, Digital Electronics -
Optionally, list restricted dates as comma-separated
Subject: Datepairs:Operating Systems: 2026-10-01, Thermodynamics: 2026-10-03 -
Optionally, assign subject difficulty ratings from 1 (Easy) to 3 (Difficult):
Mathematics I: 3, Operating Systems: 2 -
Select Generate Timetable to view the schedule. Use Load Demo Setup on the home page to populate sample input.
Subjects repeated across branches are treated as common subjects and scheduled on the same date. A branch cannot have more than one exam on a date. Restricted dates apply to every occurrence of that subject. If a valid schedule cannot be generated, add dates or review the restrictions.
app.py— Flask routes and form processing.scheduler_engine.py— timetable constraint and scheduling logic.templates/— input, timetable, and error pages. =======
An AI-based web application that automatically generates examination timetables for multiple branches using Constraint Satisfaction, Backtracking, and Hill Climbing. It handles hard constraints such as subject conflicts, common-subject synchronization, available dates, and restricted dates, while improving the timetable using soft constraints.
ea114c00decd2704695c2355245841ca543a3978