Блог пользователя _Sparky_

Автор _Sparky_, история, 2 месяца назад, По-английски

Hey guys, I want to share something I've been building.

I'm a 2nd year student, and I practice on Codeforces, LeetCode, and CodeChef. For a while I kept running into the same annoying problem — my progress was scattered across three tabs, three different rating systems, three different "weak topics," and I had no single place to actually see how I was doing or what I should practice next.

So over the past few months I built CPPro to fix that for myself, and figured some of you might find it useful too.

What it actually does

It's a single platform that pulls your CF + LC + CodeChef data together — ratings, heatmap, contest history, topic-wise solve counts. Nothing groundbreaking on its own, I know there are tools that already do parts of this.

The part that's actually different from most trackers is the daily problem system. Instead of generic "problem of the day" picks, it looks at your actual solve history across all three platforms and gives you two problems every day — one that's comfortable and keeps your streak going, and one that's specifically targeting whatever topic you're statistically weakest at. So if you've solved 80 array problems and 3 DP problems, it's going to keep nudging you toward DP instead of letting you stay comfortable. There's also a third bonus problem that's just random, mainly there so you have something to do if you're done with the first two and still want more.

I also added an AI-generated topic-of-the-day. Every day it picks a concept from whatever you're weak at and generates a short article explaining it, why it actually matters (not just "this is the definition"), a dry run with a small example so you can see it working step by step, a code template you can use directly in a contest, and a visualization of how the algorithm flows. The idea was that just being told "you're weak at DP" isn't useful by itself — you also need something to actually read and learn from right there instead of going and searching for a separate resource.

I also built a Level Up section which honestly took the most time. It has three parts:

The first is an upsolve queue — pulls all the problems you attempted but didn't AC across CF, LC, and CodeChef, shows the verdict so you know why you left it (WA, TLE, or just never came back to it). For Codeforces specifically it also picks one problem from each contest you participated in, so you have a structured upsolve list per contest rather than just a random dump.

The second is problem recommendations — 6 problems per category (Workout / Challenge / Bonus) curated based on your actual rating and weak tags, refreshed weekly.

The third is a performance stats page that compares your last 30 days vs the previous month. Consistency score, your weakest topics with acceptance rates, which days of the week you're most active, pace projection, how far you are from your next rating milestone. There's also an insights section that just tells you in plain text what to focus on — "your weakest area is games (43% acceptance), focus here for maximum growth" — instead of making you figure it out yourself from the charts.

Why I'm posting this

I built this for myself first, mostly because I was tired of jumping between three sites just to figure out what to practice next. I'm not saying this is better than tools that have been around for years and have way more work behind them — I'm just a solo 2nd year student building this in my free time, partly to get better at full-stack dev and partly because I actually needed it.

If you try it and something's broken or confusing, I'd genuinely rather hear that than silence. And if you've got ideas for what would actually make your daily practice better, I'm listening.

Try CPPRO

Happy coding.

  • Проголосовать: нравится
  • +58
  • Проголосовать: не нравится

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by _Sparky_ (previous revision, new revision, compare).

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

guys atleast try it before downvoting it T-T my contribution have reached -14 :). i have seen many guys make just make rating divisions of problem and people are praising like dont know what they have made and whenever i post people just downvote without even trying :)

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I dont get the downvotes actually. I just visited it once, so yet to properly use it, but the website feels nice enough. I like the idea behind it too, and the linking process was also pretty straightforward and easy. The only suggestion i would make, is maybe find a better way for Leetcode account verification, since Leetcode allows only one name modification per 90 days so.. All in all, pretty good.

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

I didnt visit but the concept is decent. I like that the blog isnt written in AI, lol

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Can you also add AtCoder please? Your website looks pretty nice btw,thx!

  • »
    »
    2 месяца назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    well i did wanted to add it previously too but as i have split all sync engines differently as microservices and i didnt had any more instance of vm or free render account thats why i stopped. but i am again working on it and soon it will be added too

»
2 месяца назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Cool project, bro The animations and scrolling experience are very smooth. Have a q though how did you scrape the CodeChef data?

  • »
    »
    2 месяца назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    bro i used web scraping or html scraping for codechef as we dont have any official rest or graphql api for codechef like leetcode and codeforces , i used cheerio a lightweight nodejs library used to parse html from webpages and get user data from it

»
2 месяца назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

you should also add unsolved questions from previous contest like for for leetcode(lc doesn't have apis like cf ig).

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

so is it a glorified profiles manager ?

feels like adding another website to the list.

the ui and features look good(i prefer simple ui like codeforces and atcoder).

for me, i would keep limited features such as the Daily Problem System.

i could go on about ai sloppiness and stuff but i'll stop here.

~ fellow newbie

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

ngl, such a attractive ui keep it up yash !.

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

can u shorten the refresh time pls? currently loving the website

  • »
    »
    2 месяца назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    i can definitely shorten the refresh time but the problem is all these syncs are done on bandwidth of free webshare proxy ip's which is limited , if i decrease the refresh time which will suddenly increase bandwidth consumption T-T . i will see from my end if bandwidth consumption is limited i will decrease it myself :) btw thanks for loving it

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Built with Claude?

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Been using it for quite a time, feels like an all in one platform for my CP journey!! Everything is neatly organized and easily accessable. The UI is great and the overall implementation of the problem that it solves is also good. Will be using it for my further CP journey, Hoping for unique and fresh updates.

»
2 месяца назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I like the application I was building one myself.

In general I would say to focus more on core features and not have so many fashy feautures.

People will really come to this page to find problems to upsolve so having it hidden away in the level up.

Keep iterating and you will make a great product.