# Welcome to TrashCam 🚮🌍♻️

## Where the Confusion of Trash Sorting Disappears for Good

### The Problem 🌎

* ❓ Millions of people struggle with knowing how to properly dispose of their trash. Should it go in compost, recycling, or garbage?
* 🗑️ Misplaced waste is a major contributor to environmental pollution and the growing landfill crisis.
* 🌐 Local recycling rules are confusing and inconsistent, making proper waste management a challenge for many.

### Our Solution 🌟

TrashCam simplifies waste sorting through real-time object recognition, turning trash disposal into a fun, interactive experience.

* 🗑️ Instant Sorting: With TrashCam, you never have to guess. Just scan your item, and our app will tell you where it belongs—compost, recycling, or garbage.
* 🌱 Gamified Impact: TrashCam turns eco-friendly habits into a game, encouraging users to reduce their waste through challenges and a leaderboard.
* 🌍 Eco-Friendly: By helping users properly sort their trash, TrashCam reduces contamination in recycling and compost streams, helping protect the environment.

### Experience It All 🎮

* 📸 Snap and Sort: Take a picture of your trash and TrashCam will instantly categorize it using advanced object recognition.
* 🧠 AI-Powered Classification: After detecting objects with Cloud Vision and COCO-SSD, we pass them to Gemini, which accurately classifies the items, ensuring they’re sorted into the correct waste category.
* 🏆 Challenge Friends: Compete on leaderboards to see who can make the biggest positive impact on the environment.
* ♻️ Learn as You Play: Discover more about what can be recycled, composted, or thrown away with each interaction.

### Tech Stack 🛠️

* ⚛️ Next.js & TypeScript: Powering our high-performance web application for smooth, efficient user experiences.
* 🛢️ PostgreSQL & Prisma: Storing and managing user data securely, ensuring fast and reliable access to information.
* 🌐 Cloud Vision API & COCO-SSD: Using state-of-the-art object recognition to accurately identify and classify waste in real time.
* 🤖 Gemini AI: Ensuring accurate classification of waste objects to guide users in proper disposal practices.

### Join the Movement 🌿

TrashCam isn’t just about proper waste management—it’s a movement toward a cleaner, greener future.

* 🌍 Make a Difference: Every time you sort your trash correctly, you help reduce landfill waste and protect the planet.
* 🎯 Engage and Compete: By playing TrashCam, you're not just making eco-friendly choices—you're inspiring others to do the same.
* 🏆 Be a Waste Warrior: Track your progress, climb the leaderboard, and become a leader in sustainable living.
# Project Story

## About the Project

Our project, uCollab, was born out of the need to enhance online learning by fostering collaboration among students. As a team of four computer science and software engineering students in 2nd and 3rd year, we were inspired by the push to integrate social elements into online education. We aimed to replicate the dynamic environment of a study hall, where students can study together, chat, share insights, and ask questions, much like Discord and Reddit.

## Problem statement

Discovering the existence of a class Discord group chat well into the semester, especially after midterms or, worse, after finals, poses a significant challenge for students. This lack of awareness may lead to missed opportunities for collaboration, resource sharing, and community building within the course. Our aim for uCollab is to automatically enrol students to the classes they registered to, all by utilizing the Brightspace API.

## Inspiration and Learning

Throughout the development process, we learned valuable lessons about the importance of communication, teamwork, and problem-solving. We also delved into event-driven architecture (EDA) and explored how to leverage Solace Event Broker for seamless application integration.

## Building the Project

We started by brainstorming ideas and sketching out the user interface. From there, we divided tasks among team members based on our strengths and interests. Using React for the frontend and Node.js for the backend, we built the core features of uCollab, including real-time messaging, audio chat, and content sharing. Integrating Solace Event Broker was a significant milestone, requiring careful planning and coordination.

## Challenges Faced

One of the main challenges we encountered was ensuring smooth communication between different components of the application while maintaining scalability and reliability. We also faced technical hurdles during the integration of Solace Event Broker, but with perseverance and collaboration, we overcame them.

Overall, uCollab has been an exciting journey for our team, pushing us to think creatively and innovate in the realm of online education. We are proud of what we have accomplished and look forward to presenting our project at uOttaHack and contributing to the future of learning.
## Inspiration

This project was inspired by the countless hours that went into trying to decide on a place to eat.

## What it does

Using the Yelp Fusion API, our app provides a restaurant suggestion based on the top 20 restaurants nearby. The user should rate any restaurants on the list that they have been to, and information on the location and ratings is used to suggest the top restaurant that the user should go to.

## How we built it

The app was built using Expo.io. Starting on the homepage, the user is prompted for information on their ratings of restaurants that they have been to in the list of restaurants nearby. The data is then sent to a Compute Machine on the Google Cloud Platform, where a machine learning model is created using the k-nearest neighbors algorithm of the scikit-learn machine learning package. Once a model has been trained, information on the user's current location is used to make a prediction, which is the suggested restaurant that the user should go to.

## Challenges we ran into

We ran into many challenges while working on Magic Ate Ball. Since we were both inexperienced with using Expo.io and GCP, a lot of the time was spent trying to make the app function as we wanted it to as well as setting up the server.

## Accomplishments that we're proud of

We are very proud that we were able to create a functional app that has many of the features we had originally planned. As we were unable to create a functional app in QHacks 2018, this was a very big improvement. Although we ran into many issues along the way, we managed to overcome them one step at a time. We were each able to do our parts, and pulled together a functioning project.

## What we learned

We were both able to learn a lot while doing our respective parts of this project. Over this experience, we gained a lot of knowledge on the ins and outs of a machine learning app, how it works and how everything ties together.

## What's next for Magic Ate Ball

There were still many features of Magic Ate Ball that we did not have time to implement, such as taking into account user preferences on types of food, whether they favor proximity, ratings, or price, and being able to suggest restaurants based on similar foods to the user's preferences.