Inspiration

At the end of every school holiday, my friends and I often spend much time discussing our academic plan to find an optimal plan so that we can take more modules together and avoid “solo-ing” tough modules. This painstakingly crafted plan inevitably fails when the next sem approaches, as our interests change or as we get modrekt.

We decided to create this application so that we can stay constantly updated about how our friends’ interests change, find study buddies with similar academic interests, or simply browse interesting plans by others! We hope to make academic planning less time-consuming and modreg less stressful.

What it does

ACAD is a one-stop shop for NUS students for all your academic planning needs.

If you are lost and unsure where to start, our recommendation algorithm takes into account your academic program and finds you the most suitable one! All you have to do is fork it (import it) and adjust it according to your needs.

For students that prefer to tackle tough modules with their friends, ACAD enables you to follow your friends and find out which modules you have in common.

To create and sync their study plan with friends and the wider NUS community, simply input your academic plan and follow your friends to find recommended study partners pursuing similar modules. ACAD allows you to fork, like and import interesting plans for you to consider, similar to GitHub!

How we built it

The Web Application was split into client-side and server-side. The client-side was built with ReactJs, TailwindCSS and Redux to facilitate the applications data flow structure. The client-side links with our backend and database which was constructed with Ruby on Rails and PostgreSQL. We also used python to scrape and process data from the NUSMods API.

The frontend is hosted by Vercel and the backend with Docker and DigitalOcean.

Challenges we ran into

Most of us were very unfamiliar (or even completely new to Ruby!), and underestimated the learning curve of Ruby on Rail. We were unpleasantly surprised by how different Ruby was from the languages we are familiar with, and spent a loooong time learning it when the hackathon started. We also had to wrangle some thorny installation problems with the libraries and languages used.

We also had difficulties setting up a hosting service for our backend, jumping between EC2, Heroku and Docker instances hosted on our own laptops. This made us learn to always expect the unexpected, as we didn’t think that we would have stumbled on this.

Accomplishments that we're proud of

Creating a decent-looking (or so we hope) web app from scratch in just 24 hours despite most of us being incredibly new to the Rails framework! We are also very pleased to have created an app that we think will serve the needs of the NUS community, and is visually appealing too!

What we learned

A LOT. Mainly about web-dev skills and database management, though we also learned important software engineering skills such as communication, splitting of work and other important practices. Creating an entire app in a day isn’t easy, and this really tested our skills to the limits.

What's next for ACAD

We plan on further integration with NUSMods, MS Exchange for seamless login to our website and feature enhancements including smart recommendation pages to show users plans that they might be interested in! A “Groups” feature will also be added soon so that group of friends can seamlessly sync their plans and get recommendations from those in their groups. We’re excited to continue this project even after HackNRoll ends!

Share this project:

Updates