This repository contains a Python-based timetable generation system for educational institutes. It includes:
- command-line interface (
main.py) - graphical user interface (
modern_timetable_gui.py) usingtkinter - genetic algorithm implementation (
simplified_genetic_algorithm.py) - SQLite database operations (
db_operations.py) - utility scripts for course management (
course_management.py)
A Dockerfile is provided to make the project easy to run on any machine and to prepare it for publishing on GitHub.
# from the repository root
docker build -t timetable-generator:latest .By default the container starts the CLI:
docker run --rm -it -v "$PWD":/app timetable-generator:latest- The
-v "$PWD":/appflag mounts the current directory so that any generatedtimetable.dbstays on your host.
You can use a different path by setting the
TIMETABLE_DBenvironment variable when starting the container. The code will respect this value.
- If you want to access the GUI, you can run with X forwarding (Linux/Mac) or use a VNC/X server; additional setup is required.
You can override the command when you start the container:
# launch GUI (requires display setup)
docker run --rm -it -v "$PWD":/app timetable-generator:latest python modern_timetable_gui.pyThe image initializes a clean timetable.db during build. If you mount a volume with an existing database, the container will use that file instead.
To make the repository ready for GitHub:
- Ensure this
README.mdis present. - Add a
.gitignore(see below) and commit the project files. - Push the repository to your GitHub account.
- Users can clone the repo and run
docker build/docker runas shown above.
__pycache__/
*.pyc
*.db
.env
.venv/
The only external Python dependency is:
tabulate(used for pretty-printing tables in the console)
All other modules are part of the Python standard library.
Place your preferred open-source license here.