My App
CourseKit

CourseKit

A timetable engine for academic scheduling with recurring events, conflict detection, and a React frontend

CourseKit is an open-source timetable engine for academic scheduling. It handles recurring events, conflict detection, availability management, and ships as two packages that work together.

Packages

PackageDescription
@hfu.digital/coursekit-nestjsBackend module for NestJS with pluggable storage, constraint pipeline, and domain events
@hfu.digital/coursekit-reactFrontend library with headless hooks and pre-styled schedule components

Key Features

  • Recurring Events — RFC 5545 RRULE support with exceptions (cancel, modify, add occurrences)
  • Conflict Detection — Pluggable constraint pipeline detecting overlaps, capacity issues, and availability violations
  • Availability Management — Hard/soft availability rules for instructors and rooms with free-slot search
  • Pluggable Storage — Bring your own database via abstract storage classes (Prisma adapters included)
  • Domain Events — Event-driven architecture with @nestjs/event-emitter integration
  • Academic Periods — Semester, holiday, exam, and break period modeling with hierarchy
  • Headless-First Frontend — Use hooks for full control, or drop in TimetableGrid and EventCard components
  • Dry-Run Conflict Checks — Preview conflicts before committing schedule changes
  • Structural Typing — Backend never imports @prisma/client — adapters handle all ORM-specific logic

On this page