This is a NextJs stack application that tracks competitive programming contests from Codeforces, CodeChef, and LeetCode. The application allows users to view upcoming and past contests, filter contests by platform, bookmark contests, and view solution links for past contests.
-
Contest Tracking
-
Fetches and displays upcoming contests from Codeforces, CodeChef, and LeetCode
-
Shows contest date, time, and duration
-
Displays time remaining before contest starts
-
Filtering
-
Filter contests by platform (Codeforces, CodeChef, LeetCode)
-
Toggle between upcoming and past contests
-
View bookmarked contests only
-
Bookmarking
-
Bookmark contests for easy access
-
Bookmarks are stored in localStorage
-
Solution Links
-
View YouTube solution links for past contests
-
Admin interface to add solution links manually
-
Automatic fetching of solution links from YouTube channels
-
UI/UX
-
Responsive design for mobile, tablet, and desktop
-
Light and dark mode with toggle
-
Clean and intuitive interface
Frontend:
- React with TypeScript
- Next.js App Router
- Tailwind CSS for styling
- shadcn/ui components
- date-fns for date formatting
- Lucide React for icons
Backend:
-NextJs routes for backend
Frontend:
app/page.tsx- Main page componentapp/admin/page.tsx- Admin interface for adding solution linkscomponents/- Reusable UI componentslib/api.ts- API client for backend communicationtypes/contest.ts- TypeScript types and interfaces
Backend:
bookmarks/route.ts- Bookmarking Backendcontests/route.ts- For fetching the contest from postgres databasecontests/updates/route.ts- For fetching the updatessolutions/route.ts- For fething the solution youtube urls