Inspiration
We first thought up the idea of VolunTerra by focusing on the idea that helping the community helps you by reminding you of the impact you can make, creating a community of fellow volunteers to support you, and reconnecting you with nature. As students previously involved in our school's environmental club and fascinated by our environmental science classes and sustainability, we wanted to find a way to easily get local students involved in and passionate about helping with the issue of sustainability. Additionally, as members of GenZ, we understand that every individual can have a significant impact on reversing climate change. We decided to pair together the idea of saving our planet and saving ourselves through environmental and mental sustainability.
What it does
Volunterra allows organizations and individuals to announce their environmental volunteering opportunities by pinpointing on a dynamic map. They can then create announcements to provide updates and further display their opportunities. Users can then view all these opportunities on a map and can read announcements to stay up to date on the variety of activities taking place.
How we built it
We built VolunTerra using Flutter and Dart to integrate the Google Maps API and the Google Geocoding API to gain information regarding the maps and where to showcase the various volunteering locations on the dynamic map. Additionally, we used Firebase for Authentication as well as Cloud Firestore Databases to store information regarding users, locations, and announcements.
We first began our project by working on integrating Firebase Authentication and the Google Maps API as these were the framework and most important aspects of our product. From there, we began working on the navigation bar and the process of setting up the databases, beginning with adding locations. From there we then determined how to translate the addresses into latitude and longitude using the Google Geocoding API. From there, we were then able to easily show the locations from the database into the map. Finally, we were able to implement adding announcements and displaying them.
Challenges we ran into
We faced a lot of challenges during this time. To begin with, we were extremely overwhelmed going into this, as it is all of our first hackathons, making it difficult to understand where we should even begin. Then, we realized that our capabilities were all very different, with all of us being comfortable in different languages. This meant it took some of our members time to learn how to code in Dart. In terms of the code, we ran into issues with integrating the Google Geocoding API, particularly because we were facing issues with the keys. Additionally, we ran into issues with Firebase and instantiating it because there were lots of different dependencies and files that required modifications. Finally, we ran into a big issue in the end where we ran into a lot of merge conflicts, spending lots of crucial time fixing those.
Accomplishments that we're proud of
We are proud of creating a working product for our very first hackathon! Additionally, we did implement what we set out to do as our Minimum Viable Product. We are especially proud of the dynamic map that showcases the map with the locations as markers, as this was one of the most difficult aspects and challenges to overcome. Throughout this process, we also learned how to integrate APIs, enhanced our skills in Dart, and gained lots of experience with testing.
What we learned
We learned how to do project management on our own, use GitHub more extensively with rebasing, merging, resolving merge conflicts, committing and pushing, and fetching and pulling, and use Flutter/Dart. We learned how to work with the Google APIs for the first time and get keys, as well as how to use Firebase for databases, as well as authentication.
What's next for VolunTerra
In the future, VolunTerra is going to expand its features to including favoriting of both organizations and volunteering locations. We also hope to expand to messaging to allow organizations to more effectively reach out to individuals and to allow individuals to ask questions and creating an individual's profile.
Built With
- cloud-firestore
- dart
- firebase
- firebase-authentication
- flutter
- google-geocoding-api
- google-maps
- html
Log in or sign up for Devpost to join the conversation.