Hi everyone!
Over the past few months I've been building CP-Vertex, a training platform designed around one simple idea:
Most tools can tell you what your weaknesses are. Very few tell you what to practice next.
The goal of CP-Vertex is to bridge that gap.
Website: https://cpvertex.vercel.app/
Source Code: https://github.com/aristoncodes/CP-Vertex
The Training Loop
Instead of randomly picking problems, CP-Vertex follows a simple workflow:
Analyze your profile → Identify weak topics → Practice them → Test yourself in a duel → Upsolve missed problems → Repeat
The focus is on helping you improve the topics that actually limit your progress.
1v1 Duels
Challenge another programmer to a live duel.
Problems are automatically selected around both players' ratings, making matches competitive rather than one-sided.
Features:
- Automatic problem selection
- Live progress updates
- Spectator mode
- Server-side duel validation
- Solve verification through the Codeforces API
There is no "Mark as Solved" button—you must actually solve the problem on Codeforces.
Drill — Targeted Practice
This is the feature I care about the most.
The system analyzes your solved problems and recent contests to identify your weakest topics, then generates a practice set specifically for those topics.
If Graphs are your weakest area, you'll receive Graph problems.
If DP is holding you back, you'll practice DP.
The goal is to eliminate the question:
"What should I solve next?"
Other Training Modes
- Blitz — Short timed sessions for improving speed.
- Warmup — A few at-level problems before a contest.
- Boss — One problem roughly 300–500 rating above your current level.
- Upsolve Tracker — Automatically queues unsolved contest problems so they don't get forgotten.
- Virtual Contests
- Problem Browser with rating, tag and solved-status filters.
Analytics
You can analyze any public Codeforces handle without creating an account.
Available features:
- Topic strengths and weaknesses
- Rating heatmap
- Contest pace and accuracy
- "What if I had zero wrong submissions?" estimate
- Handle comparison
/u/<handle>
/u/<your_handle>/vs/<another_handle>
Unlike most analyzers, these insights feed directly into Drill recommendations and the Upsolve Tracker.
Technical Details
A few implementation details that people here may be interested in:
- Uses official Codeforces problem ratings.
- Counts only distinct solved problems.
- Team submissions are excluded.
- Multiple accepted submissions do not inflate statistics.
- Handle ownership is verified using a Compilation Error submission (no passwords or account access).
The project is completely open source.
Current Limitations
- Statistics depend on Codeforces data synchronization.
- Duels require two users online at the same time.
Feedback
I'd really appreciate feedback from the Codeforces community, especially on the Drill recommendations.
If the generated practice sets don't match your actual weaknesses, or if you have ideas for improving the training workflow, I'd love to hear them.
Thank you for reading!
— joyboy24








Auto comment: topic has been updated by joyboy24 (previous revision, new revision, compare).
Cool project
W
W