A Flask web application for generating weekly timetables for the 5th Semester IEM program with optimal scheduling and constraint handling.
- ✅ Automatic timetable generation with random distribution
- ✅ Handles all core subjects, electives, and labs
- ✅ Respects teacher availability and prevents conflicts
- ✅ Generates separate timetables for full class and each batch (B1, B2, B3)
- ✅ Beautiful, modern web interface
- ✅ PDF export functionality
- ✅ Responsive design
-
Clone or download this repository
-
Create a virtual environment (recommended):
python -m venv venv
-
Activate the virtual environment:
- Windows:
venv\Scripts\activate - Linux/Mac:
source venv/bin/activate
- Windows:
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Copy
env_template.txtto.env - Update
SECRET_KEYwith a secure random string - Note: The app will work without a
.envfile, but it's recommended for production
- Copy
python app.pyThe application will be available at http://localhost:5000
- Open the web application in your browser
- Enter teacher names for each subject
- Click "Generate Timetable"
- Review the generated timetables (full class and batch-wise)
- Click "Export as PDF" to download the timetable
Create a .env file with the following variables:
SECRET_KEY: Flask secret key for session management (required)FLASK_ENV: Environment mode (development/production) - optionalFLASK_DEBUG: Enable/disable debug mode - optionalFLASK_HOST: Host to bind to (default: 0.0.0.0) - optionalFLASK_PORT: Port to run on (default: 5000) - optional
- 09:00 - 16:15 (with break 10:55-11:05 and lunch 12:55-13:45)
- Monday through Saturday
- IM51 (SMA): 5 hrs/week (3 theory + 2 tutorials)
- IM52 (CIM): 4 hrs/week (2 theory + 2-hr lab Saturday)
- IM53 (OM): 3 hrs/week
- IM54 (ERP): 3 hrs/week
- HS510 (EVS): 1 hr/week
- IMAEC59 (Risk Management): 1 hr/week
- AL58 (Research Methodology & IPR): 3 hrs/week
- IM551 (HFE)
- IM552 (DBMS)
- IM555 (Digital Manufacturing)
- FPD Lab / ERP Lab: 3 hrs/week per batch
- Fixed schedule for Monday, Tuesday, and Thursday
See DEPLOYMENT.md for detailed deployment instructions.
Quick deployment options:
- Render.com (Recommended - Free & Easy)
- Railway.app (Free tier available)
- Heroku (Free tier discontinued, paid only)
- PythonAnywhere (Free tier available)
- VPS (DigitalOcean, AWS, etc.)
This project is for educational purposes.