Skip to content

A timetable generator app for the Weekly Coding Challenge 3rd Edition

Notifications You must be signed in to change notification settings

tbgracy/timetable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Timetable 📊

screenshot

📰 Description

A CLI tool that allow you to generate a timetable for your school or university such that :

  • A subject can't be seen on two consecutive days
  • A subject have a minimum of 2 hours per week and a maximum of 6
  • The timetable is divided in slots of 1 hours
  • The subjects are distributed between monday morning and saturady morning
  • Morning classes begin at 8:30 and end at 12:30
  • Afternoon classes begin at 13:30 and end at 17:30

📦 Installation

🌐 Installation with PIP

You can install it using remote PIP repository as follows :

pip install wcc-timetable-generator

💻 Installation from source

To install this project from source, you first have to clone this repo and install poetry with pip : pip install poetry. Then, go to the root directory and run the following commands :

poetry install # install all the necessary dependencies
poetry build
poetry run python -m wcc_timetable_generator 

🖱 Usage

If you installed it with pip, this is how to run the project :

wcc-timetable-generator

NB : In some case it may not run so you need to install it as administrator (using sudo on Linux or macOS or running the command prompt as administrator on Windows) or run as python -m wcc_timetable_generator.

If you installed it locally, this is how to run the project :

poetry run python -m wcc_timetable_generator 

A GUI-like UI will appear, you can enter the number of hours per week for each subject that must be between 2 and 6 (otherwise it won't generate the timetable). Then, click on the Generate button to generate the timetable. If you want to quit, click on the Quit button. A random timetable based on the constraints will appear. You can click on the Generate button to generate another timetable. You can also edit the number of hours before re-generating.

✅ Roadmap

  • Add the algorithm
  • Add GUI-like UI
  • Publish to PyPI
  • Add an animated GIF as demo to README.md
  • Write tests
  • Add quit button
  • Print error messages