Week 6.2: Recess week + Execution

Picking up where we left off earlier: as we saw the inadequacy of current NUS maps, we challenged ourselves to build Happ, a map alive with real time informational displays and fun user interactions.

Knowing from the start this would be a big project, we divided ourselves according to our areas of expertise. This is to ensure we could focus and comfortably achieve the most amount of work given the available short amount of time.

Irvin and Thien started off using React to bring Happ to life, visually. The way I see it, Irvin is really an expert on React and he could literally translate any of my usually complicated UI idea into reality in code. Thien, with his startup experience during NOC, has an impressive knack of webpack configs and service workers. The UI team works together and IMO has come up with one of the neatest interfaces that can be possibly created by us students.

As before, I work on the backend, utilizing the same tech stack I used in Assignment 1, so initial setup was a breeze: Node.js and Koa for the API server, Passport/JWT for authorizations, and PostgreSQL for database. The real difficulties came in when I started designing the data schema, which will be covered in more details in an upcoming blog post.

Although Manh had little experience with web development, his experience in Python is perfect for a special task on which projects like ours greatly depend: data analysis.

For an augmented map, the most important thing is informative data. We have plans for many: school events, lesson schedules, CCA meetings, etc. But we can’t just go around the campus ourselves to collect such enormous amount of data! That’s where Manh’s role comes in: probing existing sources such as NUSMod, NUS Events, emails, etc. and devising ways to inject those to our database automagically.

To be honest, we’ve had lots of fun learning and hacking stuff so far. A project of this scale needs much more time to reach its intended potential, and luckily we’re all willing to continue working on Happ even after this assignment ends.

The next post in this series will discuss in details one of the most ancient questions in existence, which we had to ask ourselves while implementing Happ: SQL or NoSQL?