A mobile-first PWA for finding basketball courts, organizing pickup games, and connecting with players in your area.
- Courts — Browse and filter nearby basketball courts with map view and check-in support
- Games — Create and join pickup games, view upcoming sessions
- Players — Discover and connect with players in your community
- Communities — Create or join local basketball communities
- Profile — Manage your player profile, skill level, and activity history
- Check-in notifications — Get notified when players check in at courts near you
- React 18 + TypeScript + Vite
- Tailwind CSS + shadcn/ui for styling
- Supabase for auth, database, and real-time features
- Mapbox GL for court maps and geolocation
- TanStack Query for data fetching
- Cloudflare Workers for deployment (
wrangler) - Vitest for testing
- Node.js 18+
- npm
git clone https://github.com/Samkwizera/courtava-code.git
cd courtava-code
npm install
npm run devThe app runs at http://localhost:5173.
Create a .env file at the root with your Supabase credentials:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_MAPBOX_TOKEN=your_mapbox_tokenMigrations are in supabase/migrations/. Apply them via the Supabase CLI:
supabase db push| Command | Description |
|---|---|
npm run dev |
Start dev server |
npm run build |
Production build |
npm run preview |
Build and preview via Wrangler |
npm run deploy |
Deploy to Cloudflare Workers |
npm run test |
Run tests |
npm run lint |
Lint source files |
The app deploys to Cloudflare Workers via Wrangler. See wrangler.jsonc for configuration.
npm run deploy