Plastics are goods primarily made of fossil-fuel based chemicals that are usually disposed of after one or two uses. They are used everywhere: for packaging and for food and beverage service ware, such as bottles, wrappers, straws, bags, spoons, forks, etc. This plastic ends up in our landfills, oceans, and our environment. Plastic is not biodegradable and breaks down into smaller pieces of plastic called microplastics. It contaminates our water and soil, and as a result, the toxic chemicals from the plastic can be transferred to animals and eventually enters the human food chain. Plastic is a huge environmental problem and should be used sparingly, if used at all. We should all do our part to reduce, reuse and recycle.
We want to tackle the problem of recycling since recycling can be such a pain a lot of the time. Sorting is confusing, and where do we even take our recycling as not all communities have recycling bins that get emptied out magically everyday. You love the environment, and w do too. You want to help save the environment, but don't really know where to start? Let me help you! Start by recycling your everyday items by sorting trash into recyclables and nonrecyclables, and take them to your nearest recycling center.
What it does
The app has 2 main functionalities: 1.Scanning a barcode and comparing the barcode to the zxing library to get the number from the barcode. Then comparing the barcode to a database on Firebase deployed on Heroku to see whether or not the item is recyclable, and if so what type it is. Then users can click done to upload all their scanned items to track their recycling journey. 2.Getting your current location and the closest recycling center to you. Then, shows your current address and the address of the nearest recycling center on screen, as well as displayed as 2 pins (red for yours and green for the recycling center) on a map widget on the screen. Users can then tap on the pin of the recycling center, which will load the address into your Google Maps App and show you the shortest route. The map also is a functioning map where you can search for places and click on the marker to get directions
How we built it
Google Maps API, Google Places, Google Directions, Google Geocoder API, zxing library, Firebase, Heroku using Android Studio, and Google OAuth. Usre accounts will be generated with Google OAuth for our Firebase Firestore database. When users hit scan, the zxing library is called to read the barcode. The read barcode data is then compared to our database, to then get the name, type and whether or not it is recyclable. If there is a match, the recyclerview will update it, as well as a little toast. When users click done, this session will be uplaoded to Firebase, so users can view it in the future in feed.
There is also a map made with Google Maps API. When we search for a place by place name and not address, the Places API will match that location name to an address so we can put down a pin. We also use Google Geocoding to translate these addresses into a latitude and longtitude so we can put down markers. Paths are generated by the Google Directions API. The polylines were retrieved using a HTTP get request, then parsing out the JSON to get the polyline. Then we used PolyUtil package to decode the polyline into a list of latitude and longtitudes, then draw it as a polyline on the Map.
Challenges we ran into
We had a lot of trouble finding a good library for the barcodes and free, and it took a while to find zxing. We couldn't find a god and free library that had barcode info and recycling info (type, recyclable or not). We was able to find https://www.barcodelookup.com/api but it is expensive. Using Firebase and google log in is always a challenge. Getting used to fragments, models, recyclerview, adapters, etc. Working with a big variety of APIs means that lots of documentation reading and confusion.
Accomplishments that we're proud of
We have built a functioning app, with most of the features that we had originally planned for. The UI is very clean, though could be better if we had more time.
What we learned
How to use RecyclerView, fragments, models, adapters, Google Maps API, Google Places, Google Directions, Google Geocoder API, zxing library, Firebase, Heroku using Android Studio, and Google OAuth.
What's next for Sharkko
A bigger and better database. Only a few entries were stored and it was made locally. We want to add more features to the app. We also want to expand the UI, and make it more user friendly.