NUSMods R - Rethought, Redesigned, Rewritten, Reborn
Today we are very excited to be releasing a new version of NUSMods for everyone to use. This release is NUSMods’ third version since the project was originally started in 2012 by Beng, founder and creator of NUSMods. NUSMods R has been in development for over a year and will finally be available for use thanks to the hard work of a team of young and talented developers from School of Computing. The NUSMods core team has put in a tremendous amount of time and effort over the past year during both semester period and holidays to make this possible. Many thanks to the people involved in the development of NUSMods R - Zhang Yi Jiang, Li Kai, E-Liang Tan, Ng Zhi An, and Yangshun Tay.
The new version brings about some much needed enhancements such as multi-platform compatibility, performance improvements, increased customizability, and solves many of the pain points of the previous version. We redesigned the user interface, rethought the user experience, rewrote the entire code base and removed a number of features that were not commonly used among students so that your usage experience will be greatly enhanced. We have plenty of other things to ship, but done is better than perfect; we can’t wait to put the new release in your hands. Here are some of the highlights in the new release:
Timetable Overhaul
- NO MORE DRAG AND DROP. It’s now tap and select
- Mobile friendly timetable (check it out on your mobile phone)
- Supports both horizontal and vertical orientation
- Customizable module colors
- Hiding of modules from the timetable
- Use Z and C keys to cycle through the timetable themes
- Use X key to toggle Dark Mode
Many thanks to Yangshun Tay, Zhang Yi Jiang, Li Kai, Ng Zhi An and E-Liang Tan for their work on the timetable.
Module Finder and Module Pages
- Filter by levels, MCs, tutorial timings
- Search modules by title and description text
- Mobile friendly module finder and module pages
Many thanks to Zhang Yi Jiang, Li Kai and Ng Zhi An for their work on the Module pages.
Venues
- Colorful venue timetables
- Instant filtering of venues by name and availability
Many thanks to E-Liang Tan and Zhang Yi Jiang for their work on the Venues pages.
Performance and Infrastructure
- The timetable page loads almost instantly thanks to caching of both assets and data
- Aggressive caching of resources
- Reduced loading time and payload by half
- Time to interactive greatly improved
Many thanks to Li Kai and Yangshun Tay for their work on the performance and infrastructure aspects of NUSMods R.
NUSMods R By the Numbers
- 9 contributors to the code
- 404 commits made
- 116285 lines of code added. 44606 lines of code removed
- 393216 ways to customize your timetable (assuming a normal workload of 5 modules)
- Initial load time of 885ms
- Bundle size of 605 KB (after Gzip)
- Test coverage of 44.54% (We know it needs improvement, we’re working on it. Help is welcome!)
We’ve already heard from many voices about NUSMods R while it was in beta, and here’s what they have to say:
Get your school life in order with NUSMods R
- Ng Zhi An, Software Engineer, Google
The only working planner
- Yeo Quan Yang, Security Engineer, Apple
NUSMods helped me find a girlfriend
- Soon Chun Mun, Software Engineer, Google
Not all heroes wear capes
- Yangshun Tay, Front End Engineer, Facebook
Best in class in a monopoly market 🌝
- Karen Ang, Ex-Software Engineering Intern, Google
NUSMods made me get stalked by random NUSWhispers commenters
- Ang Yen Ling, Poster Girl, NUSMods
To Infinity and Beyond
Over the period of a year from Jul 2016 to Jul 2017, NUSMods saw over 2.5 million sessions, over 250,000 users (including returning users) and over 9 million pageviews, peaking at the start of semesters. Freshmen often have difficulty understanding the module and bidding system but with NUSMods the process is made much smoother. Many seniors recommend freshmen to use NUSMods to plan their modules. Even exchange students use NUSMods and they often exclaim that they wished they had such a platform back in their own university. The immense popularity and usefulness of NUSMods and the impact that NUSMods has on the school population drives us to keep innovating and making NUSMods better. Another goal of NUSMods is to provide a platform to encourage students to experiment and create original community-engaging work via the NUSMods API.
NUSMods R marks a major milestone for us and is a huge improvement in terms of both product and engineering. This would not have been possible without the dedication of the NUSMods core team and hard work they have put in over the past year. Moving forward, NUSMods will be led by a new generation of student developers from School of Computing - Li Kai, Zhang Yi Jiang and E-Liang Tan. There is still a ton of work left to be done, such as further improving the performance and writing more tests. This journey is 1% finished. Do reach out to us if you are interested in contributing to or collaborating on the project.
With this release, we hope that students of NUS enjoy using NUSMods more than ever and also hope to inspire budding developers with our engineering culture and practices!
If you are interested in knowing more regarding the engineering behind NUSMods R, check out this post.