Hello, Codeforces community!
First of all, I would like to thank MikeMirzayanov for such an awesome platform. It's been almost a year since I joined and ever since I was always in the dilemma which question to solve. It's a commonly accepted fact that one should solve the most solved questions first. Many other recommender websites out there follow the same pattern — solved count for the win. However, after some days of following it, it kinda felt repetitive. Yes, the ones that everyone can solve would be the easier ones. But how do we determine if it can teach us something new? Codeforces has the problem rating system which gives a more accurate view of which question is easy and which is not. But as with the case of solved counts, rating can't be considered as the sole differentiator.
After having analyzed for some time, I found that there are three important factors that decide which problem is best suitable for practice — problem rating, problem tags, and solved count. The solved count is a good measure for determining which problems you are more likely to be able to solve. Problem rating can help us classify problems as easy, medium, or hard for us according to our rating. Thirdly, I would like to explain the importance of problem tags. It can be seen that some tags are more frequent in certain rating ranges. For example, if you check problems of rating 1300-1500, you are more likely to see implementation, brute-force, or greedy problems. So, someone who is in range just below this range can expect questions with these tags to be there in live contests let's say as a Div2 A/B. So, solving these problems will definitely help in ranking up.
Combining all these, I built UpSolve.me as a platform to give personalized suggestions for practice. The rating taken into consideration is the max rating of the user as I believe we must always look beyond what we have already achieved. Everyone has bad days and ratings fall. But it ain't bad targeting a high +ve.
May the codeFORCEs be with you!
Note: I am still working on the project. Team practice and tag-based practice mode will be arriving soon. Feel free to look around and give your opinions. Your involvement will only help me boost the platform. Any constructive criticism or feature requests are dearly welcome.
UPD: I didn't expect so many people flooding in at once. Heroku seems to not be able to handle these many requests at one go. I'll fix it asap. Stay tuned. Thanks!
UPD2: Moved from Heroku to Google Compute Engine. Feel free to explore it now!
UPD3: Things seemed to be corrected on GCE but again a problem popped up that https requests were not passing through. I have reverted it back to Heroku and have enabled it to restart instantly on crash so that you don't experience downtime. However, it's a temporary fix. If anyone can help me out setting it up on the GCE, please do reach out to me.
Good job on the frontend bro! I really love the UI
Thanks! The looks and feel are important if you plan to use something on a daily basis. That's what I had in mind.
Auto comment: topic has been updated by zenolus (previous revision, new revision, compare).
great idea zenolus!!!
Can you help me out. Nothing happens when I fill in my codeforces handle and press Enter.
I added an update you see. Heroku seems to have some issues with the number of requests. I'm working on it. Will fix it asap and let you know!
You can try now. I have fixed the issue.
Would be nice to display a message..."currenty not working" or something.
Awesome UI and great job. But what is the difference between UpSolve.me and Codeforces Visualizer
Thanks! I didn't know about the site. I'll check it out for sure and let you know.
Hey! CF Visualizer seems to be a great website for user info statistics. I mean you can see how you grew over the last few contests, can compare against other people. But UpSolve.me is focussed on proper practicing, i.e., what to solve.
Yup.My apologies, I did not see the practise problems part. Great job buddy and thank you for contributing the community.
Auto comment: topic has been updated by zenolus (previous revision, new revision, compare).
Its not working..
I'm trying to see what's wrong. I'll let you guys know when I clear it
Why I see problems only from the last round? I want to upsolve older rounds which I forgot about. Is there any way I can see older rounds' unsolved problems as well?
I can add it. But how many past contests should we keep? Like currently I'm showing only of 1
Could you make it so that we can choose the number of contests? That'll be pretty cool.
And great work. Thank you
Okay cool. I can do that. No issues!
It doesnt seem to be working now, but thanks for the great site.
Yeah, I have been trying to find the perfect fit for the backend. This is my first time experimenting with actual backend hosting. So, please bear with me a little. I'll get it up.
why its not working!? i mean nothing happen when you enter the handle :(
Coz his focus was on building the UI only. Its a hollow website with no backend.
That's not the case. It is my first time working with backend. I'm having some trouble setting things right. I'll correct it.
Good luck.
It's back up. I'll be adding info about it in an update
same here
hey, i'm sorry but i'm trying to fix it. First there was some issue with heroku not being able to handle so many requests. Now when I shifted to GCE, there is some issue with http/https. I'm working on it.
ok, no problem. We are with you :)
Hey AriaH you can check it out now!
Thnx :)
Auto comment: topic has been updated by zenolus (previous revision, new revision, compare).
Would it be possible to open source the recommendation engine on Github? I think it would be beneficial for a few reds from the community to look at how you're recommending problems and try to incorporate what they have found helpful in their practice.
For example, if I were to guess, you don't consider WA in your recommendations. I found that at my level, WAs (and looking at the test case) will make me stuck in blue forever. I would definitely help you incorporate that into your recommendations somehow.
Sure thing. I was actually going to write another blog regarding how exactly I'm scoring the problems. But due to the backend issue, I didn't have time. I'll soon post another blog and will add a link to the GitHub project.
Awesome site!!!
Here are some more suggestions from my end to add to the functionality: (1) You are currently showing the tags. I would rather that you keep a switch function there, whether or not to show. (2) Allow us to blacklist tags, and maybe whitelist some too.
Thanks again for this n0ice website.
As I said in the post, I'm working on two things right now. Team practice and tag-based practice. I'll surely take your suggestions into consideration.
I think the point (1) should be your highest priority, since tags often "spoil" problems :")
Point (2) can be done sometime later.
Okay! I'll fix that asap
Is it fine now? Please have a look.
Isnt this just like a sub part of codeforces visualizer , they show unsolved problems too , not only from past contests , but problems which were not in any contests too
Once again, I didn't know about Codeforces Visualizer before. Besides, the unsolved problems shown there are only the ones that you might have tried but couldn't get an AC. Be it in practice or contest. But what UpSolve does is it suggests what questions you should try so that there is a high probability of learning newer stuff that may help you in future contests as well. Basically, as you might know from the codeforces community upsolving means solving at least 1 question above of your level. That's what the aim is here as well.
I thought upsolving meant solving problems from the contest which you were unable to solve before
There is also a website for problems , and it recommends problems based on the weak areas (as per the submissions )
https://recommender.codedrills.io , this one i guess
Yes, I know of it. But you see, in their FAQ section, they have clearly mentioned about solved count being the judging criteria.
"We use the number of users who have solved the problem to estimate its difficulty. The recommendations are relative to the difficulty of your solved practice problems so far. So, for example, the easy recommendations for a red coder will be harder than the easy recommendations for a grey coder"
But I didn't find it to be the only criteria for recommendation. For example, there may be a dp question having 10k+ submissions. But the thing is for a Newbie or Pupil, targeting to be able to solve all Div2 A/B questions, dp is not one of the most important topics. Rather he should focus on implementation, brute force, etc.
How do you know what one should focus on , I just dont understand
Besides that , you are a specialist yourself , setting any criteria as per your thinking may not be a good idea
Yes, I agree. I am open to all suggestions. I'll be releasing a blog describing how exactly I determine the recommendation score for each problem. Any input on that from the codeforces community will be appreciated and implemented.
We are getting an overwhelming response. Thanks a lot guys. But Heroku limits API calls at 4500 calls per hour. If it seems like it is down, don't worry. Please try a bit later. Moving to GCE will solve this problem, but for now, it's a temporary fix.
Hi! First of all, awesome website, congratulations. Just a quick suggestion (might only be me), when you hover over a problem, its difficulty starts upside down and then flips back to normal. I think it would look better if it started out in the correct orientation, just my opinion though. Once again, awesome job!
I made it like that cus it kinda felt cool. But if you feel like it's messy, I'll remove it.
Not messy at all, just a little too extra (again, just my opinion, if you want to leave it looks just as good).
Nah it is a little too extra actually. I'll remove it tomorrow
UI rated 100% :)
//right.
Here's an interesting feature idea that none of the existing sites have: in "suggested practice problems" only show problems from contests I already have some submissions. There are many contests I can't do a honest virtual in because I have solved some random problem from there already. Initially I thought you had this feature because most suggested problems were like that. Also, it seems truer to the "upsolving" theme of your site.
(Contrary to many previous commenters I'm not a big fan of this kind of UI. I'm a firm believer in motherfuckingwebsite.com. Because there are so many not really functional websites with fancy UI (example: Topcoder), plain and simple websites "feel" more robust.)
Thanks a lot for your input. I'll definitely work on that suggestion. Yes, I agree that it is better to have a plain and solid working website rather than a fancy just for show one. But I assure you the fancy UI was just my personal preference. I don't intend to cut on functionalities for that. Besides, referring to a previous comment, would it be better to have more problems in the upsolve section from a number of past contests or should I keep like a filter function that takes a particular contest ID and returns the problems that need upsolving?
I like the first option. Suggesting based on difficulty is good, I just want to filter out problems that I could use in a virtual contest later. I can go to a particular contest ID myself, but it's not so easy to find upsolvable problems with appropriate difficulty.
Okay I got your point now. I'll work on that.
Can you elaborate a little on the web technologies used for this app? Is the code on any GitHub repository?
I have used MERN stack for this. You can find the code for the frontend here
What I need to do after inputting my handle?
That's all you need to do. Put your handle and submit (press Enter).
NOTHING is working properly. please check the issue.
I just checked. It's working. I think when you would have tried, Heroku call limit might have exceeded. Please have a look at this comment.
Thanks for the app! There's a bug in Suggested Practice problems: It suggests problems which weren't solved in div1 contests, but solved in div2. Please fix
Could you please explain in DM?
Site is not working.
You can access it here
Is upsolve.me down?
another comment led me to this web page : https://upsolve.netlify.app/
OP, the site is down. Can you kindly have a look at it?
Nope, it's not down. This is the link to the site : https://upsolve.netlify.app/
It's down right now pls do something to fix this...
The website is still alive. Here you go https://upsolve.netlify.app/
i can't find it
Looks like the link he shared is either not working or is currently down. Use this : https://upsolve.netlify.app/
Is the website still alive?
This works! upsolve.netlify.app.
Love the UI It will be really helpfull for us :) Btw What techstacks u have used in it?
is it working anymore ? it's just opening a page that has 3 choices : Free product advertising , games and game what shall I do?
It is not working. Please help
Amazing website but I only saw screenshots as the website itself is not working right now :(
Bad project
I followed link and It opened 1xBet
Is it bug or ...
You can join NealWu's discord, and there is an amazing bot, which suggest you problem