{"id":41578494,"url":"https://github.com/iamjazzar/palatable","last_synced_at":"2026-01-24T08:26:51.689Z","repository":{"id":35764427,"uuid":"40043910","full_name":"iamjazzar/palatable","owner":"iamjazzar","description":"Fast, reliable exams scheduler","archived":false,"fork":false,"pushed_at":"2023-09-04T21:01:53.000Z","size":16101,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-07T21:24:36.493Z","etag":null,"topics":["algorithm","exams","scheduling"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamjazzar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-01T10:57:40.000Z","updated_at":"2022-05-28T08:18:29.000Z","dependencies_parsed_at":"2023-01-16T05:44:56.912Z","dependency_job_id":null,"html_url":"https://github.com/iamjazzar/palatable","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/iamjazzar/palatable","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamjazzar%2Fpalatable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamjazzar%2Fpalatable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamjazzar%2Fpalatable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamjazzar%2Fpalatable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamjazzar","download_url":"https://codeload.github.com/iamjazzar/palatable/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamjazzar%2Fpalatable/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28720543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T05:53:42.649Z","status":"ssl_error","status_checked_at":"2026-01-24T05:53:41.698Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","exams","scheduling"],"created_at":"2026-01-24T08:26:51.196Z","updated_at":"2026-01-24T08:26:51.676Z","avatar_url":"https://github.com/iamjazzar.png","language":"Python","readme":"# Palatable [![Tests](https://github.com/iamjazzar/palatable/actions/workflows/ci.yml/badge.svg)](https://github.com/iamjazzar/palatable/actions/workflows/ci.yml) [![PyPI version](https://badge.fury.io/py/palatable.svg)](https://badge.fury.io/py/palatable)\n\nA Fast, reliable Exam Scheduling Algorithm Using Graph Coloring.\n\n\n## About\n\nThis 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.\n\n\n## Getting started\n\n```bash\npip install palatable\n```\n\n## Usage\nThe simplest way to use the package is using this command.\n```bash\npalatable -d files/schedule.txt -c files/courses.txt\n```\n\nFor a list of all available options\n\n```bash\npalatable -h\n\nusage: palatable [-h] [--slots SLOTS] [--days DAYS] [--fairness FAIRNESS] --schedule SCHEDULE --courses COURSES\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --slots SLOTS, -s SLOTS\n                        Number of exam time slots in a given day (determined by the registrar and/or the faculty)\n  --days DAYS, -y DAYS  The number of concurrent exam sessions. Bounded by available halls, and the availability of faculty to conduct the exams.\n  --fairness FAIRNESS, -f FAIRNESS\n                        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.\n  --schedule SCHEDULE, -d SCHEDULE\n                        The path of the file for students' enrollments.\n  --courses COURSES, -c COURSES\n                        The path of the file that hosts courses' data.\n```\n\n## Upcoming\nWe are currently supporting text formatted courses and schedules tables. CSV support is coming up soon.\n\n## References\nThis package is an implementation of the algorithm presented in the paper: [A New Exam Scheduling Algorithm Using Graph Coloring](https://www.researchgate.net/publication/220413840_A_New_Exam_Scheduling_Algorithm_Using_Graph_Coloring_) by [Mohammad Malkawi](https://www.researchgate.net/profile/Mohammad-Malkawi?_sg%5B0%5D=TEcNNzOft5bBstNFqBqpYNwlD33_i9hbPHM_VdM0ejEl9yLb0r3YiUfqNtuxs_Y_uhAnkis.hSKhfAlXAl3NayTteLeLyY8t6RSx4OY5b15bypYXrJ3un9Ua903F6jrnI7jd0JeCZ67_0fPe98qwQFfo3CHCCg\u0026_sg%5B1%5D=S4XZH5xnJVzEZyFwfdiGPXYnO8827e3_7iQA-5Oslvj7kvxED8NPQBvgVdTnw2ZP_ntRNds.wtaWc_JUa6TzSo4B6VynSf39MvaGXV2dvYT6cXE2Lgmm9gJ95GS9FPHvt43RTIR5WjJU7XUw52NZlV_QmVvgvg), [Mohammad Al-Haj Hassan](https://www.researchgate.net/scientific-contributions/Mohammad-Al-Haj-Hassan-70934694?_sg%5B0%5D=TEcNNzOft5bBstNFqBqpYNwlD33_i9hbPHM_VdM0ejEl9yLb0r3YiUfqNtuxs_Y_uhAnkis.hSKhfAlXAl3NayTteLeLyY8t6RSx4OY5b15bypYXrJ3un9Ua903F6jrnI7jd0JeCZ67_0fPe98qwQFfo3CHCCg\u0026_sg%5B1%5D=S4XZH5xnJVzEZyFwfdiGPXYnO8827e3_7iQA-5Oslvj7kvxED8NPQBvgVdTnw2ZP_ntRNds.wtaWc_JUa6TzSo4B6VynSf39MvaGXV2dvYT6cXE2Lgmm9gJ95GS9FPHvt43RTIR5WjJU7XUw52NZlV_QmVvgvg), and [Osama Al-Haj Hassan](https://www.researchgate.net/profile/Osama-Al-Haj-Hassan?_sg%5B0%5D=TEcNNzOft5bBstNFqBqpYNwlD33_i9hbPHM_VdM0ejEl9yLb0r3YiUfqNtuxs_Y_uhAnkis.hSKhfAlXAl3NayTteLeLyY8t6RSx4OY5b15bypYXrJ3un9Ua903F6jrnI7jd0JeCZ67_0fPe98qwQFfo3CHCCg\u0026_sg%5B1%5D=S4XZH5xnJVzEZyFwfdiGPXYnO8827e3_7iQA-5Oslvj7kvxED8NPQBvgVdTnw2ZP_ntRNds.wtaWc_JUa6TzSo4B6VynSf39MvaGXV2dvYT6cXE2Lgmm9gJ95GS9FPHvt43RTIR5WjJU7XUw52NZlV_QmVvgvg).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamjazzar%2Fpalatable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamjazzar%2Fpalatable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamjazzar%2Fpalatable/lists"}