Inspiration

At Vanderbilt, Assassins is more than just a game—it is how we connect with fellow students and meet new people. Out of our common love for this exciting game grew an even more exciting concept: an Assassins game that can be deployed on your phone!

What it does

Snap Tag is a mobile application that allows any user to create or join a mobile Assassins game. The app uses a unique game code to link users who intend to play in the same game.

The biggest variation is that, whereas conventional Assassin usually relies on physical tagging to eliminate players, Snap Tag requires you to snap a picture of your target’s face to eliminate them. Our app then (supposedly) uses Computer Vision to determine whether the photo you took matches other photos of your target. If so, you have eliminated your previous target and must now eliminate your new target. Be the last person standing and you win the game.

How we built it

Knowing that we could use $100 of FREE Google Cloud Platform credits to host our app, we created a SQL-like game database to manage user data and to maintain active games. The back-end was coded in Python using Flask (web framework) and hosted with Google Cloud’s App Engine. We used Google Cloud Datastore to store all user and game data. As for the front-end, we decided to use Ionic in order to service both iPhone and Android users.

Challenges we ran into

Google Cloud proved to be more difficult to work with than we initially thought. While Google Cloud has numerous services that are undoubtedly very powerful, the learning curve is steep, and the amount of information and documentation overwhelming at first. One of the toughest challenges was storing, transferring, and processing pictures. Additionally, Ionic is a convention-heavy SDK, and it proved to be quite frustrating at times.

Accomplishments that we're proud of

From the mind-boggling to the trivial, we feel that we were all forced to learn new concepts this weekend, and we are proud of our resilience in this endeavor. There were many times throughout the weekend where we struggled for multiple hours to fix some bug or to get some feature working but in pretty much every case we were ultimately able to overcome the setback. We are all very happy with the fact that we managed to create a product that’s actually close to what we initially envisioned.

What we learned

We learned a lot about Google Cloud Platform—we learned what we liked about it as well as what we didn’t like. We also learned about back-end development, Flask, and managing databases. For some of us, a new language was debuted this hackathon. For Sam and Fernando, it was their first time coding meaningfully in Python. Likewise, Neil had never coded in Sass before, and Jake got to try his hand at database construction.

What's next for Snap Tag

Our team believes that there is a lot of room for growth with Snap Tag. We unfortunately didn’t get the facial recognition component of the app working this weekend. We believe that with a little more work, we’ll be able to implement this key feature of our app. There is lots of room for improvement in the visual design of the app as well. We also took some shortcuts during the hackathon for the purpose of having a working proof-of-concept. As a result, the app is far too fragile for deployment. If we had to do it all over again, we would probably be wiser with how we store and transfer picture files and would likely consider using Firebase to simplify our frontend-backend communications. Ideally, we would like to expand our reach to a larger area and to provide the mobile Assassins experience to students at various colleges and high schools.

Built With

  • angular.js
  • css
  • flask
  • google-cloud
  • html
  • ionic
  • more-elegant-way-to-play-the-college-campus-favorite-game-assassin
  • python
  • snap-tag-minimizes-game-planning-overhead-and-adds-a-whole-new-dimension-to-the-game:-eliminating-players-via-phone.-gone-are-the-days-when-simply-tagging-your-target-suffices;-with-snap-tag
  • snap-tag-provides-easy-game-creation-and-implementation-in-a-fully-packaged-mobile-app-solution.-unlike-existing-manual-assassin-games
Share this project:

Updates