Skip to content
Work

Product · Algorithm

Jadwalin

Faculty-scale course scheduling with conflict rules and a greedy auto-generator, fed by Excel exports instead of a locked API.

Role
Full-stack Developer
Timeline
Apr 2022 — May 2022
Context
IAIN Sultan Amai Gorontalo
Stack
  • Laravel
  • Greedy algorithm
  • Excel import

Problem

The Faculty of Islamic Economics and Business at IAIN Sultan Amai Gorontalo needed to manage course schedules faculty-wide without clashes.

Context

Course data lived in the Academic Information System (SIAK), but API access was not permitted. What staff did have were Excel exports.

Solution

  • Excel-based import, so staff keep the workflow they know and integration doesn't depend on SIAK access.
  • Four conflict rules, implemented as Laravel validation rules so new ones are easy to add:
    1. Department — a major's schedule may not collide.
    2. Lecturer — a lecturer can't teach two classes at once.
    3. Room — a room can't be double-booked.
    4. Credits (SKS) — the course's credits must match the time slot.
  • An automatic schedule generator using a greedy algorithm.

Architecture

Layer detail

Excel exports from SIAK

Course data and sample schedules, since direct API access wasn't allowed.

Simplified architecture — select a layer to inspect it.

Impact

conflict rules enforced
4conflict rules enforced
build time
2 mobuild time

Lessons learned

When the ideal integration isn't available, meet users where their data already is. Excel import was less elegant than an API — and far more useful.

Snapshots