We were inspired on the way to Cal Hacks - in the days leading up to the event, Lindsey stayed at an Airbnb that was remotely accessed through a smart lock by August, who happened to be a sponsor of this hackathon. After talking to the company reps on the first day of the event, we brainstormed notable pain points for August customers, and how we might address their concerns.
We realized that many leasers on platforms like Airbnb, many of whom use smart locks due to the lack of keys, feel frustrated when renters sneak friends or family in beyond the home's maximum capacity, so we decided to tackle the problem in a non-invasive way that integrates with August's smart home ecosystem.
What it does
The webapp notes the building's approximate population over time by counting the number of people that go in and out of the building. Whenever guests unlock the door to the home, the webapp begins accessing and analyzing outdoor footage from the doorbell camera using Google's vision API. The approximate flow of people over time is stored and made available graphically and numerically to the homeowner, making it easy and quick to determine when a threshold has been crossed.
How we built it
We each chose to focus on different parts of the project. Kevin mostly worked on the Flask backend, which handles all API calls to August's devices and is hosted online so that August can notify our backend whenever an event has occurred on either the doorbell or lock. Mercy worked on integrating the Google Vision API into the backend, which identifies the number of people in view of the doorbell camera and allows the project to come together as a whole. Lindsey worked on data visualization, parsing the stored data and returning plots for the homeowner's dashboard by using matplotlib and other tools. Brian worked on the frontend, using Node.js and React to make API calls to our backend and parse stored data in order to create a functional and appealing user experience.
Challenges we ran into
We ran into a lot of technical problems, mostly because we were unfamiliar with what we were dealing with. Performing the API calls, for instance, led to a lot of roadblocks as we ran into issues with CORS, caching, and more. We also wanted our computer vision techniques to be more advanced, so that we could accurately identify people going in vs. people going out, but we had some problems due to limitations on our technical knowledge.
Accomplishments that we're proud of
Most of us are newer to hacking and we all worked with libraries and technologies we've never touched before, so we're proud of being able to work with a variety of tools and create something unique.
What we learned
Just having the experience of working on a project has taught us a lot, and we think being able to focus on and work with a sponsor's product definitely elevated that experience. We also learned the power of friendship :)
What's next for OctoberLock
There's a lot to be improved for the project: better computer vision to improve the accuracy of results, user authentication, processing video streams, bug fixes to improve consistency, and an expansion of features.