A comprehensive web application that aggregates and tracks programming contest schedules from major competitive programming platforms, displays hackathons, provides tutorial videos, and helps you manage your coding tasks - all in one place.
- Overview
- Features
- Live Demo & Resources
- Getting Started
- Project Structure
- Core Functionalities
- Technology Stack
- API Integrations
- Challenges & Solutions
- Future Enhancements
- Contributing
Day Code serves as a centralized hub for competitive programmers and developers to stay organized and informed about upcoming coding competitions and hackathons. The application fetches real-time contest data, displays relevant tutorial videos, and provides a robust task management system to help users plan their competitive programming journey effectively.
- Coding Activiyt: View activity from LeetCode & Github at one place
- Contest Aggregation: View contests from LeetCode, Codeforces, and CodeChef in one place
- Hackathon Discovery: Stay updated with the latest hackathon opportunities from Devpost
- Task Management: Organize your coding tasks with priorities, due dates, and status tracking
- Tutorial Videos: Access platform-specific tutorial videos for contests
- Real-time Updates: Get the most current contest schedules using platform APIs
- Contest Filtering: Sort and filter contests by platform, date, duration, and type
- Demo Video: Watch the project demo
- Repository: Checkout the code
- Developer: Samrath Reddy
Before installing the application, make sure you have the following installed:
- Node.js (v14+)
- npm or yarn
-
Clone the repository:
git clone https://github.com/samrathreddy/Coding-Contest-Tracker.git cd Coding-Contest-Tracker -
Install dependencies:
npm install # or yarn install
-
Start the development server:
npm run dev # or yarn dev -
Open your browser and navigate to
http://localhost:8080(or the port shown in your terminal)
For beginners, here's a breakdown of the key directories and files:
/
├── public/ # Static assets
├── src/ # Source code
│ ├── components/ # Reusable UI components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Library configurations
│ ├── pages/ # Application pages
│ │ ├── Contest.tsx # Contest tracking page
│ │ ├── Hackathons.tsx # Hackathons page
│ │ ├── Home.tsx # Landing page
│ │ ├── Tasks.tsx # Task management page
│ │ └── Videos.tsx # Tutorial videos page
│ ├── services/ # Service integrations
│ ├── utils/ # Utility functions
│ │ ├── api/ # API integration modules
│ │ ├── constants.ts # Application constants
│ │ └── types.ts # TypeScript type definitions
│ ├── App.tsx # Main application component
│ └── main.tsx # Application entry point
├── package.json # Dependencies and scripts
├── tailwind.config.ts # Tailwind CSS configuration
└── vite.config.ts # Vite build configuration
The application aggregates programming contests from multiple platforms:
- LeetCode: Weekly and biweekly contests
- Codeforces: Regular, educational, and special contests
- CodeChef: Long challenges, cook-offs, and lunchtime contests
Each contest displays:
- Name and platform
- Start and end times (converted to your local timezone)
- Duration
- Status (upcoming, ongoing, or past)
- Direct link to the contest page
Stay updated with the latest hackathon opportunities:
- Browse hackathons from Devpost
- View details including themes, prizes, and submission deadlines
- Filter by online/in-person, category, and timeframe
Organize your coding practice and contest preparation:
- Create tasks with titles, descriptions, and due dates
- Set priorities (low, medium, high)
- Track status (todo, in progress, completed)
- Apply tags for better organization
- Filter and search through tasks
Access platform-specific tutorial videos directly within the app:
- Watch contest explanations and solutions
- Learn problem-solving techniques
- Discover competitive programming tips and tricks
- Framework: React.js with TypeScript
- Build Tool: Vite
- State Management: React Context API and React Query
- Styling: Tailwind CSS with shadcn/ui components
- Routing: React Router v6
- Form Handling: React Hook Form with Zod validation
- Date Handling: date-fns and date-fns-tz
- HTTP Client: Axios
The application integrates with the following APIs:
- LeetCode: GraphQL API for contest data
- Codeforces: REST API for contest listings
- CodeChef: REST API for contest information
- Devpost: For hackathon listings
- YouTube: For tutorial videos and content
Challenge: Many competitive programming platforms don't provide CORS headers, preventing direct API access from browsers.
Solution: Implemented proxy-based fetching strategies to securely access platform data.
Challenge: Displaying contest times correctly across different time zones.
Solution: Used date-fns-tz for proper time zone conversions, storing all times as ISO strings internally and converting to local time for display.
Challenge: Creating a seamless experience across desktop and mobile devices.
Solution: Implemented a responsive design with optimized navigation that adapts to different screen sizes.
- User authentication for personalized experiences
- Contest performance tracking and statistics
- Community features like discussion boards
- Integration with more competitive programming platforms
- Enhanced notification system with email/push alerts
- Calendar integration for contest reminders
Contributions are welcome! If you'd like to contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Built with ❤️ by Samrath Reddy