What If I Never Brick? — A web application that predicts your optimal Codeforces rating
Difference between en15 and en16, changed 180 character(s)
Hello Codeforces,↵

I wanted to share with you a web application I recently developed. The application filters out unsuccessful contests you have participated in on Codeforces and predicts your rating today based on the performance of the contests you have participated in. The primary purpose of this web application is to help users discover their true potential, serving as a source of inspiration and motivation to empower them to persevere in their endeavors. Initially, my idea was to greedily select contests that have a positive delta based on the current rating, using the rating formula mentioned in this [blog post](https://codeforces.me/blog/entry/20762). However, due to slow API calls, I was almost ready to give up on the project. Nevertheless, I decided to proceed for the sake of completeness.↵

To my surprise, when I completed the application, I found the results to be quite interesting. Additionally, I added a mode that computes the rating using a simple O(1) formula: $ delta = (performance - rating) / 4 $. I found that not only did this computation take less time, but the results were also convincing.↵

I thought it would be valuable to share this application with you, as it may provide insights and assistance to Codeforces users in predicting their ratings based on their contest performances.↵

Without further ado, let me introduce you to ↵

<h3><a href="https://what-if-i-never-brick.netlify.app/">What If I Never Brick</a></h3>↵

<div align="center">↵
<img src="https://raw.githubusercontent.com/wyhong3103/what-if-i-never-brick/main/src/assets/neverbrick.png?token=GHSAT0AAAAAABPFPARAKL3HZLANEY6NWC7AZEQNHHA" width="300px">↵
</div>↵


To use the application:↵
<ol margin="10px">↵
<li>Enter the [website](https://what-if-i-never-brick.netlify.app/).</li>↵
<li>Enter your Codeforces handle.</li>↵
<li>↵
Select a calculation mode: either "Fast" or "Slow".↵
<ul>↵
<li> The fast mode is incredibly fast because it fetches only the necessary data, which includes your rating changes in every contest, in a single API call. </li>↵
<li>The slow mode takes more time as it needs to fetch all the contest data you have participated in, and each API call takes 2 seconds</li>↵
</ul> ↵
</li>↵
<li>Click on the "GO" button and wait for the result.</li>↵
</ol>↵

<br>↵
<div align="center">↵
<img src="https://i.imgur.com/82VNoTN.png">↵
</div>↵

Thank you for your time. ↵

If you have any further questions or suggestions about this application, please feel free to leave a comment or reach out to me via Codeforces.↵
<p>
Also, feel free to contribute, [this](https://github.com/wyhong3103/what-if-i-never-brick/) is the link to the GitHub Repository.↵
</p>↵
<br>↵

<spoiler summary="Updates">

**UPD**: Rating restrictions have been added for each division. You will be eligible for Div 2 if and only if your rating is less than 2100 (The same applies to Div 2 which is rated for participants < 1900). Similarly, Div 3 is only rated for those with a rating below 1600, and Div 4 is only rated for participants with a rating below 1400.↵

**UPD**: Rating restrictions have been removed because the original algorithm is not always optimal when rating restrictions are introduced. Currently, predictions are solely based on the performance of all the contests the user has participated in. I will work on improving this aspect when I have time, but for now, I will leave it as it is. Apologies for any inconvenience caused.↵

**UPD**: A progress bar has been added to the slow mode, and the buttons are now disabled upon the start of computation.↵
</spoiler>↵

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en17 English wyhong3103 2023-06-25 06:53:12 237
en16 English wyhong3103 2023-06-22 10:47:52 180 Tiny change: ' added to slow mode' -> ' added to the slow mode'
en15 English wyhong3103 2023-06-20 20:44:55 436 Tiny change: 'itory.\n\n~~**UPD**: Rating res' -> 'itory.\n\n**UPD**: ~~Rating res'
en14 English wyhong3103 2023-06-20 04:29:54 347 Tiny change: 'itory.\n\nUPD: Rating r' -> 'itory.\n\n**UPD**: Rating r'
en13 English wyhong3103 2023-06-19 19:11:34 0 (published)
en12 English wyhong3103 2023-06-19 18:50:05 75
en11 English wyhong3103 2023-06-19 18:35:51 193
en10 English wyhong3103 2023-06-19 18:28:33 65
en9 English wyhong3103 2023-06-19 18:22:04 19 Tiny change: 'l free to reach out' -> 'l free to leave a comment or reach out'
en8 English wyhong3103 2023-06-19 18:21:40 20 Tiny change: 'Codeforces or Discord (.stax.).\n\nAlso,' -> 'Codeforces.\n\nAlso,'
en7 English wyhong3103 2023-06-19 18:21:14 76
en6 English wyhong3103 2023-06-19 18:19:58 522 Tiny change: 'odeforces OR Discord (' -> 'odeforces or Discord ('
en5 English wyhong3103 2023-06-19 18:10:54 40 Tiny change: 'ult. </li>\n</ol>\n\n<' -> 'ult. </li></ol>\n\n<'
en4 English wyhong3103 2023-06-19 18:07:30 65
en3 English wyhong3103 2023-06-19 18:04:54 622 Tiny change: 'g" width="200px">\n</' -> 'g" width="300px">\n</'
en2 English wyhong3103 2023-06-19 17:24:59 1004
en1 English wyhong3103 2023-06-19 17:17:40 365 Initial revision (saved to drafts)