A comprehensive platform for tracking coding contests from various platforms including Codeforces, CodeChef, and Leetcode.
- View upcoming and past coding contests
- Platform-specific filtering
- Contest bookmarking
- Solution video linking with YouTube integration
- Contest reminders (Email/SMS)
- Mobile and tablet responsive design
- Light/Dark mode support
- React.js
- TypeScript
- Redux Toolkit
- GraphQL
- Material-UI
- React Query
- Styled Components
- Vite
- Node.js (v16 or higher)
- npm or yarn
- YouTube API key (for solution video integration)
- Email service provider API key (for email reminders)
- SMS service provider API key (for SMS reminders)
- Clone the repository:
git clone [repository-url]
cd contest-tracker- Install dependencies:
npm install-
Set up environment variables:
- Copy
.env.exampleto.env - Fill in your API keys in the
.envfile:VITE_YOUTUBE_API_KEY: Your YouTube API keyVITE_EMAIL_API_KEY: Your email service provider API keyVITE_SMS_API_KEY: Your SMS service provider API key
- Copy
-
Start the development server:
npm run dev- Build for production:
npm run buildsrc/
├── components/ # Reusable UI components
├── pages/ # Page components
├── services/ # API and external service integrations
├── store/ # Redux store configuration
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
├── hooks/ # Custom React hooks
├── assets/ # Static assets (images, icons)
└── styles/ # Global styles and theme configuration
- Real-time updates of contest schedules
- Filter contests by platform (Codeforces, CodeChef, LeetCode)
- View upcoming and past contests
- Bookmark favorite contests
- Automatic integration with YouTube playlists
- Manual linking of solution videos to contests
- Easy access to solution videos from contest cards
- Set email or SMS reminders for contests
- Customizable reminder timing
- Support for multiple notification methods
- Light and dark mode
- Responsive design for all devices
- Modern Material-UI components
- 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.