## Inspiration

Canadians produce more garbage per capita than any other country on earth, with the United States ranking third in the world. In fact, Canadians generate approximately 31 million tonnes of garbage a year. According to the Environmental Protection Agency, 75% of this waste is recyclable. Yet, only 30% of it is recycled. In order to increase this recycling rate and reduce our environmental impact, we were inspired to propose a solution through automating waste sorting.

## What it does

Our vision takes control away from the user, and lets the machine do the thinking when it comes to waste disposal!
By showing our app a type of waste through the webcam, we detect and classify the category of waste into either recyclable, compost, or landfill. From there, the appropriate compartment is opened to ensure that the right waste gets to the right place!

## How we built it

Using TensorFlow and object detection, a python program analyzes the webcam image input and classifies the objects shown. The TensorFlow data is then collected and pushed to our MongoDB Atlas database via Google Cloud. For this project, we used machine learning and used a single shot detector model to maintain a balance between accuracy and speed. For the hardware, an Arduino 101 and a step motor were responsible for manipulating the position of the lid and opening the appropriate compartment.

## Challenges we ran into

We had many issues with training our ML Models on Google Cloud, due to the meager resources provided by Google. Another issue we encountered was finding the right datasets, due to the novelty of our product. Due to these setbacks, we resorted to modifying a TensorFlow provided model.

## Accomplishments that I'm proud of

We managed to work through difficulties and learned a lot during the process! We learned to connect TensorFlow, Arduino, MongoDB, and Express.js to create a synergistic project.

## What's next for Trash Code

In the future, we aim to create a mobile app for improved accessibility and to create a fully customized trained ML model. We also hope to design a fully functional full-sized prototype with the Arduino.
## Inspiration

One day, one of our teammates was throwing out garbage in his apartment complex and the building manager made him aware that certain plastics he was recycling were soft plastics that can't be recycled.

According to a survey commissioned by Covanta, “2,000 Americans revealed that 62 percent of respondents worry that a lack of knowledge is causing them to recycle incorrectly (Waste360, 2019).” We then found that knowledge of long “Because the reward [and] the repercussions for recycling... aren’t necessarily immediate, it can be hard for people to make the association between their daily habits and those habits’ consequences (HuffingtonPost, 2016)”.

From this research, we found that lack of knowledge or awareness can be detrimental to not only to personal life, but also to meeting government societal, environmental, and sustainability goals.

## What it does

When an individual is unsure of how to dispose of an item, "Bin it" allows them to quickly scan the item and find out not only how to sort it (recycling, compost, etc.) but additional information regarding potential re-use and long-term impact.

## How I built it

After brainstorming before the event, we built it by splitting roles into backend, frontend, and UX design/research. We concepted and prioritized features as we went based on secondary research, experimenting with code, and interviewing a few hackers at the event about recycling habits.

We used Google Vision API for the object recognition / scanning process. We then used Vue and Flask for our development framework.

## Challenges I ran into

We ran into challenges with deployment of the application due to . Getting set up was a challenge that was slowly overcome by our backend developers getting the team set up and troubleshooting.

## Accomplishments that I'm proud of

We were able to work as a team towards a goal, learn, and have fun! We were also able work with multiple Google API's. We completed the core feature of our project.

## What I learned

Learning to work with people in different roles was interesting. Also designing and developing from a technical stand point such as designing for a mobile web UI, deploying an app with Flask, and working with Google API's.

## What's next for Bin it

We hope to review feedback and save this as a great hackathon project to potentially build on, and apply our learnings to future projects,
## Inspiration

Coding is more popular than ever, but the overwhelming majority of languages and frameworks are all designed for English users. We wanted to make a way for people to learn to code in their parent tongue, and so we made Flython.

## What it does

Flython provides a platform for anyone to learn to code from a programming language modeled after the language of their choice. We provide a Python-based IDE that allows users to convert and run code between a wide selection of linguistic contexts. For a truly immersive experience, users can also view and search documentation in their native language.

## How we built it

For multilingual translation, we first wrote a custom Python script for performing tokenization. We used the Google Cloud Translate API to translate built-in functions and keywords as well as the documentation and modules of several popular libraries. A similar workflow was also employed to enable the automatic translation of code comments.

Our front-end was built in React.js and uses a React component package for the editor. We custom-built a syntax highlighting feature for translated languages. The interactive shell was constructed using xterm.js.

## Challenges we ran into

We realized early on that creating an online coding environment, let alone one that can switch between multiple different languages, would pose many interesting technical challenges. Whereas we were fortunate to find several packages that made setting up an editor easier, linking our editor to an online shell presented a unique situation that we had to find several workarounds for.

With regards to the backend, we anticipated translating code to be a difficult task, and we indeed devoted a substantial amount of time to setting this up. Because many functions have complex naming schemes that require additional processing before input to a translation API, we also were pushed to explore context-based translation procedures powered by documentation.

## Accomplishments that we're proud of

We built an online IDE from scratch, and we paired it with a robust translator for translating programming languages. Being able to swap between arbitrary language pairs while coding was pretty cool, and we're proud of the design that we came up with.

## What we learned

We gained a decent amount of experience in building online coding environments. We also learned a good amount about compilation and tokenization, particularly in the task of recognizing different syntactical objects. We also taught ourselves how to traverse and retrieve documentation, as well as how to make use of translation APIs.

## What's next for Flython

We're looking forward to exploring many options in the future. Besides performing necessary quality checks on our translations, we have many other plans. First off, we plan to add standard editor features such as linting and multi-file support. The shared basis of Python as an executing language and our well-defined mappings would also facilitate collaboration between users of different linguistic backgrounds, which we believe will be an extremely interesting application. Given our experience in code translation from this project, we would also like to take a look at offering other languages as bases for localization.