Canonforces
The ultimate Codeforces companion platform. Features a built-in IDE, real-time 1v1 DSA battles, a comparison dashboard, and full submission/stat synchronization with Codeforces, all wrapped in a gamified experience
Install / Use
/learn @OpenLake/CanonforcesREADME
⚔️ CanonForces
The Ultimate Gamified Codeforces Companion
<img src="https://github.com/user-attachments/assets/9ec16061-77a0-4119-bc03-d470aaaecdd9" width="70%" alt="CanonForces Banner" /> <br/> <p align="center"> <strong>Collaborate. Compete. Conquer.</strong><br> Transform your competitive programming journey with real-time battles, deep analytics, and a gamified learning environment. </p> </div>🚀 About The Project
CanonForces is a multiplayer Codeforces companion platform designed to make competitive programming collaborative, analytical, and fun. We bridge the gap between solitary practice and community engagement by integrating powerful tools like a built-in IDE, real-time 1v1 duels, and comprehensive performance analytics.
New: Now featuring full Codeforces Synchronization! Your submissions, stats, and solved problems are automatically synced in real-time.
✨ Key Features
🎮 Gamified Arena
- 1v1 Real-time Battles: Challenge friends or get matched instantly via Redis queues. Solve problems faster to win.
- Battle Royale Lobbies: Join 20-30 player lobbies for intense "King of the Hill" quiz sessions.
- Coin System: Earn coins for every problem solved, daily streak maintained, and contest solution uploaded.
🛠️ Integrated Practice Suite
- Advanced CP IDE: Powered by Monaco Editor and Judge0. Supports C++, Python, Java, JS, and more with real stdin/stdout.
- Codeforces Sync: Automatically tracks your Codeforces submissions and updates your local stats.
- Contest Archive: View past contests and upload your own solutions to earn rewards.
📊 Analytics & Growth
- Performance Dashboard: Compare your stats (Rating, Rank, Max Streak) across Codeforces and LeetCode.
- Problem of the Day (POTD): Admin-curated daily challenges with streak tracking and "Daily Solver" leaderboards.
- Global Leaderboards: Rank up against the community based on Coins earned or Problems solved.
🏗️ Tech Stack
| Domain | Technologies | | :--- | :--- | | Frontend | Next.js (React), Tailwind CSS, ShadCN UI, Framer Motion | | Backend | Firebase (Auth/Firestore), Node.js | | Real-time | Socket.IO, Redis (Queues & Leaderboards) | | AI & API | Gemini AI (Quiz Generation), Judge0 (Code Execution), Codeforces API |
⚡ Getting Started
Follow these steps to set up the project locally.
Prerequisites
- Node.js (v18+)
- Firebase Account
- Redis (Optional, for local dev of 1v1 features)
Installation
- Clone the repository
git clone [https://github.com/OpenLake/canonforces.git](https://github.com/OpenLake/canonforces.git)
cd canonforces
⚙️ Configure Environment Variables
Create a .env.local (check .env.example for latest updates) file in the root directory and add your keys:
NEXT_PUBLIC_FIREBASE_API_KEY=your_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_domain
NEXT_PUBLIC_JUDGE0_API_KEY=your_rapidapi_key
REDIS_URL=your_redis_url
GEMINI_API_KEY=your_ai_key
▶️ Run the Development Server
npm run dev
🤝 Contributing
We welcome contributions from the community! Whether you're fixing bugs, improving the UI, or adding new features, your help is appreciated.
- Check the Issues tab (look for tags like
good first issueorFoss Overflow) - Fork the project and create your feature branch:
git checkout -b feature/AmazingFeature
- Commit your changes:
git commit -m "Add some AmazingFeature"
Push it to Github
git push origin feature/AmazingFeature
And raise a PR adding @aviralsaxena16 as reviewer
👨💻 Maintainer
Aviral Saxena
GitHub: @aviralsaxena16
Related Skills
node-connect
352.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
async-pr-review
100.6kTrigger this skill when the user wants to start an asynchronous PR review, run background checks on a PR, or check the status of a previously started async PR review.
ci
100.6kCI Replicate & Status This skill enables the agent to efficiently monitor GitHub Actions, triage failures, and bridge remote CI errors to local development. It defaults to automatic replication
