|
|
|
|
@@ -1,56 +1,50 @@
|
|
|
|
|
---
|
|
|
|
|
name: 'Cue'
|
|
|
|
|
description: 'A on-demand resource booking application'
|
|
|
|
|
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'
|
|
|
|
|
link: 'https://snippetslibrary.com'
|
|
|
|
|
order: 3
|
|
|
|
|
startDate: '2025-07-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=white" alt="Python" />
|
|
|
|
|
<img src="https://img.shields.io/badge/SQLite-07405E?style=for-the-badge&logo=sqlite&logoColor=white" alt="SQLite" />
|
|
|
|
|
<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>
|
|
|
|
|
|
|
|
|
|
# SnippetsLibrary
|
|
|
|
|
|
|
|
|
|
Manage your personal and team code snippets with speed and confidence. SnippetsLibrary makes it easy to create, organize, search, and share snippets with first-class DX and beautiful syntax highlighting.
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
I have 50+ users and I'm working on a new version with a lot of new features.
|
|
|
|
|
And 200+ snippets.
|
|
|
|
|
<video autoplay loop muted playsinline>
|
|
|
|
|
<source src="/static/cue.webm" type="video/webm" />
|
|
|
|
|
</video>
|
|
|
|
|
|
|
|
|
|
## ✨ Highlights
|
|
|
|
|
## The Problem
|
|
|
|
|
|
|
|
|
|
- **Secure auth**: GitHub OAuth + JWT sessions
|
|
|
|
|
- **Sharing**: Public share links with SEO-friendly pages
|
|
|
|
|
- **Search & filter**: Language, visibility, keywords, pagination
|
|
|
|
|
- **Syntax highlighting**: 20+ languages, themes, copy-preserving formatting
|
|
|
|
|
- **Fast**: Bun runtime, Hono server, optimized client with Vite
|
|
|
|
|
The venue's existing workflow had several pain points:
|
|
|
|
|
|
|
|
|
|
## 🛠️ Tech Stack
|
|
|
|
|
- **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
|
|
|
|
|
|
|
|
|
|
- Frontend: React, Vite, Tailwind CSS, shadcn/ui
|
|
|
|
|
- Backend: Bun, Hono, JWT, Drizzle ORM, PostgreSQL
|
|
|
|
|
- Infra: Cloudflare Workers, GitHub Actions, Drizzle Kit
|
|
|
|
|
Cue eliminates these issues by centralizing booking management with real-time tracking and automatic cost calculation.
|
|
|
|
|
|
|
|
|
|
## 🚀 Quick Start
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
|
|
1. Clone the repo:
|
|
|
|
|
```bash
|
|
|
|
|
git clone https://github.com/cojocaru-david/snippetslibrary.com
|
|
|
|
|
cd snippetslibrary.com
|
|
|
|
|
```
|
|
|
|
|
2. Install deps: `bun install`
|
|
|
|
|
3. Configure `.env` in `server/` (DB, GitHub OAuth, JWT, FRONTEND_URL)
|
|
|
|
|
4. Migrate DB: `cd server && bun run db:migrate`
|
|
|
|
|
5. Start dev: `bun run dev` (client on 5173, server on 8000)
|
|
|
|
|
- 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
|
|
|
|
|
|
|
|
|
|
## 🔗 Links
|
|
|
|
|
## Tech Stack
|
|
|
|
|
|
|
|
|
|
- Live: https://snippetslibrary.com
|
|
|
|
|
- Repo: https://github.com/cojocaru-david/snippetslibrary.com
|
|
|
|
|
- **Frontend**: TypeScript, Svelte
|
|
|
|
|
- **Backend**: Python, PostgreSQL
|
|
|
|
|
- **Communication**: REST API, SSE for real-time updates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|