All around the world, students lose a lot of time trying to find a place to study in their University's common places. These shared zones get even busier when it´s close to final exams, making students have to walk all around campus library until they find a free place to sit, sometimes you never find one and you just lose your time. Now, imagine having an injury that affects your ability to walk, it´s way harder for them to find a place, since they have to find it all by themselves, this takes way more time, energy, and effort. With our web application, you can just type the URL and immediately start seeing which zones have more people accumulated, with this, it's really easy and way faster to find a free space to sit and start being productive.
What it does
Portraits a map of the room, it shows all the persons gathered in a certain area, in this case, we showed the hackathon zone ("Centro Estudiantil").
How we built it
In order to achieve this, we built 3 different deliverables that interact with each other. 1- Python/C framework and library that uses libpcap as underlying technology. - This code is running in 3 different raspberry PIs, that are constantly passively monitoring the network gathering unique devices and signal strength data-points, these are sent to the api for processing. 2- Python flask API - This API is in charge of processing data-points by making triangulations in order to find the exact geographical position of every device. It generates snapshots with the freshest data points of the last X seconds. 3- ReactJS Web Application - This web application, polls the API in order to gather the latest snapshots and display them in a friendly user interface that allows anyone with an internet connection to access it from any device.
Challenges we ran into
- Bad network connection.
- Rolling out changes to every Raspberry device.
- Dynamic IP changing of our devices.
- Implementing complex mathematical formulas in order to triangulate a device geographical location.
- Measuring the distance of a wifi adapters we used.
- Getting hardware in order for it to work (Wifi adapters with specific chipsets, Raspberry PIs).
- Designing a system that could fit together.
- There's not much documentation of this.
Accomplishments that we're proud of
- Shell-script that rolls out new changes to Raspberry Pis.
- Formula that uses triangulation to get a geographical location.
- Stable API.
- Unique web-application user experience.
- Reliable systems.
- Saving people's time.
What we learned
- Networks real experience.
- Independent systems interacting with each other.
- Distributing time in an efficient way.
- Breaking big tasks into smaller ones.
- Never giving up.
What's next for pyple-meter