A modern, full-stack tennis club management platform built with Next.js, Supabase, and TypeScript.
- Real-time court availability tracking
- Easy booking system with calendar integration
- Indoor and outdoor court distinction
- Court maintenance schedule tracking
-
Match Finding System
- Create and respond to match requests
- Skill-based matchmaking
- Flexible scheduling options
- Real-time match status updates
-
Experience Points (XP) System
- Progressive level system (Level 1-10)
- Multiple XP earning activities
- Activity streaks and multipliers
- Special event bonuses
-
Achievement System
- Tiered achievements (Bronze to Platinum)
- Match-based accomplishments
- Training milestones
- Special event achievements
- Player profiles with stats and history
- Real-time messaging system
- Match history tracking
- Achievement showcase
- Community engagement features
-
Frontend
- Next.js 15 (App Router)
- TypeScript
- Tailwind CSS
- Shadcn UI Components
-
Backend
- Supabase (Database & Authentication)
- PostgreSQL with RLS policies
- Real-time subscriptions
- Clone the repository:
git clone https://github.com/raymondcsirak/sunlight-tennis.git
cd sunlight-tennis
- Install dependencies:
npm install
- Set up environment variables:
cp .env.example .env.local
- Update the following variables in
.env.local
:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_SITE_URL=your_site_url
- Run the development server:
npm run dev
- Run the migrations:
npx supabase migration up
npx supabase db push
The application can be deployed using Vercel:
npm run build
For production deployment, make sure to:
- Set up all environment variables in your hosting platform
- Configure the Supabase project for production
- Set up proper security rules and RLS policies
- Row Level Security (RLS) policies for data protection
- Secure authentication flow
- Protected API routes
- Environment variable management
- Data validation with Zod
- Responsive design
- Progressive Web App (PWA) capabilities
- Mobile-optimized interfaces
- Touch-friendly interactions
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the Apache 2.0 - see the LICENSE file for details.
- Next.js
- Supabase
- Tailwind CSS
- Shadcn UI
- All contributors and community members
For any queries or support open a pull request or an issue.