We wanted to make the activity of drinking safe. But before that, we thought the best way to attract people to use our service would be to make it social. So, we add a social aspect to it, with an intended side-effect of making people moderate their drinking. Also, people love taking pictures. And they like to look back to their moments.
What it does do
It is a text messaging service that keeps track of your drinks via the pictures that you send to it and makes sure you're responsive and safe. If you're not responsive enough, it contacts your emergency contacts (that you put in) to make sure you're safe.
How we built it
We used python for most of the back-end. We used MongoDB to keep track of the users and the state of their involvement in the service and everything that we need to keep track of. We deployed our app using GCP and their Cloud Function service.
Challenges we ran into
Setting up the cloud environment, building out the control-flow, determining the stack, etc. But we tried a lot of different configurations for cloud (tried AWS), databases (simple Google sheets), etc.
Accomplishments that we're proud of
- Figuring out the best way to make calls to the database without having to naively loop through the entire thing every time we need to check changes.
What we learned
- A lot of git, mongodb, collaboration problems, task division and designation, code compartmentalization and isolation, making sure everything works perfectly together.
- Google cloud's version control system---Cloud Source Repositories. This was much easier to work with than working using GitHub or any other VCS since the deployments were easier to test right there in GCP.
What's next for Snap Shot
A lot of polishing. We're thinking of still sticking to the text messaging service platform, instead of building an app out of this since that proves to be a low barrier of entry. However, we're thinking of adding in a lot of functionality and personalized control of the system. For example, adding in reminders, humanizing the existing user prompts, adding in more information about the "drinking session", making the intoxication calculator more accurate (while not being super clunky to manually input really specific data, which is the major problem with most of the existing intoxication calculator apps, which is a huge downside, as we see it.) On the technical side of things, we're thinking of adding automation to a lot of the testing parts, optimizing the database updates and searches, etc.