## Inspiration

The issue of waste management is something that many people view as trivial yet is one of the fundamental factors that will decide the liveability of the world. Yet even in Canada, a developed country, only 9% of plastics are recycled, meaning that the equivalent of 24 CN towers of recyclable plastic enters our landfills each year. In developing nations, this is an even more serious issue that can have profound impacts on quality of life.

## What it does

Detritus AI is a smart garbage can that is able to detect and categorize waste into the respective containers and transmit essential information that allows for the optimization of garbage routes. DetritusAI tracks the quantity of waste that is in each container and communicates with the client-side applications used by garbage truck drivers to determine how full each container is. Based on the capacity of each garbage can and its location, DetritusAI calculates the optimal route for garbage trucks to collect garbage while minimizing distance and time, even taking into account traffic.

## How we built it

When users place an object near the garbage can, a time of flight sensor detects the object and triggers an image classification algorithm that identifies the category of the waste. A message is sent via Solace, which instructs the garbage can to open the appropriate lid.

Within the garbage cans, the time of flight sensors continuously determines the capacity of the bin and communicates that information via Solace to the client-side application.

Using the Google Directions API, the optimal route for garbage collection is determined by factoring in traffic, distance, and the capacity of each bin. An optimal route is displayed on the dashboard, along with turn by turn directions.

## Challenges I ran into

An issue we had was that we wanted to display a visual representation of the optimal route; however, we did not have enough time to figure out how to visually display the directions of the optimal route that we calculated.

## Accomplishments that I'm proud of

We're proud of how we were able to integrate the hardware, classification algorithm, and the dashboard into a seamless solution for waste management -- especially given the tight time constraint.

## What I learned

Communication between different components often takes more time than one might imagine. Thankfully, Solace is a very powerful tool that has resolved this issue.

## What's next for DetritusAI

1. Visually display the optimized route on the dashboard for the user
2. Add a compost category because the environment is cool.
3. Incorporate a social aspect that encourages people to recycle such as incentives or leaderboards
## Inspiration

As students, we have found that there are very few high-quality resources on investing for those who are interested but don't have enough resources. Furthermore, we have found that investing and saving money can be a stressful experience. We hope to change this for those who want to save better with the help of our app, hopefully making it fun in the process!

## What it does

Our app first asks a new client a brief questionnaire about themselves. Then, using their banking history, it generates 3 "demons", aka bad spending habits, to kill. Then, after the client chooses a habit to work on, it brings them to a dashboard where they can monitor their weekly progress on a task. Once the week is over, the app declares whether the client successfully beat the mission - if they did, they get rewarded with points which they can exchange for RBC Loyalty points!

## How we built it

We built the frontend using React + Tailwind, using Routes to display our different pages. We used Cohere for our AI services, both for generating personalized weekly goals and creating a more in-depth report. We used Firebase for authentication + cloud database to keep track of users. For our data of users and transactions, as well as making/managing loyalty points, we used the RBC API.

## Challenges we ran into

Piecing the APIs together was probably our most difficult challenge. Besides learning the different APIs in general, integrating the different technologies got quite tricky when we are trying to do multiple things at the same time!

Besides API integration, definitely working without any sleep though was the hardest part!

## Accomplishments that we're proud of

Definitely our biggest accomplishment was working so well together as a team. Despite only meeting each other the day before, we got along extremely well and were able to come up with some great ideas and execute under a lot of pressure (and sleep deprivation!) The biggest reward from this hackathon are the new friends we've found in each other :)

## What we learned

I think each of us learned very different things: this was Homey and Alex's first hackathon, where they learned how to work under a small time constraint (and did extremely well!). Paige learned tons about React, frontend development, and working in a team. Vassily learned lots about his own strengths and weakness (surprisingly reliable at git, apparently, although he might have too much of a sweet tooth).

## What's next for Savvy Saver

Demos! After that, we'll just have to see :)
## Inspiration

COVID-19 hit social gatherings like a truck, ever since it has always been a bit difficult to open up to new experiences and risk. However, we believe that there are so many hidden passions and talents that people are not exploring and we hope to create this platform to allow people to explore local events that they are familiar with, and new events that they can grow into and experience the local community around them.

## What it does

RIPPLE is a website which allows users to input a phrase of their choice from which it will recommend 5 events. Our team’s goal is to be the ripples in a user’s sea of interests - of the 5 events recommended, we recommend 3 closely related events and 2 events in an adjacent category. This allows a user to comfortably step out of their comfort zone and explore a new, but similar, interest.

## How we built it

Our main building process consists of four parts: Designing and implementing the UI, training the CO:HERE API to tag phrases with certain event tags, creating the API of the relevant/exploratory event generation, and connecting it all. The UI Design was largely created on Figma, with an initial sketch on Clip Studio Paint to establish the colour scheme and general idea. The implementation allowed for the design to incorporate a workable search bar and hoverable event cards. The search bar is used to access the webpage with the generated events, while the event cards contain the details of each event. The training of the CO:HERE API consisted of feeding it over 250 sentences, which we assigned to a designated event subcategory. This allowed for our CO:HERE API to return the closest event subcategories for any given prompt. Our event API was implemented shortly after - after adding over 200 event examples, our event API would take in a given event subcategory, and return three different events from within the subcategory and two more from within the category but outside of the subcategory. Connecting it all together allowed for the website to take in information from the search bar, put it through the CO:HERE API, then through the event API. The returned events would then be displayed on the second page of the website on event cards. The API was made RESTful with flask and utilized by React.js in the frontend to provide for the user interface.

## Challenges we ran into

Our biggest challenge was implementing the API into our UI. While we managed to complete the API and allowed for it to run on a demo UI, the search bar in the UI we designed and implemented was not able to communicate with the API. Unfortunately, because of that, the website currently is unable to run with the initially designed UI. This was the team’s first time working with Figma converted to CSS Files, and unfortunately this resulted in mistakes - ranging from the formatting issue of fixed rather than relative location to a search bar which can only browse the web but not connect it to the API. Thankfully, when we realized this, we were able to come up with a temporary solution - which was to direct the search bar to the demo UI, which was on a separate webpage. As it was some of our first times working with React and Figma, we are proud to come out with this much on our first attempt and we're excited for the future!

## Accomplishments that we're proud of

Our API is fully functional and we are able to associate inputted phrases, no matter how obscure, with relevant event subtags (for example telling it “I like watching A Silent Voice”, which is a rather niche movie, still returns the event subtag “Movie”). We are very proud of this feat because, while it was our first time working with CO:HERE, we were able to implement our idea well. We are also very proud of the user-friendly interface of our UI. While we had some struggles initially, with this being the first time any member of the team had used Figma and the corresponding CSS code, we were ultimately able to implement our API in a modified version of our UI. Just being able to complete such a project is awe-inspiring and we'd like to extend a huge thank you to the UofTHacks team!

## What we learned

With this being the first Hackathon for one of our team members, there was a lot learned throughout this process. This includes but is not limited to designing a prototype using Figma, exporting said prototype to CSS/React, working with the prototype in a non-static manner, training CO:HERE API, stylized search bars, re-routing to different pages, and using external dependencies.

## What's next for Ripple

The next steps for Ripple would be to ensure that the search bar is functional and directed to another part of the initial website instead of another website entirely. The event cards presented in our second page UI should then be refined to be more user friendly, and each card should link with existing eventbrite events or event websites. Ripple is also looking into creating a login function which will allow users to create their own events and allow for the website to give randomized events which expand on identified interests. This will allow users to receive more catered events, giving them more new events when they use the website instead of receiving 5 events based on one input. Previously visited events can be then stored in the system to better understand where the user is currently and where the user wants to be. Finally, the event cards in the front page should be under 4 permanent subcategories: Mental Health, Extend Your Help, Equal Opportunity, and Environment. This will help us better establish our goal - to become a ripple that starts a larger wave. Our idea is that, by suggesting these events, we can someday create a ripple which allows our user to change themselves and the world for the better.