Context

Exactly two weeks before Big Red Hacks, my roommate and I were walking back from class when he realized he had to go talk to one of his professors. I walked with him, thinking it would only last a short moment. I told him I would be "chilling outside," so I couldn't just leave and go back.

Epiphany

After 5 minutes of leaning against a wall, my legs were getting uncomfortable. I searched for a seat, but alas, twas nowhere to be found. Later on, I had an epiphany – crowd-based seat finding, which I quickly shared with him. As is customary with engineers, we instantly went to specifics, such as how to detect sitting and minimize false positives.

Research

On the bus here, we started researching how to detect sitting using a simple tri-axial accelerometer (such as the one in an iPhone). All that we could find were research papers, so we had to comb through multiple research databases for relevant information.

App

We are most proud of our 90+% accuracy in background sitting detection, as well as the elimination of false positives from squats and walking. We are also very proud of the internal API created to simplify location data and review fetching. As of now, the app plots data every time someone sits down, and strengthens that datapoint if multiple people have sat in that same spot. This data is then displayed on a map for anyone trying to find a chair. Users can submit reviews for the chair they're sitting in, and other users can see these reviews. The app features a minimalist interface. Python, flask, and sqlalchemy power our backend server, running in the cloud on AWS's ec2 service. Our frontend is written in swift, and uses no external libraries. Our target group contains everyone who has ever looked for a place to sit down, but didn't find one.

Side Note

To end on a funny note, our ec2 servers were accessed by multiple IPs, some coming from California, some from Virginia, and even one coming from China, attempting to exploit the Shellshock bug through cgi attacks. We tried communicating with them by sending http and ssh requests back, but got blocked by each one.

Share this project:
×

Updates