A modern badminton club management app built with React + Vite + Supabase.
Manage events, members, expenses, and finances for your badminton club โ with an AI-powered chat assistant.
- Events โ Create, edit, and track badminton sessions with costs and pricing
- Members โ Manage club membership list with fee tracking
- Expenses โ Track one-off costs (shuttlecocks, equipment) split among members
- Attendees โ Record who played at each event with payment tracking
- AI Chat โ Natural language assistant for managing events, members, and expenses
- Financial Summary โ Per-event income/cost breakdown by payment method
git clone https://github.com/nischay-dhiman/piba.git
cd piba
npm installCopy the example env file and fill in your keys:
cp .env.example .envRequired variables:
VITE_SUPABASE_URLโ Your Supabase project URLVITE_SUPABASE_ANON_KEYโ Your Supabase anon/public keyVITE_OPENROUTER_API_KEYโ Your OpenRouter API key (for the AI chat)
Run these SQL files in your Supabase SQL Editor (Dashboard โ SQL Editor โ New Query):
supabase-schema.sqlโ Core tables (members, events, attendees)supabase-expenses.sqlโ Expenses extension (expenses, expense_splits)
npm run dev- Frontend: React 19, React Router, Lucide Icons
- Styling: Custom CSS design system (dark glassmorphism theme)
- Backend: Supabase (PostgreSQL + Auth + RLS)
- AI: OpenRouter (Vercel AI SDK) with tool-calling agents
- Build: Vite 8
This app is configured for static hosting. Build with:
npm run buildThe output in dist/ can be deployed to DigitalOcean App Platform, Vercel, Netlify, or any static host.
Note: Set environment variables in your hosting platform's settings โ never commit
.envfiles.