_Sparky_'s blog

By _Sparky_, history, 2 months ago, In English

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.

  • Vote: I like it
  • +58
  • Vote: I do not like it

»
2 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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

»
2 months ago, hide # |
 
Vote: I like it +8 Vote: I do not like it

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 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    The concept is really good, but I would say that choosing problems for upsolving is a part that you can do better ( honestly if you just focus on this concept, with time you can make it really good ).

    • »
      »
      »
      2 months ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      thanks for your feedback btw any particular recommendation for upsolve queue ?

      • »
        »
        »
        »
        2 months ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        I think adding the problems which are voted in some editorials to be really good, can also use cf problems mentioned by USACO guide.

        I want that upsolve to not have the problems which are not really needed to grow in that phase, like: DP is not really a priority for 1300 less guys, (not more experience that this point).

        Basically, try to think which directions will be best to broaden this upsolve concept, after all we aare going to do it for growth!

        • »
          »
          »
          »
          »
          2 months ago, hide # ^ |
           
          Vote: I like it 0 Vote: I do not like it

          ohh i get it , i need to do some research about USACO guide as i have never used it and its cf problems than maybe we could do something about it. btw thanks for your suggestion buddy :)

»
2 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    thanks for your feedback :) . for the leetcode actually leetcode doesn't have any other field which uniquely identifies a user so i just use username for that.

    • »
      »
      »
      2 months ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      you can use bio field. it can be changed. i think sites like codolio use that

      • »
        »
        »
        »
        2 months ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        for leetcode we use the username as unique identifier and its display name to verify access of account. display name can be changed as many times as you like ,so even if you put the code given by cppro in place of display name just click verify and instantly change to your old display name .

»
2 months ago, hide # |
 
Vote: I like it +1 Vote: I do not like it

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

»
2 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    2 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    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 months ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    2 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    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 months ago, hide # |
Rev. 2  
Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    2 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    bro actually leetcode's graphql endpoints don't reveal the contest in which problem was asked but i am trying a way to actually make it happen so lets see if thats possible or not

    • »
      »
      »
      2 months ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      I thought of making for leetcode but i has the same probelm as you

      • »
        »
        »
        »
        2 months ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        actually i did find solution :) . ( leetcode have a graphql endpoint for fetching last 10 contests details but with pagination you could fetch even more ,even the first contest) soon upsolve queue from past contest for leetcode will be added

      • »
        »
        »
        »
        2 months ago, hide # ^ |
         
        Vote: I like it 0 Vote: I do not like it

        upsolve from last contests for leetcode is live please check it out!

»
2 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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

»
2 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    2 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    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 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Built with Claude?

»
2 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    2 months ago, hide # ^ |
     
    Vote: I like it 0 Vote: I do not like it

    Also, in my profile I found a bug some problems I have already solved appear in the upsolving page

    • »
      »
      »
      2 months ago, hide # ^ |
       
      Vote: I like it 0 Vote: I do not like it

      brother try refreshing your dashboard and even after half an hour of refreshing still solved problems in upsolve queue than could you please mail the screenshot of your upsolve queue to [email protected] :)