The home screen of the application with a Google Maps API and a garbage button for forming a complaint
The submission form where the user can take a photograph and add a description and rating of the messiness of the situation
A sample photograph using the Android Device's camera
Once the photograph is taken, a icon of the image is displayed on the submission form
A unique marker at the location of the submission is placed on the map
When marker is clicked, shows linked image
Coming to UMBC, we heard that there was a garbage problem in Baltimore City. While Baltimore City 311 Services allow for citizens to report problems and make requests, we felt that the formality of the service and lack of quick, on-spot requests would limit the service's effectiveness. And so, the idea for Spot-It Garbage was born: a simple request and recruitment for removal app that can be used in seconds.
What it does
Spot-It Garbage is an Android app which allows users to pin a location with litter/waste on a Google Maps display and submit details about the site like pictures, its challenge for removal, and a link to a group chat to organize a cleanup. Other users can then view these pins and click on them to see details and join the cleanup via the group chat. The app is based off the principle of crowd-sourcing and social media, allowing users to easily define areas in need of waste management and to recruit help from volunteers.
How we built it
Spot-It Garbage is a native Android app written in Java and XML, with a Realtime Database and Cloud Storage using Firebase.
Individual users are able to pin garbage locations and through using Firebase's Realtime Database, these markers are publicly visible.
We relied on the Google Maps API to provide the front end experience (displaying the map, finding location, placing markers, etc.)
Challenges we ran into
Being our first hackathon and first attempt at Android development, there was no feature/implementation that was without challenge. One notable challenge, however, involved pushing garbage instance data (location, rating of challenge, optional description, and picture) into Realtime Database and then pulling all instances and creating markers at each location. To push the garbage data, we originally attempted to push individual fields, but realized quickly that the data would be unusable without being under a single entity/object, and so we created a new object to contain the fields. This change enabled the metadata to be stored under a single object that could then be pulled to create markers at the specified locations. Another major challenge was incorporating the Firebase storage. We were trying to upload the photo that had been just taken, but we couldn't figure out the implementation using an Intent. We ended up uploading the bitmap after properly connecting the storage folder with the application.
Accomplishments that we're proud of
We came here without having Android Studio installed and only a vague idea of our trash idea yet came out with a functioning, bare-bones app. This was our first ever attempt at a hackathon and Android development. From getting a Google Maps API key to function properly to being able to take a picture of trash and pinning it to the map, each step of the way was completely new to us. And so, having any of the features we implemented is one that we are proud of, and even more so Spot-It Garbage as a whole.
What we learned
We learned how to use Android Studio (making buttons, text fields, and functionality to the screen). We learned how to use Google Maps API. We learned how to use Firebase to manage/store the data from our app. We learned how to use GitHub to push and pull commits.
What's next for Spot It Garbage
Our ultimate goal is to foster clean communities globally through the action of its constituents. To do so, we want to add a points-based incentive system for volunteers and organizers to participate in cleanups in which volunteers/organizers can earn rewards by collecting points from attending and organizing cleanups. We also plan on implementing a system that will notify the city’s services if a high influx of complaints are posted in a certain area or if the litter contains bulk waste items. add features that will connect users with people willing to volunteer to help clean up.