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

Автор phattd, 5 лет назад, По-английски

Hello Codeforces users.

Today I would like to introduce Arugo, which is a website that provides virtual rating while practicing on problemset.

On this website, you can practice problems that are suggested through a suggestion system or by your custom choice. Each problem has a window of 80 minutes to solve and if you manage to solve it in time, please validate and you will earn virtual rating. However, if you gave up early or time runs out, you will lose rating eventually. Rating progress will be displayed at the homepage through a graph like in Codeforces and through it, you can visualize your progress and stay motivated to keep going.

Rating progress preview
Challenge preview

This site is inspired by my past training days, which I always wanted to have something like this to aid my training. Hope that it will help a lot of you who are grinding the problemset and is obsessed with the problem solved count (like me) soon reach a new level. It is my first-year project so bugs are unavoidable. If you have any trouble with it please post an issue at the GitHub I linked on the page or just comment down in the blog.

Special thanks to Lyde, rainn511, Lucario387 and many more for testing and giving helpful ideas so that I can complete my website.

Have fun training blobheart.

Edit: Thank you very much for kind words blobheart. If you want to contribute to the site, feel free to reach out to me blobheart.

Edit 2: Much thanks to emorgan for pointing out a vulnerability in the registration process. I had it patched for now.

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

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

feature request: extension for chrome to integrate with cf

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

This is really cool , Great Work !!

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

There might be a security vulnerability in the registration system. I noticed that the site gives you the problem you need to submit CE to before you input your username, and many people have been getting the same problem since you posted the blog: https://codeforces.me/contest/1302/status

So I could perform the following attack: continually ask the Codeforces API for all the recent CE submissions in contest 1302, and every time I see a new one, immediately register on your website with the username of the person who submitted the CE, and a password only I know. Then while I was running my script, nobody would be able to register on your site, and anyone who attempted to do so would be permanently locked out of using their username, since I now own their account on your site.

To do it securely, you could do something like this:

  1. The user enters a username and password
  2. You provide them with a problem to submit CE to
  3. You poll the Codeforces API, and once you see that they submitted the CE, you complete the registration process. If they don't submit within a reasonable time frame, you cancel the registration process. If someone else attempts to start the registration process with a username that is already currently undergoing the verification process, they get an error.
  • »
    »
    5 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +4 Проголосовать: не нравится

    Thank you i'll fix it asap :love:

    • »
      »
      »
      5 лет назад, скрыть # ^ |
       
      Проголосовать: нравится +29 Проголосовать: не нравится

      Also, you should make sure that when you poll for the recent CE submission, you check that the submission time is after the registration process was started -- otherwise, I could attack it like this: suppose some user has gotten CE on problem X in the past, then I repeatedly attempt to register with that person's username and allow the timer to expire, until I get X as the one I am supposed to submit to. Then I would automatically pass and take that person's username.

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

I love the idea! Great work.

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

khủng

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

I've been wanting this for a while...glad it's finally out!

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

The problems are overlapping here, hiding the rating change.

Screenshot-from-2021-11-11-19-31-02

I use Google Chrome (the same thing occurs in Opera) and the zoom is at 100%.

Btw, thank you so much for this site.

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

Thank you for the awesome website!

Suggestion: the Reset Progress button should ask for confirmation

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

loved the ingenious way of verifying cf handle via a compilation error on random problem.

»
5 лет назад, скрыть # |
← Rev. 3  
Проголосовать: нравится +20 Проголосовать: не нравится

greatest codeforces related website till date

I have a suggestion.If someone solves faster than 80 minutes and with less wrong submissions he/she will get more points

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

Amazing tool! I finally have the motivation to solve random problems now.

One suggestion is adding a "Congratulations on solving" or "Accepted" in green text after we solve a problem. It feels good to see that.

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

Great! This is really cool..

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

Thanks for this incredible tool! A request from my side would be to add a "User History" page with the list of problems solved + time taken.

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

I was looking for something like that to come. Thanks, mate.

Request: Can you please add a customizable time limit. I think for many problems 80 minutes is too much.

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

Great Website...Finally I have motivation to solve problems besides duelling on errichto's server and doing VC on my own.

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

Not sure if this is a known error, but right now when I click on challenge I get shown this: I'm not a web developer so I have no clue what this means! Hopefully you might understand it. (https://i.ibb.co/Vq4P3cr/Screen-Shot-2021-11-12-at-8-54-30-AM.png)

»
5 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится
How to handle this????
  • »
    »
    5 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    You can submit a compile error to that problem, and also make sure that it is the last submission to codeforces by the time you register. I am trying to change the registration to a more secured way but for now that is how to register.

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

Can you please add a change password option?

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

Thank you so much!

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

I have patched (maybe ?) the registration process with random problem and once validation per query. The time limit should be 2 minutes until it expires. Much thanks to emorgan for pointing this out. Maybe can you guys give it a little test to it ?

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

Great Website, Loving it!

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

Thank you so much for this amazing website. Godspeed to you! I had a feature request: Can you please add a "user history" of solved problems? And beside each solved problem, can we see the rating of that problem? It would be nice if we could sort our solved problems by their rating. In that way, we can keep count of how many problems we solved from each level.

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

Suggestion — You can only see the rating change for the recommended problems. However, if you search for a problem, it just starts the timer. Could you add a feature where you can see the rating change and then validate? I understand if this is unnecessary because it could discourage people from solving problems if they don't want to lose rating.

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

Just got this error after writing a contest. I get this beauty every time I click on the "list" button. Not sure if it's related to writing the contest, but I mentioned it just in case, to make it easier for you to catch the error and figure out what's wrong.

Anyway, thanks a lot for your awesome website!

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

great website, i love the idea!

some suggestions:

  1. i'd like to have a verification after im done with a problem, e.g a message saying "you won\lost X points"

  2. consider adding vertices in the graph to separate problems — in your graph there's a continuous segment between problem 16 and problem 19. (like the codeforces rating graph)

  3. in the user history, when clicking on the delta button of problems, it scrolls the page to the graph, it would be nice if it could also highlight the relevant part of the graph. or, the vertices of the graph (idea #2) would be links to the problems.

  4. consider adding this question to the help & about: how do you calculate the rating change of problems?

  5. the tab is called "about/help" but the title is "help&about" (im running out of good ideas :) )

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

Great Work!!

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

How are the problems suggested? Is there any particular way or they are just random tasks with near ratings? Anyway, thanks it seems as a helpful tool <3.

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

I've started challenge, but got AC only after about 2 hours from timer was started. After that I've clicked 'validation' button — I thought that it would check real duration, so my rating would decrease. But my rating increased: i think it is because i haven't reload page and timer on the page showed 5 minutes to the end.

Is it bug or feature?

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

This website is great. Please add the option to customize the time limit so that a person can set the time limit lesser than 80 minutes if they want.

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

I'm about to lose rating because CF API is not working. This is like the 4th website built on the CF API that I'm breaking because of my huge submission count.

pls help

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

Another suggestion.It is required to refresh every time to see how many minutes left.Can you make the clock dynamic?

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

One suggestion ..plz discard the "discard challenge" . that's defeats the purpose of the site

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

The colors feel a bit off. Otherwise breathtaking!

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

Today the site suggested a problem that was already solved by me. I don't know if the repeat was intentional. Also, my previous submission was in div2 contest but the suggested problem was from div1 -> this might be the problem if repeat was not intentional.

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

Suggestion: the Manual Challenge Choice should show the problem found and ask for confirmation. Sometimes I may enter a wrong problem ID that I don’t want.

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

really thank you for this website, I have become addicted to it, I hope that you will add Atcoder support as well in future :), doomo arigato !

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

Thank you for the website. By the way I cannot login to the website after changing the username, hope you can fix it soon.

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

When I try to register it says "No such handle authorization query been made." I didn't change my handle btw.

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

A great project. Keeps one motivated to practice more and more questions by consistently pushing the limits.

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

Thank you for such good tool, it's peaks problem exactly for user level, agree to previous comment, it's keeps motivated.

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

Feature request: In user history show how much time it cost to solve problem

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

Feature request: Add profile page that can be shared by link

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

Today, I got this problem recommended for me: https://codeforces.me/contest/1002/problem/A3

Since its title was very strange, I fortunately peeked at it before accepting the challenge. I think it would be good to avoid that problems like this get recommended (or add some warning if they do), so people do not lose rating after starting the challenge for a quantum computing problem.

Thanks for the very useful tool btw

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

Couldn't open this page https://arugo.herokuapp.com/list/

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

phattd Why rating loss always greater than earn rating ?

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

phattd is it possible to see our friend's graph?

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

    Sorry you can only see yourself, for the sake of private training.

    • »
      »
      »
      5 лет назад, скрыть # ^ |
      ← Rev. 4  
      Проголосовать: нравится 0 Проголосовать: не нравится

      can you make the problem suggestion to only those problems that have an editorial because not having an editorial of a problem after exhausting every idea that I can get is frustrating as I won't know what am I missing to solve that problem! Also if you'd like, you can add a feature to see our rating in the graph on the point our cursor is. just thought it would look cooler!!!

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

The website doesn't seem to work now, I get this error when trying to open the homepage:

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

website list not working

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

Website not working. Probably stopped working ~20 days or so from now.

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

phattd can you provide the GitHub link to your site(Arugo) so that Arugo lovers can still enjoy it locally. As Heroku has stopped providing free services. !!!?

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

Hi! Are there any plans to put it back up?

»
3 года назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +5 Проголосовать: не нравится

Oh, Arugo, a platform of grace,
Where competitive coding finds its place.
I pen this humble plea to you,
To bring back the magic that I once knew.

In the realm of bits and code,
Arugo's embrace, my skills bestowed.
With each challenge, a new height I'd climb,
My mind honed sharp, in rhythm and rhyme.

From algorithms intricate and wide,
To data structures I'd confide,
Arugo, you've been my guiding light,
Through countless lines of code I'd write.

Oh, Arugo, the knowledge you impart,
Has shaped my mind, my coding heart.
In practice rounds and contests grand,
I found my place, a thriving band.

So, I beseech you, Arugo dear,
Bring back the platform we hold near.
Let others taste the joy I've known,
In the realm of coding, their skills be honed.

For Arugo, you've been my loyal guide,
In this vast coding world, by my side.
Revive the platform, let it thrive,
Where coders dare to dream and strive.

Arugo, I thank you, with utmost glee,
For the invaluable growth you've given me.
May your presence endure and never lack,
A sanctuary for coders to come back.

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

why not working now?