Skip to content

Integer Programming-based Course Scheduling Optimization for Department of Civil and Environemntal Engineering at the University of Utah

License

Notifications You must be signed in to change notification settings

hisham32/Course-Scheduling-Optimization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CEE Scheduler Microservice + Desktop UI

This repository contains a complete course scheduling system built for the Department of Civil and Environmental Engineering at the University of Utah. It uses an Integer Programming model with Gurobi to assign courses to time slots while respecting prerequisites, co-requisites, lab/discussion structures, and slot preferences.

Backend: FastAPI + Docker UI: PySide6 desktop app


Backend (Docker)

Using Docker Compose (recommended)

  1. Copy .env.example to .env and fill in your Gurobi WLS credentials:

    GRB_WLSACCESSID=your-access-id
    GRB_WLSSECRET=your-secret
    GRB_LICENSEID=your-license-id
  2. Start the API in production mode:

    docker compose up api --build

    Or start in development mode (hot reload on code changes):

    docker compose up api-dev --build
  3. Check:

Manual build/run (if you don't want compose)

docker build -t cee-scheduler-api -f backend/Dockerfile .
docker run --rm -it `
  -p 8000:8000 `
  -v "${PWD}\data:/data" `
  -e GRB_WLSACCESSID="YOUR_WLSACCESSID" `
  -e GRB_WLSSECRET="YOUR_WLSSECRET" `
  -e GRB_LICENSEID="YOUR_LICENSEID" `
  cee-scheduler-api

API example request

UI (PySide6)

Run locally

python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r ui\requirements.txt
python ui\main.py

Build a Windows .exe

From PowerShell:

cd ui
powershell -ExecutionPolicy Bypass -File .\build-win.ps1
# exe will be at: ui\dist\CEE-Scheduler.exe

Sample output from UI

About

Integer Programming-based Course Scheduling Optimization for Department of Civil and Environemntal Engineering at the University of Utah

Resources

License

Stars

Watchers

Forks