An example of someone on the sidewalk not being tracked by the Queue Tracker. Check out our full demo video in our github repo.
Some example hardware we could use. Ideally, we'd design our own cheap webcam and IoT chip for significantly less.
An example of someone going inside and updating the Queue via the Queue Tracker. Check out our full demo video in our github repo.
An example of the Occupancy Counter tracking people going in (down). Check out our full demo video in our github repo.
When the COVID-19 quarantine ends, things most likely won’t return back to normal right away. Bars and other venues will likely have a limited capacity, and as a result, we might see lines form outside, similar to the lines we see in front of grocery stores today. We feel that this would be a major pain point for many people, especially during a time where people are longing for social connection once again. Furthermore, we also feel that this product would endure long after the quarantine is over.
What it does
We created an app called Crowdcast that takes your current location, searches for nearby bars, and detects how busy each venue is in real-time using computer vision. In particular, it can track how many people are currently at a given establishment, and it can also track how many people are waiting in line outside (as well as how long the wait time would be). Why head to a bar with your friends without knowing how packed it will be? Crowdcast searches all nearby bars and provides you with real-time knowledge if the bar you intended to go to is actually a feasible option.
How I built it
For the front-end, we used Svelte, Mapbox, and our own Bespoke framework. The back-end was built with a Flask API, which in itself calls the Google Places API and Google Photo API to get information about nearby venues. It also retrieves information from our computer vision component built on OpenCV from some open source examples, which exposes a REST endpoint to provide the back-end with information about the current capacity and wait times for each venue.
Challenges I ran into
Many of the challenges we ran into were based on the fact that we were a bit new to some technologies. For instance, Svelte was a relatively new framework that we had not used before (too extensively), and all three of us come from AWS backgrounds, so navigating Google Cloud was a little tricky.
Accomplishments that I'm proud of
The front-end is incredibly smooth, and it’s fully responsive, which means there’s a great experience on both mobile and desktop. Additionally, we’re very proud of the computer vision work, which, based on a few sample video feeds, seems to be accurate in tracking capacity and queue lengths.
What I learned
We learned how to navigate through GCP on a basic level, how to interact with Google APIs, and how figuring out interactions between our different components (front-end, back-end, computer vision) can take some time. We also gained more experience using Svelte and OpenCV.
What's next for Crowdcast
More functionality on the front-end! We’d like the ability to search for certain venues, filter our results, and sort our results by a specified field. Furthermore, we’d like to be completely hosted on GCP. Finally, we'd like an analytics and advertising platform for bars so they can take advantage of our platform to attract customers and gain business-critical insights.
Our path to monetization
First and foremost, any bar on the platform is going to gain an advantage. When bars are empty and need customers, customers will be drawn by the promise of short lines and low crowds. When the bars are full, not only will they not need more customers, but they'll likely not want their regulars showing up only to be disappointed by the long waits. We also plan to add dynamic advertising that is only active when the capacity and queue length are below certain thresholds, and deliver analytics to bars both about their own customers' trends as well as those of other local venues.