Hello!
When I started college, I needed to create my school schedules mostly from scratch (selecting individual classes and checking that my classes didn’t overlap). Unfortunately, doing it manually is very tiring, slow and prone to error.
So I thought: why not automate it? this is the result of that experiment. Ofc, this is a haskell forum, so obviously it is written in haskell. I’d appreciate very much if someone more experienced than me wants to take a look at the code for some feedback!
Basically schedule-maker
works by creating a yaml file with the specification of the classes you might consider taking. Then run schedule-maker classes.yaml
and it will spit out a schedules.xlsx
file with a valid schedule per worksheet.
There are a some more features. For more information the repo is here (licensed bsd-3 clause): GitHub - 0rphee/schedule-maker
I’ve also used this project as an opportunity to experiment with releases, github actions and distributing binaries, so there are already binaries for macos, windows and linux (ubuntu?) if you want to try it out without having to build the project yourself (I’ve ‘tested’ only the macos and windows builds, I hope they work without hiccups!).
If you have any questions about it, I’ll gladly respond!
schedule-maker
supports the yaml file to be either in english or spanish, here is an example:
# There may be multiple entries for classes with the same subject name (ex. 'Diferential Calculus'), but the resulting schedules will only have 1 class of each type.
- name: Subject1
class-id: "0001" # This can be any string, but it should be unique to each class.
professor: John Doe
days:
- day: monday
start: 17:30
end: 19:00
- day: tuesday
start: 17:30
end: 19:00
- day: thursday
start: 17:30
end: 19:00
- day: wednesday
start: 7:00
end: 8:30
- day: friday
start: 7:00
end: 8:30
- day: saturday
start: 7:00
end: 8:30
- day: sunday
start: 7:00
end: 8:30
- name: Subject2
class-id: "0002"
professor: Robert Cohen
days:
- day: monday
start: 7:00
end: 8:30
- day: friday
start: 7:00
end: 8:30