Competitive Programming deserves better tooling.
CompTrack is a tracker for competitive programmers.
It synchronises submissions, contests and problem history across multiple online judges into a single place, then builds useful analytics on top of that data.
The project started because my tracking system slowly became a collection of spreadsheets, markdown files and scripts. It worked, but it was tedious to maintain and impossible to scale. Every contest meant updating ratings, solved counts, topic progress and revision schedules manually.
Competitive programming already has excellent judges.
What it lacks is good tooling around learning.
CompTrack is built around a few simple ideas.
- Never manually track progress.
- Learning is more important than statistics.
- Every feature should reduce friction.
- Data should be connected rather than duplicated.
- Multi-judge support should be a core design decision, not an afterthought.
A tracker should help people spend more time solving problems, not maintaining the tracker itself.
CompTrack should answer questions like
- What topics am I weakest at?
- What should I revise today?
- Am I improving?
- Where is most of my practice time going?
- Which contests do I consistently perform well in?
instead of simply reporting
- Problems Solved
- Current Rating
- Contest Count
Statistics are useful.
Insights are better.
Connect your online judge accounts once.
CompTrack imports
- submissions
- contests
- rating history
- solved problems
- problem metadata
No spreadsheets.
No CSV imports.
No manual logging.
Every submission contributes towards a larger picture.
Current analytics include
- rating progression
- topic mastery
- activity heatmaps
- contest history
- solve velocity
- streaks
- practice distribution
- revision history
Future work will focus more on learning-oriented analytics than visualisations.
Each problem stores more than a verdict.
Problems can contain
- personal notes
- mistakes
- alternative solutions
- revision history
- collections
- tags
The goal is to build a long-term knowledge base rather than a solved counter.
Every submission, contest and problem should be searchable.
Examples
judge:codeforces rating:1600tag:graphs solved:falsecontest:educationallanguage:cpp
Search should feel instant regardless of dataset size.
Initial support focuses on
- Codeforces
- AtCoder
- CSES
- Kattis
Future integrations include
- CodeChef
- DMOJ
- SPOJ
- LeetCode
- USACO
- VJudge
Judge integrations should remain modular and independently maintainable.
Repeated work should be automated.
The interface should remain simple even as functionality grows.
Most interactions should complete instantly.
Searching.
Filtering.
Switching pages.
Synchronising.
Adding another judge should require minimal changes to the rest of the application.
- Next.js
- TypeScript
- Tailwind CSS
- shadcn/ui
- TanStack Query
- Framer Motion
- FastAPI
- PostgreSQL
- SQLAlchemy
- Authentication
- Codeforces synchronisation
- Dashboard
- Contest history
- Submission history
- Multi-judge support
- Notes
- Collections
- Topic analytics
- Revision system
- Public profiles
- Practice recommendations
- Plugin architecture
Each stage should provide immediate value.
CompTrack is not intended to become another online judge.
It aims to become the layer above them.
A system that understands a competitive programmer's entire learning journey across platforms, making practice measurable, searchable and significantly easier to manage.