Cappybara's blog

By Cappybara, history, 6 weeks ago, In English

Hey Codeforces!

Preparing for ICPC can be pretty overwhelming. Whether you're just trying to pass your regionals or aiming for the World Finals, it's hard to keep track of what you actually need to study, what your weak topics are, and how much progress you're making over time.

I wanted something to make the grind a little more structured, so I built a side project called ICPC Prep Hub. I’ve been working on it for a while and wanted to share it with you all today.

It’s completely free and open-source. To make it super easy to use, there are no passwords to remember—you just verify your CF handle once, and it saves your progress across all your devices.

What does it actually do? CF Analytics & Recommendations: The site syncs your solved problems straight from Codeforces. You can see your rating graph, check your accuracy, topic wise rating, and compare the problem tags you solve (like DP vs. Math) against other real users or the top N users. This makes it really easy to see which topics you've been avoiding! It also gives you personalized problem recommendations.

A massive topic roadmap: If you're ever stuck wondering, "What should I learn next?", the site has a roadmap of 99 different topics across 8 subjects. It goes from basic foundations all the way up to World Finals-level techniques.

Your daily dashboard: A simple home screen where you can check your overall progress, see if you're on pace with your goals, and track your daily practice streak.

A fun points system: Grinding problems every day can get boring, so I added a bit of gamification. You earn points for keeping up your streaks and practicing, which you can spend on little rewards.

Want to contribute? Since the whole thing is open-source (MIT License), I'd be super happy if anyone wants to help out! If you know some web dev or have ideas for cool CP features that would help the community, feel free to check out the GitHub repo. I have a TODO.md file up with a bunch of planned features.

Try it out here: ICPC Prep Hub

Let me know what you guys think! Any feedback, bug reports, or ideas for new features are super welcome in the comments.

Happy coding!

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

»
6 weeks ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

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

»
6 weeks ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Looks nice friend

»
6 weeks ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Nice bro !Thank you!

»
6 weeks ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Really nice project! Good work!

»
5 weeks ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Honestly as much as I like to John F. Kennedy stuff like this, there is a bit of value here.

The CF integration stuff is, in my opinion, pretty useless. If you're new and haven't solved many problems, there's barely any data to make any meaningful analysis. If you already have experience, you probably already have an idea on what your strong points and weak points are (for example I know that I'm good with trees but know nothing about strings). For problem recommendations just do random problems 100-300 above your rating. For topic-based practice (on weak topics) you can just reduce the rating a bit and select problems for that tag (probably what the site does, didn't look at the source code).

The roadmap is a bit nice. It takes the good parts from USACO Guide (grouping topics by level) and cp-algo (grouping by subjects) and combines them in a neat way IMO.

One small addition I think is necessary is adding "Preparing references" to contest meta-skills. It's a more involved process than creating a template of defines and includes. If your contest has a page limit, you have to be intentional about what you put in/leave out, how you organize it (with a bit of effort you can fit way more on a single page), etc. And it might involve editing various existing references to match your template. For example you might come across some black-box algorithm (you know what it does but don't care how) and copy an implementation for somewhere with a macro you don't have in your template (e.g. #define rep(i,a,b) for(int i = a; i < b; i++)) so you have to choose whether to add that to the macro template or edit it out. Also some of it is not even code (math equations).

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

    Ok, thanks for the suggestions, since the codeforces integration is still pretty generic, I will think of a creative way to improve it. The main purpose of it was to track your solves to give you the reward points though.

»
5 weeks ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

good stuff