Inspiration
As people who live/used to live deep in The Bronx, NY, we're very used to seeing trash and the like on the streets of NYC. After reading OneEthos' challenge, we were inspired to find a way to tackle this issue, leading us to make Bin-It.
What it does
Bin-It is a two part app: one side mobile app, one side web dashboard, that allows for the people of a city and it's government to collaborate to clean up trash! Citizens can take pictures of overflowing trash that they want to be cleaned up in the app and make a report. That report is then visible to the city administration on the dashboard, and with multiple reports + map data for the city, Bin-It can calculate the most trash heavy points in a city, AND where new trash beans need to be installed!
How we built it
We used a wide tech stack to build Bin-It, for the mobile app we used React Native and Expo. For the dashboard Next.js and React and Typescript were used, and that covers both front ends. For the backend, our pipeline combines Python scripts, Neon, Hugging Face, Databricks, Docker, Ngrok, FastAPI, and Vercel. Neon holds photos and reports taken from the app, trash bin info, and other things.
Once a user takes a photo, it is sent to our Hugging Face classifier which is trained on trash data and classifies it using OpenAI's CLIP model, and gives it a severity ranking based on how bad the trash pileup is. Ngrok is used to create a tunnel between the docker container that the classifier is stored in and our Python scripts. Databricks then takes in geolocation, bin, place, and 311 complaint data and processes it by training it with NYC's and Chicago's highly accurate and extensive 311 data, which is then used to predict high trash points in any other applicable city, as long as the geolocation data is there. Using that data, the top 20 best potential bin locations are ranked for that city and stored. That info is then fed back into the Neon database, which Vercel pulls from to create the Next.js app, completing the cycle.
Challenges we ran into
We tried to set up Hugging Face Spaces in order to host the classifier, we believed there was a free tier for that but since we didn't have a Pro account we couldn't. We had to go around that by setting up a Docker container to host the classifier and use Ngrok to help it communicate. Another challenge was just setting up the backend as a whole. For us, this was the largest amount of frameworks/libraries we've used in one project, so getting them all to communicate was quite the challenge.
Accomplishments that we're proud of
We're proud of the fact that we learned how to use so many different frameworks together, especially as it was our first time working with most of them.
What we learned
We learned how to make an multi-platform app that communicates together with many different moving parts.
What's next for Bin-It
Spreading the data to include more cities, making sure that each city is cleaner than the last.
Built With
- clip
- databricks
- docker
- expo.io
- fastapi
- hugging-face
- neon
- next.js
- ngrok
- python
- react
- react-native
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.