Home screen on mobile.
Home screen on web.
View mode with markers placed by other users.
Description of a marker in view mode.
Edit mode with markers placed by other users.
Form for submitting a message and creating a marker on the map.
Mock-up of find location and add location pages.
View of the Cloud Firestore database, featuring locations added by other users, and the one from the demo.
Trick-or-treating is an activity enjoyed by children around the country. However, during the current pandemic, it is difficult for families to determine where they can safely trick-or-treat. Additionally, some children do not live in neighborhoods where they can easily trick-or-treat or have food allergies that make it difficult for them to enjoy the experience.
We wanted to give families the ability to find locations near them that are giving out candy safely so that children can still have the opportunity to experience the fun on Halloween night.
What it does
Using our app, families can see nearby locations that are giving out candy on a map. They can see locations that are offering peanut-free, gluten-free, etc. candy for children with allergies, as well as instructions for socially-distanced and safe ways to pick up candy. These locations and information are added by users, either those who are giving out the candy or people who passed by the location while trick-or-treating and want to share the location with others. The functionalities of the app are targeted towards helping families plan trick-or-treating routes so that their children can have the best experience.
How we built it
We used Flutter (mainly Dart code) to create our web/mobile application. We also used Google's geolocation APIs for the map UI and geocoding, and Firebase to store map marker data.
Challenges we ran into
We were both relatively inexperienced with Flutter as it was our second time working with it. As a result, we ran into a few challenges with formatting that we were able to overcome with research.
It was our first time using geolocation APIs in an app. Initially we wanted to use Radar.io for geolocation, but we had trouble using one of its main functions. After following the documentation, troubleshooting, and ensuring everything was imported, we decided it was best to take an alternative path. That's when we decided to use Google's geolocation APIs, which we were able to move further with, and with which our final product is built with. However, we were new to implementing APIs in apps. We ran into problems relating to not getting the user's current location and connectivity issues between our app and Firestore.
In the end, we were able to resolve the problems. We have both enjoyed the experience and learned quite a bit about app development and the implementation of APIs.
Accomplishments that we're proud of
We were able to successfully implement a map user interface in an app. It was our first time doing so. We were also excited to use and manipulate markers on a map, and learn how to store and retrieve their data from Cloud Firestore.
What we learned
We learned how to integrate geolocation APIs in Flutter and set up a Firebase/Firestore database for an app. Overall, we learned a lot about backend development and client-server communication.
What's next for Trick-or-Treat Near Me!
We plan on expanding the app beyond the scope of trick-or-treating such that people can use it to share or search for items outside of Halloween season. We also plan on adding more functionality to the app, like connecting different locations on the map to create a route, calculating the distance or time to walk to those locations, and adding tags to help the user search for locations more easily.