Skip to content

iamjazzar/palatable

Repository files navigation

Palatable Tests PyPI version

A Fast, reliable Exam Scheduling Algorithm Using Graph Coloring.

About

This package presents a graph-coloring-based algorithm for the exam scheduling application, with the objective of achieving fairness, accuracy, and optimal exam time period. Through the work, we consider few assumptions and constraints, closely related to the general exam scheduling problem, and mainly driven from accumulated experience at various universities. The performance of the algorithm is also a major concern of this package.

Getting started

pip install palatable

Usage

The simplest way to use the package is using this command.

palatable -d files/schedule.txt -c files/courses.txt

For a list of all available options

palatable -h

usage: palatable [-h] [--slots SLOTS] [--days DAYS] [--fairness FAIRNESS] --schedule SCHEDULE --courses COURSES

optional arguments:
  -h, --help            show this help message and exit
  --slots SLOTS, -s SLOTS
                        Number of exam time slots in a given day (determined by the registrar and/or the faculty)
  --days DAYS, -y DAYS  The number of concurrent exam sessions. Bounded by available halls, and the availability of faculty to conduct the exams.
  --fairness FAIRNESS, -f FAIRNESS
                        An Exam schedule should avoid conflicts, in the sense that no two or more exams (this value) for the same student are scheduled at the same time.
  --schedule SCHEDULE, -d SCHEDULE
                        The path of the file for students' enrollments.
  --courses COURSES, -c COURSES
                        The path of the file that hosts courses' data.

Upcoming

We are currently supporting text formatted courses and schedules tables. CSV support is coming up soon.

References

This package is an implementation of the algorithm presented in the paper: A New Exam Scheduling Algorithm Using Graph Coloring by Mohammad Malkawi, Mohammad Al-Haj Hassan, and Osama Al-Haj Hassan.