This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
The Problem
The idea for CP Compass actually started before this challenge.
It started with a 45-day competitive programming challenge in my college's CP club. We committed to solving at least one problem every day, but we didn't just want a streak. We wanted to know whether we were actually improving.
So some of us started tracking everything in spreadsheets: problem name, rating, topics, what went wrong, and what we needed to revisit. It was useful information. Maintaining it was not.
After every problem came another little chore- find the problem, copy its details, add the topics, and write another row.
At first, we did it sincerely. Then came "I'll update it later."
We kept solving. The spreadsheets didn't keep up. I was guilty of it too. One friend in particular and I kept coming back to the same problem: an Accepted submission doesn't tell the full story.
One AC might mean I saw the idea immediately and implemented it cleanly. Another might mean I spent forty minutes stuck, needed a hint, and finally got it working.
Codeforces records both as solved. But when you're trying to improve, that difference matters.
So when this challenge asked me to build something for a friend, I came back to that exact frustration.
I decided to build the tracker that the two of us would actually keep using.
Meet CP Compass
CP Compass is an AI-powered competitive programming tracker that tracks not just what you solved, but how you solved it.
Enter your Codeforces handle and your solved problems, ratings, and tags are imported automatically.
Then, for each problem, record the part Codeforces can't know:
🟢 Green — Solved independently and cleanly
🟡 Yellow — Knew the approach, but made an implementation/logical mistake
🔴 Red — Couldn't derive the core idea without help
You can also add a short reflection about what went wrong.
CP Compass combines these reflections with problem ratings and topics and passes them to an open-weight Qwen model.
The AI Coach looks for patterns in why you're struggling and turns them into personalized practice recommendations.
So instead of just knowing how many problems you solved, you start understanding what is actually holding you back.
Demo
https://cp-compass-eight.vercel.app/
Here, try out my website!
Enter a Codeforces handle → import solved problems → add a few reflections → run the AI Coach.
Code
https://github.com/sanvinaik/CP-Compass
Stack: React + Vite • FastAPI • SQLite • Codeforces API • Qwen3-14B • Hugging Face Inference Providers
How I Built It
I designed CP Compass around one simple loop:
Import → Reflect → Analyze → Improve
Import — The FastAPI backend fetches solved problems, ratings, and tags from the Codeforces API.
Reflect — The user adds a Green/Yellow/Red status and an optional note. These reflections are stored in SQLite.
Analyze — CP Compass combines the problem metadata with the user's solve quality and reflections.
Improve — This structured history is sent to Qwen3-14B, an open-weight model accessed through Hugging Face Inference Providers. The AI Coach identifies recurring weaknesses and generates personalized practice recommendations.
The frontend is built with React + Vite, the API with FastAPI, and the deployed app uses Vercel + Railway.
The AI isn't there just to add a chatbot, it's what turns a collection of individual solves into patterns the user can actually act on.
Development Process
CP Compass was built over the weekend with ChatGPT-assisted development. I used ChatGPT as a coding and debugging partner while working through implementation, frontend/backend integration, and deployment.
The product idea, feature decisions, reflection system, and overall direction came from my experience with the 45-day CP challenge, with each part tested and iterated into the final working application.
Why Does Open Innovation Matter?
CP Compass uses Qwen3-14B, an open-weight model, as its reasoning layer.
For me, the biggest advantage of using an open model is freedom to evolve the AI without tying the entire product to one proprietary model or API.
The current version uses Qwen through Hugging Face Inference Providers so that anyone can try the deployed app easily. But because the intelligence comes from an open-weight model, future versions could swap models, fine-tune one specifically for competitive programming coaching, or even move inference locally.
That matters for CP Compass because its AI has a very specific job: reason over problem difficulty + topics + solve quality + personal reflections and turn them into useful practice advice.
Open innovation means I can keep experimenting with that layer as the project grows, rather than treating the AI as a black box I can't control.
The model can change. The provider can change. The core idea doesn't have to.
Back to the Friend I Built It For
CP Compass started with a problem my friend and I experienced during that 45-day challenge, so it felt fitting that the first person I wanted to give the finished version to was them.
What began as:
"We really should update that spreadsheet..."
eventually became a tool that imports the boring parts automatically, keeps the reflection that actually matters, and uses AI to turn it into something actionable. Here's what my friend said
bro this is literally what we needed during that 45 day challenge 😭 I remember we just stopped updating the excel after a point. importing everything directly makes it so much easier. also the green/yellow/red thing is actually useful because just seeing AC tells you nothing about how you solved it. AI analysis was pretty cool too, especially seeing which topics I keep struggling with
What's Next?
This is only the first version.
I'd like to expand CP Compass with contest tracking, progress visualizations, more competitive programming platforms, and better analysis across ratings and topics.
The part I'm most interested in is making the AI Coach better at distinguishing why someone couldn't solve a problem- missing knowledge, difficulty finding the observation, implementation mistakes, or simply attempting problems above their current level.
But for now, CP Compass solves the problem that started all of this:
We can keep solving problems without maintaining another Excel sheet afterward.
Prize Categories
- Build for a friend




Top comments (0)