23e5e17be5
Projects now support multiple links (source code, demo, etc) each with a label. Migrated all projects to use the new schema.
58 lines
2.3 KiB
Plaintext
Vendored
58 lines
2.3 KiB
Plaintext
Vendored
---
|
|
name: 'Cue: On-Demand Resource Booking'
|
|
description: 'An on-demand resource booking system built for an arcade/pool venue'
|
|
tags: ['python', 'typescript', 'svelte', 'postgresql']
|
|
image: '../../../public/static/cue.webp'
|
|
order: 3
|
|
startDate: '2025-09-23'
|
|
---
|
|
|
|
<div class="flex flex-wrap gap-2 my-0! [&>img]:my-0! [&>img]:mt-2!" >
|
|
<img src="https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=FFD43B" alt="Python" />
|
|
<img src="https://img.shields.io/badge/PostgreSQL-336791?style=for-the-badge&logo=postgresql&logoColor=white" alt="PostgreSQL" />
|
|
<img src="https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript" />
|
|
<img src="https://img.shields.io/badge/Svelte-FF3E00?style=for-the-badge&logo=svelte&logoColor=white" alt="Svelte" />
|
|
<img src="https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white" alt="Docker" />
|
|
</div>
|
|
|
|
|
|
Cue is an on-demand resource booking system built for an arcade and pool venue. The UI was designed to run on a terminal-like POS touchscreen.
|
|
|
|
<video
|
|
src="/static/cue.webm"
|
|
autoplay
|
|
loop
|
|
muted
|
|
playsinline
|
|
preload="auto"
|
|
class="w-full"
|
|
></video>
|
|
|
|
## The Problem
|
|
|
|
The venue's existing workflow had several pain points:
|
|
|
|
- **Unreliable alerts** — Employees set phone alarms to track booking end times, which was error-prone and easy to miss
|
|
- **Cost overruns** — The machine tracking running costs would often exceed the pre-paid amount, since payment happens at booking time, not at the end
|
|
- **End-of-shift reconciliation** — Staff had to manually recalculate totals to verify the day's earnings matched expectations
|
|
|
|
Cue eliminates these issues by centralizing booking management with real-time tracking and automatic cost calculation.
|
|
|
|
## Features
|
|
|
|
- Book arbitrary resource types (pool tables, arcade machines, etc.)
|
|
- Admins configure pricing and valid booking durations per resource
|
|
- Real-time updates via REST API and Server-Sent Events (SSE)
|
|
- Maintenance windows to mark resources as unavailable
|
|
- Move bookings between resources of the same type
|
|
- Cancel or extend active bookings
|
|
- Admins configure which operations require employee authentication
|
|
|
|
## Tech Stack
|
|
|
|
- **Frontend**: TypeScript, Svelte
|
|
- **Backend**: Python, PostgreSQL
|
|
- **Communication**: REST API, SSE for real-time updates
|
|
|
|
|