There are apps that kids can download to track their location while trick-or-treating...but these apps don't have any fun features for the kids! We wanted to create an app that kids would want to download, while also helping them stay safe. What better motivation than candy??
What it does
Kids download the app and have access to an interactive map (implemented via the Google's Maps SDK for Android), where they can 1) view a map of candy available in their area (as logged by other kids) and 2) add pins with notes about what candy is available at each house they visit. The app calls our back-end API to store the pin location and comments in a Google Cloud Datastore instance and the info is saved for other users.
Parents access the app at www.candyhackapp.com (or https://demonhacks-treat-tracker.appspot.com) to track their kids. They have real-time access to their child's location, as well as a list of treats logged so far.
How we built it
Android app: we used Android Studio to create an app that makes HTTP requests to query our REST API and display information using Google Maps SDK for Android.
API: Using the Google Cloud Platform, we made a Flask application that connects to a Google Datastore. The API accepts GET and POST requests to retrieve and store info in the Datastore.
Challenges we ran into
Initial setup of the back end was tricky, as there were numerous tutorials available and we weren't sure which one was the most applicable to our project (...or which was the most up-to-date/complete). We ended up doing a few different tutorials.
We also encountered what we thought was a setup/installation issue that ended up being a string that we failed to convert to an int. (facepalm!!!)
Accomplishments that we're proud of
Our web and mobile apps are both fully functional! We have a working API that both the mobile app and web app utilize (and it had documentation, too). It was our first time using Google Cloud Platform and we are very pleased with the results!
What we learned
How to create a REST API
How to build an Android app
How to utilize Google Maps APIs (for Android and also for web apps)
What's next for CandyHack
Kids should be able to search for their favorite type of candy and see locations where it can be found! We should also expand the app to allow parents to view locations of multiple children at the same time.