Skip to main content

An exam scheduler application built with Python, designed to optimize exam schedules at university level.

Project description

Review Assignment Due Date

Unisched - Extensible University Exam Scheduler

GUI Image


This is my (Adheesh Trivedi's) submission for the course "Advanced Programming".

Unisched is a basic, modular exam scheduling project that currently supports:

  • Registration data loading from CSV, Excel, and ODS
  • Core scheduling using a graph coloring optimizer (DSatur-based)
  • Conflict-aware schedule generation with simple penalty calculation
  • A desktop GUI built with PySide6

The project is intentionally minimal and designed to be extended over time.

Current Architecture

  • unisched.io: file handling and registration-data loading
  • unisched.domain: schedule models and conflict/penalty helpers
  • unisched.core: coordinator and optimizer interfaces/implementations
  • unisched.gui: desktop user interface

Requirements

  • Python 3.12
  • uv package manager

Dependencies used by the project:

  • pandas
  • PySide6
  • openpyxl
  • odfpy

Quick Start

Install dependencies:

uv sync

Run the GUI app:

uv run python -m unisched

Running Tests

Run all tests:

uv run pytest

Example Script

Run the sample scheduling script:

uv run python examples/schedule.py

Notes

  • Current optimizer implementation: GraphColoringOptimizer only
  • Future optimizers (for later): Simulated Annealing, ILP
  • GUI tests are currently not included

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unisched-0.1.0.tar.gz (228.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unisched-0.1.0-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

Details for the file unisched-0.1.0.tar.gz.

File metadata

  • Download URL: unisched-0.1.0.tar.gz
  • Upload date:
  • Size: 228.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for unisched-0.1.0.tar.gz
Algorithm Hash digest
SHA256 94a86db6525e58eeff3b12532cd473319770505ce4b058f489ec0090eb6f3fc1
MD5 32af8a00208b187560112b48c1f56f1e
BLAKE2b-256 63d885d8291ad26f237b9505b245c410b7fe59cc2ab6f94eda5e0465833a8e03

See more details on using hashes here.

File details

Details for the file unisched-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: unisched-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 29.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for unisched-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee08d6c80317858cff558288484ef7dc6cb058f9d13a17759c83e294151f19d0
MD5 d9e3f6d3f96181dace93f34bf79651cc
BLAKE2b-256 4cb55e0666297545943348d8b00b9d0f4ffa92cdb52d0954c0fc156798b32944

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page