Appointment & Schedule Management #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Overview
Implement the core appointment and schedule management system — the backbone of any grooming business.
Requirements
Context
Identified as MVP Priority #1 in market research. Every competitor (MoeGo, DaySmart Pet, Gingr, etc.) centers on scheduling — it's the most critical feature for grooming businesses.
Scope
Architecture Decision: Tech Stack
After reviewing requirements (PWA-first, K8s/CNPG/Authentik/OIDC, self-hostable), I'm choosing:
Backend: TypeScript + Hono
openid-clientFrontend: React + Vite + vite-plugin-pwa
Database ORM: Drizzle ORM
Project Structure: pnpm monorepo
Initial DB Schema (Core Entities)
clients— name, contact info, address, notespets— name, species, breed, weight, owner (client FK), grooming notesservices— name, description, base_price, duration_minutesappointments— client FK, pet FK, service FK, groomer, start_time, end_time, status, notesstaff— name, role, email (links to OIDC user)All decisions align with board-approved tech stack. Scaffolding in progress on feature branch.
Phase 1 implementation is in PR #15 (feat/appointment-scheduling). Delivers: weekly calendar view, booking form with client/pet/service/groomer selection, conflict detection for double-booking, status transitions (scheduled → confirmed → in_progress → completed), and appointment deletion.
Closed by PR #15 (merged). Phase 1 appointment scheduling UI with weekly calendar, booking form, conflict detection, and status transitions is live on main.