Subnodes | SuperMesh
- Raspberry Pi
What do 2014 Hong Kong protests and Chile's Constitución from the 2010 earthquake have in common? Their inability to communicate with others due to its censorship by the government or its natural disaster. Does this mean in places with a lack of internet connectivity, there is no other way to communicate effectively? No - and this is where our project Subnodes comes in.
Subnodes allows the ubiquitous and affordable Raspberry Pi to work as a wireless access point and enables anyone within range to connect and interact with the software that runs on top of the platform. For the software, we built a CMS application built with Mongo, Express, Angular, and Node.
This was our final project at Fullstack Academy of Code. We submitted this project to Big Apps NYC and made it as a finalist.
I handled the majority of developing Supermesh, the software portion of the project, and the project's configuration (gulp). For Angular we chose to follow a design pattern, we used John Papa's Angular Styleguide. For a quick prototype, we used Firebase.
There were a few hiccups - but the one that sticks with me is when, one day all of the sudden, our meshed network of Rasberry Pis stopped working. It was a bizzare moment because we didn't change anything in the project and the whole thing just stopped working... The problem: Our install script was pulling a package of the latest NodeJS release. The install shell script had been installing different releases of NodeJS on our Rasberry Pis as we added them to the mesh. Eventually this broke the project.
Our team member quickly updated the script to be locked to a singe release. We updated the devices that had the newer versions, and it worked.