Inspiration
We’ve all been there - standing in front of three different bins, unsure where our item belongs. This confusion leads to contamination in recycling streams, costing cities millions of dollars and sending recyclable or compostable materials to landfills unnecessarily. As high school students passionate about sustainability, we wanted to create a solution that makes waste sorting effortless and accurate for everyone. We also wanted to tackle food waste, as the USDA reports that anywhere from 30-40% of food in the US is thrown away. Bin-Go aims to solve both these problems.
What it does
Bin-Go is an online, automatic garbage sorter. With a combination of AI and keyword sorting, Bin-Go will tell users whether they should recycle, compost, or trash their items. Users can submit a photo of their item to be analyzed by a RoboFlow image-based machine learning model trained to classify objects, or they can describe their item in plain English. Additionally, when an item is classified as compostable food, Bin-Go enables users to share their location to identify food banks and donation centers through OpenStreetMap & Google Maps.
How we built it
For our front-end, we used the Node.js environment and the React.js library from Shadcn. We made three pages: an input, results, and a donate page. On the input page, we used two card components to let users input what trash they have. Our image recognition card prompts the user to upload files from their device, and our text card has users describe what they have. On the results page, we have three cards, one each for recycling, trash, and compost. However, if something is sorted into “compost,” then they will be asked if they want to donate it. Once they share their location, Bin-go uses Google Maps to find local food shelters that users can bring food to.
We made sure to use client-side processing (especially for location services) and secure API key management to prevent the need for a backend and enable user privacy.
Challenges we ran into
One big challenge was incorporating AI into this project for trash classification. For the text input, we didn’t have credits to use LLM models, and it would’ve cost us to invest in some. So, we decided to pivot and use manual text classification. While we know this isn’t as effective as using an LLM, manual classification is the most cost-effective solution for now
After identifying our temporarily free-to-use AI model (RoboFlow), our first test resulted in RoboFlow initially returning a “trash” classification for every item. We spent hours debugging while using console logs and testing different image formats before realizing we were reading the wrong API endpoint, essentially grabbing the incorrect output from RoboFlow to inform our user of the accurate item classification status.
Additionally, midway through the hackathon, VS Code (our code editor) began tracking 10,000+ file changes for every commit and when either of us changed git branches. We learned (the hard way) how to properly configure a .gitignore file to fix this.
Accomplishments that we're proud of
Our biggest accomplishment was successfully incorporating an image classification AI model into Bin-Go. It was our first time weaving an AI model into our code, and it’s a big win for us because that was our main goal: to successfully classify trash based on image recognition.
We also spent a significant amount of time on UI design and learning how to build a seamless, private, and smooth user experience.
What we learned
This hackathon was one of our first deep dives into AI integration, and we learned that working with machine learning models doesn’t have to be as intimidating as it seems. We also learned much about working with APIs, from sending properly formatted requests to reformatting responses. We learned crucial lessons about Git hygiene, and through branching, embraced iterative building. We began with mock data and placeholder functions, and gradually swapped in real APIs. We even began to learn how to leverage browser APIs like Geolocation and Google Maps to build features that traditionally require a full backend.
What's next for Bin-go
Our next task with Bin-Go is to incorporate LLMs into the text input. This way, instead of manual classification, which may not always work, Bin-Go will be more accurate and reliable in correct sorting. We want to use either the Anthropic Claude Sonnet 4.5 or the OpenAI GPT-5 nano model, as both are very strong with text classification.
Built With
- fastapi
- git
- github
- node.js
- openstreetmap
- python
- react.jsx
- roboflow
- typescript
Log in or sign up for Devpost to join the conversation.