GCSE Grader
Written by Josh Heng onThe Covid-19 pandemic has led to the cancellation of almost everything, including GCSEs and A-Levels in the UK. Instead of us sitting an exam, our teachers were asked to submit what they thought each pupil would get, which would then be put through a mysterious algorithm which would standardise them nationally.
This led to lots of uncertainty, especially for schools which had not done so well in the past. I was joking around about it on a Discord server when a user by the name of Picapi had the brilliant idea of making a slot machine which would do an equal or better job than this algorithm...
...and a day later, I had a completed product!
I knew that this would be done client side in JavaScript, but at first I overcomplicated it by trying to utilise React and Vue. I soon realised, however, that this was overkill and decided to go with simple HTML/CSS/JS without any compiling or server rendering.
It began with a basic slot machine design with just three slots, but I went through multiple iterations to then improve the product further:
- Allowing users to choose their own subjects
- Allowing users to enter their predicted grades which would weight the grade allocation algorithm
- Making the site responsive
- Persisting the users' input in local storage
- Adding sound effects
- Generating a fake 'printout' with the results
For the grade allocation algorithm I used percentages from previous years and weighted it by the user's predicted grade. I made it impossible to get higher than the predicted grade and multiplied grades below that in a scale.
This is the end result. I was pretty happy with it, although the code could do with a bit of tidying up.
Oh, and it's also open source on GitHub if you want to take a look at how it works in the background. As there is no compilation, though, you should be able to see all the source straight from the browser.