A web app to discover and track upcoming programming contests from major platforms like LeetCode, Codeforces, CodeChef, and AtCoder.
- 🏆 Browse upcoming programming contests in a clean grid
- 🔍 Filter contests by platform, date range, duration, and status
- 🔎 Search contests by name
- 🎨 Responsive and modern UI
- 🔗 Direct links to contest pages
- 🚦 Status indicators for running/upcoming contests
- Next.js (App Router)
- React
- TypeScript
- Tailwind CSS
- Clist API (for contest data)
git clone https://github.com/yourusername/contest-hub.git
cd contest-hubnpm installCreate a .env.local file in the root directory and add your Clist API key:
NEXT_PUBLIC_CLIST_API_KEY=your_clist_api_key_here
Note: Never commit your API key to a public repository.
npm run devOpen http://localhost:3000 to view the app.
app/
api/clist/route.ts # API route proxying Clist API
page.tsx # Main page, fetches and displays contests
components/
contest-grid.tsx # Grid display for contests
contest-card.tsx # Individual contest card
filter-panel.tsx # Sidebar filter UI
loading-state.tsx # Loading indicator
error-state.tsx # Error indicator
hooks/
use-filter.ts # Custom hook for filter logic
types/
contest.types.ts # TypeScript types for contests and filters
utils/
filter-helpers.ts # Filtering logic
platform-helpers.ts # Platform info mapping
date-helpers.ts # Date utilities
- The app fetches contest data from the Clist API via a Next.js API route (
/api/clist). - All filtering (platform, date, duration, status, search) is handled client-side for a fast and interactive experience.
- Platform info (name, color, URL) is mapped using the domain string from the API response.
- Contest data powered by Clist.by
- UI inspired by modern dashboard designs
Made with 💙 by Khushi