A modern, lightweight competitive programming contest tracker that aggregates upcoming contests from multiple platforms in one clean interface.
While platforms like CList exist, AlgoRadar offers a focused, streamlined experience for competitive programmers who want quick access to contest information without the clutter.
| Feature | AlgoRadar | CList |
|---|---|---|
| Interface | Clean, minimalist design | Feature-rich but complex |
| Speed | Fast loading with caching | Can be slower |
| Focus | Contests only | Contests + ratings + statistics |
| Mobile Experience | Fully responsive, card view | Mobile-friendly but dense |
| Dark Mode | Built-in toggle | Available |
| Filters | Simple platform & time filters | Advanced filtering options |
| User Accounts | Not required | Required for full features |
| Ads | None | Present |
| Setup | Self-hostable, free | Hosted service |
| Customization | Full control (open source) | Limited |
| Data Privacy | Your own instance | Third-party service |
Use AlgoRadar if you want:
- Quick contest lookups without account creation
- Clean, distraction-free interface
- Self-hosted solution
- Privacy-focused tracking
Use CList if you need:
- Historical rating data
- Detailed statistics
- Social features
- Profile tracking across platforms
- Multi-Platform Support: Codeforces, CodeChef, AtCoder, LeetCode, and more
- Smart Filtering: Filter by platform and timeframe (today/week/month)
- Caching System: Reduces API calls, faster load times
- Dark Mode: Easy on the eyes during late-night coding sessions
- Responsive Design: Seamless experience on desktop and mobile
- Admin Panel: Manage contact form submissions
- Contact Form: Persistent storage for user messages
- Backend: Flask (Python)
- Database: SQLAlchemy (PostgreSQL/SQLite)
- Caching: Flask-Caching
- Frontend: Vanilla JavaScript, CSS3
- API: CList API v2
- Python 3.9+
- pip
- Git
- Clone the repository
git clone https://github.com/yourusername/algoradar.git
cd algoradar- Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate- Install dependencies
pip install -r requirements.txt- Configure environment variables
Create a .env file in the root directory:
SECRET_KEY=your-secret-key-here
CLIST_API_KEY=your-clist-api-key
CLIST_USERNAME=your-clist-username
DATABASE_URL=sqlite:///fallback.db
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your-secure-passwordGet CList API credentials:
- Register at clist.by
- Go to Settings → API
- Generate your API key
- Initialize database
flask init-db- Run the application
python app.pyVisit http://localhost:5000
-
Prepare
requirements.txt(already included) -
Push to GitHub (with
.gitignoreconfigured) -
Create Web Service on Render
- Connect your GitHub repository
- Build Command:
pip install -r requirements.txt - Start Command:
gunicorn app:app
-
Add PostgreSQL Database
- Create new PostgreSQL instance
- Link to web service
-
Configure Environment Variables
- Add all variables from
.env DATABASE_URLis auto-configured
- Add all variables from
-
Initialize Database (one-time)
# In Render Shell
flask init-dbDetailed deployment guide(WIP): See DEPLOYMENT.md
algoradar/
├── app.py # Main application
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
├── .gitignore # Git ignore rules
├── static/
│ ├── style.css # Styles
│ └── images/ # Logo and assets
├── templates/
├── base.html # Base template
├── index.html # Contest listing
├── contact.html # Contact form
├── admin_login.html # Admin authentication
└── admin_messages.html # Message management
- View Contests: Homepage shows upcoming contests
- Filter: Use platform checkboxes and time dropdown
- Dark Mode: Toggle with sun/moon button
- Contact: Use contact form for feedback
- Access Admin Panel: Navigate to
/admin/login - View Messages: See all contact form submissions
- Manage: Mark as read or delete messages
- Logout: Secure session management
AlgoRadar implements caching to respect CList API limits:
- Cache TTL: 10 minutes
- Reduces redundant API calls
- Improves response times
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Contest data provided by CList API
- Built for competitive programming community
Project Maintainer: Nilanshu
- GitHub: @nilanshucodes
Live Demo: https://algo-radar.vercel.app
Made with ❤️ for competitive programmers