Skip to content

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

Notifications You must be signed in to change notification settings

OpenLake/canonforces

Repository files navigation

⚔️ CanonForces

The Ultimate Gamified Codeforces Companion

Next.js Firebase Redis PRs Welcome

CanonForces Banner

Collaborate. Compete. Conquer.
Transform your competitive programming journey with real-time battles, deep analytics, and a gamified learning environment.


🚀 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.
Screenshot 1 image
Screenshot 2025-10-23 005547 Screenshot 2026-01-21 001638

🏗️ 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

  1. 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 issue or Foss 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

Built with ❤️ by Aviral Saxena .

About

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

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 22