This project provides a simple scheduling system for high school classes. It includes functionality to schedule classes and print the resulting schedules.
constants
: The directory contains defined constants in the programmodel
: The directory contains classes forGrade
,Subject
,Teacher
,Schedule
, andTimeSlot
.main.py
: Main script containing class scheduling logic and schedule printing.README.md
: Documentation file (you are here).
- Run
main.py
to schedule classes for predefined grades (eighth and ninth). - The schedules will be printed, showing the allocated subjects, teachers, and time slots.
Represents a school grade with associated subjects and their details.
Represents a school subject with associated teachers and scheduling constraints.
Represents a school teacher, contains information about the teacher's name and occupied time slots
Represents a time slot in the schedule, contains information about the start time, end time, subject and teacher name
Handles the scheduling of classes for a specific grade, considering time slots and teacher availability.
# Define grades with subjects and create schedules
eighth_grade = Grade(8, subjects=[...])
eighth_grade_schedule = Schedule(eighth_grade)
ninth_grade = Grade(9, subjects=[...])
ninth_grade_schedule = Schedule(ninth_grade)
# Schedule classes for grades
grade_schedules = [eighth_grade_schedule, ninth_grade_schedule]
schedule_classes(grade_schedules)
# Print the resulting schedules
for s in grade_schedules:
s.print_schedule()
- Victor Yanev