A modern, responsive web application for analyzing Codeforces competitive programming statistics. Built with React, TypeScript, and Tailwind CSS.
- 🔍 User Search: Search any Codeforces user by handle
- 📊 Rating Chart: Visualize rating progress over time with interactive charts
- 🏆 Contest History: View detailed contest performance with rank changes
- 💡 Problem Statistics: Analyze solved problems by tags and difficulty levels
- 🎨 Modern UI: Clean, responsive design with dark/light theme support
- 📱 Responsive: Seamless experience across desktop, tablet, and mobile devices
- ⚡ Fast Performance: Optimized data fetching and rendering
- Frontend: React 18, TypeScript
- Styling: Tailwind CSS, shadcn/ui components
- Charts: Recharts for data visualization
- Routing: React Router v6
- State Management: TanStack Query (React Query)
- API: Codeforces API integration
- Theme: next-themes for dark/light mode
- Node.js (v16 or higher)
- npm or yarn
Clone the repository and install dependencies:
# Clone the repository
git clone <YOUR_GIT_URL>
# Navigate to project directory
cd code-stats-lab
# Install dependencies
npm install
# Start development server
npm run devThe application will be available at http://localhost:5173
- Enter a Codeforces handle in the search bar
- View comprehensive analytics including:
- User profile with rating and rank
- Rating progression chart
- Contest history with performance metrics
- Problem-solving statistics by tags and difficulty
- Navigate using the sidebar (collapsible on mobile)
- Toggle between dark and light themes
src/
├── components/ # React components
│ ├── ui/ # shadcn/ui components
│ ├── AppSidebar.tsx # Navigation sidebar
│ ├── UserSearch.tsx # Search component
│ ├── UserProfile.tsx # User profile card
│ ├── RatingChart.tsx # Rating visualization
│ ├── ContestHistory.tsx # Contest table
│ ├── ProblemStats.tsx # Problem statistics
│ └── ThemeToggle.tsx # Theme switcher
├── services/ # API services
│ └── codeforcesApi.ts # Codeforces API client
├── pages/ # Page components
│ └── Index.tsx # Main dashboard
├── hooks/ # Custom React hooks
├── lib/ # Utility functions
└── index.css # Global styles & design system
This project uses the public Codeforces API:
- User information:
/user.info - Rating history:
/user.rating - User submissions:
/user.status
No API key required for basic usage.
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
You can edit this project in multiple ways:
- Local IDE: Clone and edit with VS Code, WebStorm, etc.
- GitHub: Edit files directly on GitHub
- GitHub Codespaces: Use cloud-based development environment
The project uses a comprehensive design system defined in src/index.css:
- HSL color tokens for consistent theming
- Custom gradients and shadows
- Smooth transitions and animations
- Responsive breakpoints
- Dark/light mode support
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Build the project and deploy to any static hosting service:
npm run buildThe dist folder will contain the production build ready for deployment.
This project is open source and available under the MIT License.
- Codeforces for providing the public API
- shadcn/ui for beautiful UI components
- Recharts for data visualization