RoomKit
RoomKit
Room booking library for educational institutions
RoomKit is a full-featured room booking system designed for universities and educational institutions. It ships as two packages — a NestJS backend engine and a React frontend library — that work together to manage locations, rooms, bookings, conflicts, recurrence, blackouts, exams, and bulk operations.
Packages
| Package | Description |
|---|---|
@roomkit/nestjs | Backend engine with domain services, storage interfaces, and Prisma adapters |
@roomkit/react | React hooks and components for building booking UIs |
Key Features
- Location Hierarchy — Model institutions, campuses, buildings, floors, wings, and rooms as a tree with path-based navigation
- Room Management — Track capacities (seated, exam, standing), equipment tags, accessibility attributes, and partition relationships
- Booking Lifecycle — State machine with requested → confirmed → in_progress → completed/cancelled transitions
- Conflict Detection — Direct and partition-level overlap checking with alternative suggestions
- Recurrence — Weekly, biweekly, and custom calendar-week patterns with exception dates
- Blackout Windows — Location-scoped time blocks that cascade down the hierarchy
- Priority System — Configurable priority tiers with automatic resolution by purpose type
- Travel Time Validation — Cross-campus schedule validation using a configurable travel time matrix
- Exam Mode — Layout-aware capacity calculations with cohort overlap protection
- Bulk Operations — Semester import, date shifting, and batch cancellation with progress tracking
- Cascading Configuration — Hierarchical config inheritance with per-node overrides
- Event Bus — 12 domain event types for reactive integrations
- Audit Trail — Full state-transition history for every booking