We were inspired by Wikiracing, the game where you try to get from one Wikipedia page to another. We experimented with NUSMods and realised that you can click from one module to another using the prerequisites/preclusions/co-requisites/fulfillRequirements. Hence, we decided to implement ModRacing, the titular NUS equivalent (hopefully?) to Wikiracing.

What it does

When you click "Start Game", a random starting module appears with a goal module. As you click on modules on a page, you will move around the modules. The website keeps track of the modules that you have visited on the navtab.

How we built it

The website is built using React, and the back-end is built using Ruby On Rails, which is deployed on Heroku. The algorithm for generating random possible paths is made on Python.

GitHub Link for the back-end: link

Challenges we ran into

  • Language barrier :(
  • The API calls had to be resolved as the website wasn't rendering as the components were updating when we used asynchronous functions
  • We had to filter the modules that were invalid (not offered in the academic year)
  • We had to implement a algorithm to find a random possible path of (at most) 'n' steps to build our database of possible paths

Accomplishments that we are proud of

  • Cross-language cooperation
  • Understanding asynchronous functions to render components on the website

What we learned

  • Each of us learned different things (CSS, React, Implementing search algorithms)

What's next for ModRacing

  • To see it on the NUSMods website
  • To be confirmed after we take CS2040
Share this project: