A Codeforces leaderboard application for Ingenuity, The CP club at IIT Bhilai, built with React, TypeScript, and Supabase. Track contest performance, manage competitions, and gamify the competitive programming experience.
- 🏆 Real-time Codeforces contest tracking
- 👑 Custom leaderboard creation and management
- 🔐 Admin dashboard for contest management
- 📊 Detailed performance analytics
- 🎮 Gamification elements
- 🌐 Supabase-powered backend
- Frontend: React + TypeScript
- Styling: TailwindCSS
- Backend: Supabase
- Build Tool: Vite
- API Integration: Codeforces API
amaydixit11-leaderboard-pro-lite/
├── src/ # Source code
│ ├── components/ # Reusable React components
│ │ ├── contests/ # Contest-related components
│ │ ├── AdminRoute.tsx # Admin authentication wrapper
│ │ └── LeaderboardModal.tsx
│ ├── hooks/ # Custom React hooks
│ │ ├── useAuth.ts # Authentication hook
│ │ └── useCodeforces.ts # Codeforces API hook
│ ├── lib/ # Utility functions and configurations
│ │ ├── codeforces.ts # Codeforces API client
│ │ ├── supabase.ts # Supabase client setup
│ │ └── types.ts # Shared type definitions
│ ├── pages/ # Page components
│ └── types/ # TypeScript type definitions
├── supabase/ # Supabase configurations
│ └── migrations/ # Database migrations
└── [config files] # Various configuration files
- Clone the repository:
git clone https://github.com/yourusername/leaderboard-pro-lite.git
cd leaderboard-pro-lite- Install dependencies:
npm install- Set up environment variables:
Create a
.envfile in the root directory with:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key- Run development server:
npm run devTo run migrations:
npx supabase migration upnpm run dev- Start development servernpm run build- Build for productionnpm run lint- Run ESLintnpm run preview- Preview production build
- 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 MIT License - see the LICENSE file for details.