Boxby is a project I built along with my team of 5 people in RMIT ITS Hackathon 2019. The theme was "An Equal Community", which led to the idea of building a platform that caches the internet and provides an isolated offline version.
The name Boxby was inspired by The Box from the TV series Silicon Valley.
TechStack | Github | Demo |
---|---|---|
NodeJS | Repository | Video |
EJS | ||
AR.JS | ||
Python | ||
Bash |
Similar inventions to Boxby were built to solve the problem of social equality however, most of them were unsuccessful1. Despite the cheap price, such devices can not be considered useful if they provide no consequential benefit to the community.
By learning from the areas in which others have failed, we believe that limited education resource is the core problem which leads to social inequality. The Internet is the most powerful tool to help people to achieve better educational outcomes, however many areas and countries face limited to no internet connection with their devices. Rural areas in Australia are also known to face similar issues2.
Boxby was mainly configured at the operating system level to provide the most efficient network delivery. It ran off an old Raspberry Pi 3, an HDD with a wifi router. They were all well connected and packaged together within a box.
At the software level, Boxby runs a NodeJS server to provide a real-time API. For the front-end, I chose to use EJS to keep it lightweight but still provide all the user experiences.
It provided offline services such as Khanacademy, NPM, Canvas, Wikipedia, ... .
For augmented reality, we first planned to follow a server side rendering using ARJS 3. However with the limitation of power from the Raspberry Pi. However with the limitation of power from the Raspberry Pi, we decided to use client rendering instead. This decision included some limitations but still allowed us performance stability.
A solution to this problem would be deploying Fog Computing instances which will then do server rendering on Cloud.
If you're wondering if this small device will heat up overnight, since it is equipped with its own wifi routing system and running a backend server continuously to deliver a real-time API, the answer is:
Yes it will.
To overcome such a problem, we had to tear the system down to as small as possible and takes turns to watch it overnight during the 24 hour hackathon.
The idea was also pivoted many times during the day to meet all of the judges' desire as each judge has their own opinion on how the system can benefit the community.
This caused a time and cost increase to the project. In order to overcome this, all the components were built in micro services level, which allowed for future reusing if necessary.
Scrum plays an important role to keep the whole team in sync with the project, especially in situations where a lot of changes occur. This project allowed me the chance to learn how to communicate with my team members more efficiently using Scrum methodology.
Winning a trip to SFO was an invaluable experience. Thanks to our sponsor Capgemini, I was able to receive valuable information from meetings with Google Home Product Manager and some of the great minds at Facebook, Uber, and the Intel developer team. My experience with these professionals significantly helped reshape my perspective and allow for a deeper understanding of the tech industry.
Robertson, A (2018). OLPC’S $100 laptop was going to change the world — then it all went wrong. The Verge.
↩Vidot, A. (2016). Almost half of regional Australians report 'inadequate' internet. ABC News.
↩Jerome, (2017). Server Rendering for Augmented Reality - Cloud Rendering with Web Standards. Medium.
↩