Skip to content
Snippets Groups Projects
beekmannju85374's avatar
beekmannju85374 authored
added functionality to save and load schedules

See merge request !13
d891507c
History

Planer

Usage

Start GHCi

Start GHCi in this repo with:

cabal repl

Load professors from CSV

Load professors from a CSV file:

λ p <- processCsv "professors1.csv"

Or use the example professors p1 to p5 generated in the program.

Calculate schedules

Calculate schedules and create a LaTeX file in presentations.tex
Schedule will be also saved in presentations.txt:

λ schedule rooms startDate endDate profs
λ schedule ["H","P"] "2024-04-04" "2024-07-30" p

Generate even schedules

If you are unhappy with the room distribution, use scheduleEven to make it more even if possible:

λ scheduleEven ["H","P"] "2024-04-04" "2024-07-30" p

Generate all possible schedules

To see every possible schedule, use generateSchedules with the same parameters as schedule.

Add professor to schedule

To add a professor to a calculated schedule:

λ addProfessor prof [Rooms] start endDate calculatedSchedule

Add professor unavailability

To add unavailability for a professor and try to find a new schedule:

λ addProfUnavailability prof [UnavailDates] [Rooms] start endDate calculatedSchedule

Save and load schedule

To save a schedule:

λ saveToFile schedule "fileName"

To load a schedule from a file:

λ loadFromFile "fileName"

Example usage

λ a = head $ generateSchedules ["H","P"] "2024-04-04" "2024-07-01" p
λ saveToFile a "test123"
λ b <- loadFromFile "test123"

CSV Format

name,projects,unavailableDays,availableDays
Duman,KI-Survey1,2024-04-04;2024-04-11,
Zapf,THNSensor,,2024-04-04;2024-04-11
  • Duman is busy on 04.04 and 11.04
  • Zapf is only available on 04.04 and 11.04

Professors can have multiple projects.

Example Output

λ schedule ["H","P"] "2024-04-04" "2024-07-01" p

png

CSV Example

p =

name,projects,unavailableDays,availableDays
Duman,KI-Survey1,2024-04-04;2024-04-11,
Zapf,THNSensor,2024-04-11,
Meier,Memtest;Memtest2,2024-04-11;2024-04-18,
Schulz,MMO;MMO2,2024-04-18,
P1,project1;project1N,2024-04-23,
P2,project2;project2N,2024-04-11;2024-04-18,
P3,project3,2024-04-04,
P4,project4;project45,2024-04-18,
P5,project5,2024-04-04,
P6,project6,2024-04-11,
P7,project7,2024-04-18,
P8,project8,2024-04-18,
P9,project9,2024-04-04,
P10,project10,2024-04-11,
P11,project11,2024-04-18,