Fair room booking at FMIPA UGM · 1 min read
MIPA Reservation
★ Requested by FMIPA UGM's Vice Dean
One group used to grab rooms all day with multiple accounts. Now every booking needs four real people — and they have to actually show up.
/ 01
The problem
Discussion rooms at FMIPA UGM were first come, first served — and one group could book a room all day using several accounts, leaving everyone else out. The Vice Dean asked for a system that keeps it fair.
☝ Poke the mini version
/ 02
Decisions that mattered
- 1
A booking needs four real people
The “Filling Slot”: whoever books shares an invite link, and the slot is held for 30 minutes while the group fills up to 4/4. If it doesn't fill, the slot goes back to everyone.
- 2
Showing up is part of the booking
Check-in uses a QR code plus GPS, open from 10 minutes before to 15 minutes after the start. No-shows get a cooldown — 7 days by default, tunable by the admin.
- 3
Real accounts, real admin
Google sign-in ties bookings to real people, and a full admin panel lets the faculty run rooms and rules without me.
- 4
A lighter backend
The API moved from Express + SQLite to Cloudflare Workers + D1, so there's no server to keep alive.
/ 03
How it flows
01
Book
pick a free slot
02
Invite
share the link, 30-min hold
03
4/4
group full, slot confirmed
04
Check in
QR + GPS at the room
05
No-show?
cooldown, set by admin
/ 04
Where it landed
- ✦Built at the request of FMIPA UGM's Vice Dean
- ✦Multi-account hoarding no longer works: every slot needs four people who show up
- ✦Rules like the cooldown live in the admin panel, not in code
Built with
- React
- TypeScript
- Cloudflare Workers
- D1
- QR / GPS