Skip to content

Latest commit

 

History

History
80 lines (61 loc) · 2.24 KB

File metadata and controls

80 lines (61 loc) · 2.24 KB

ClubOS

Modern POS and club management system built with SvelteKit 2, Supabase, and Tailwind CSS v4.

Features

  • Multi-tenant: Organizations with facilities, role-based access (owner/admin/manager/staff)
  • POS: Products, categories, register sessions, orders with treats/coupons
  • Bookings: Birthday parties and football field reservations
  • Billing: Stripe integration with subscription management
  • i18n: English and Greek translations

Quick Start

# Install
bun install

# Environment
cp .env.example .env.local
# Edit .env.local with your Supabase credentials

# Development
bun run dev

# With local Supabase
supabase start
supabase db reset
bun run db:seed

Available Scripts

bun run dev          # Start dev server
bun run build        # Production build
bun run check        # Type check + lint + knip
bun run test         # Unit tests
bun run test:e2e     # E2E tests (requires dev server)
bun run db:seed      # Seed demo data
bun run db:reset     # Reset database with seed data

Project Structure

src/
├── routes/           # SvelteKit pages and API routes
│   ├── (app)/        # Authenticated app routes
│   │   ├── admin/    # Admin pages (products, users, settings)
│   │   ├── staff/    # Staff POS interface
│   │   └── bookings/ # Booking management
│   └── api/          # API endpoints
├── lib/
│   ├── components/   # UI components (shadcn-svelte)
│   ├── services/     # Database service layer
│   ├── state/        # Svelte 5 state modules
│   ├── i18n/         # Translations (en, el)
│   └── types/        # TypeScript types
└── hooks.server.ts   # Auth middleware

Environment Variables

# Required
PUBLIC_SUPABASE_URL=https://xxx.supabase.co
PUBLIC_SUPABASE_PUBLISHABLE_DEFAULT_KEY=eyJ...

# Server-side (for admin operations)
SUPABASE_SECRET_KEY=eyJ...

Database

Core tables: tenants, facilities, users, memberships, products, categories, orders, bookings, register_sessions, subscriptions. See supabase/migrations/ for full schema.

Deployment

Vercel-ready (@sveltejs/adapter-vercel). Configure environment variables in Vercel dashboard.