Shopping malls and MRT stations are getting really crowded these days. Wouldn't it be great if you could tell how crowded a public space is without putting a foot out the door?
What it does
Crwd is a web app that allows users to see how crowded public spaces are from the comfort of their homes. A network of sensors, deployed across the island, would give real time feeds of the ebb and flow of the crowds. The app also displays aggregated historical data to better flesh out trends. Each location can further be broken down into a collection of sensors, providing fine tuned information such as how congested the underpass or the carpark may be.
How we built it
The sensors are built with a Raspberry Pi with an infrared ranging module. It transmits this data wirelessly to a central Java data server. The Java server aggregates the data and performs analytics. It then presents the information in a convenient form when querried by the reactive meteor web server. The servers exchange information through JSON.
Challenges we ran into
Getting the Raspberry Pi to connect wirelessly was daunting. We crashed the kernal several times and couldn't connect to it through SSH no matter what combination of routers, LAN cables, laptops and phone teethers we tried. This being the first time we made a web app with meteor, it took us a great deal of effort to get the webpage to synchronize correctly with the backend database and the remote data server.
Accomplishments that we're proud of
We're proud of having developed a system that runs smoothly on the three different systems we developed it on, but I guess what we're most proud of is that we've developed a web app that we ourselves would use.
What we learned
Many things. Networking, databases, web frameworks.
What's next for Crwd
There is certainly room for improvement for parallelism in our servers, so that they can handle heavier traffic flows. The sensors should also be made hardier and more compact so that they can be properly tested in a public space. We could also improve our analytics to draw even more information out of the sensor readings.