## Inspiration

Urban areas are increasingly polluted by traffic, and although people make an effort to ride share, cars still produce a large portion of urban carbon dioxide emissions. App-based directions offer an option between distance-optimized or time-optimized routes, but never present the possibility of an eco-friendly route. In addition, many people want to be more green, but don't know what factors most impact the carbon footprint of their vehicle.

## What it does

Our interface provides an information-based solution. By synthesizing millions of very precise data points from Ford's OpenXC platform, we can isolate factors like idling, tailgating, aggressive driving, and analyze their impacts on fuel efficiency. We strip the noise in raw data to find the important trends and present them in clear visualizations.

## How we built it

The bulk of data analysis is handled by python which processes the raw json data files. Then, we use pandas to streamline data into tables, which are easier to handle and filter. Given the extreme precision of the data points (records in fractions of a second), the data was initially very difficult to interpret. With the help of numpy, we were able to efficiently calculate MPG figures and overlay additional trends on several visuals.

## Challenges we ran into

Data points for specific vehicle attributes are taken very irregularly and do not match up at the same timestamps. The user's interaction with their car's usage - negative fuel usage figures when tanks were filled. Column names in the data were inconsistent across sets (e.g. Odometer vs Fine Odometer Since Restart). Plenty of files had missing data for certain attributes, resulting in a scattering of NaNs across the dataset. Given this, we had to be clever with data filtering and condense the data so important metrics could be compared.

## Accomplishments that we're proud of

Beautiful visuals indicating clear trends in data. Clean filtering of extremely noisy raw data. A fun frontend that's visually appealing to the user.

## What we learned

Big data is not as easy as running a few functions on data that's simply downloaded from a database. Much of analytics is the filtration and data handling, and trends may often be surprising.

## What's next for MPGreen

We could integrate Maps and Directions APIs to find more eco friendly routes in order to directly provide the user with ways to reduce their carbon footprint. As it stands, our system is a strong tool to view and share information, but has potential to actually impact the environment.
## Inspiration

We set out to build a product that solves two core pain points in our daily lives: 1) figuring out what to do for every meal 😋 and 2) maintaining personal relationships 👥.

As college students, we find ourselves on a daily basis asking the question, “What should I do for lunch today?” 🍔 — many times with a little less than an hour left before it’s time to eat. The decision process usually involves determining if one has the willpower to cook at home, and if not, figuring out where to eat out and if there is anyone to eat out with. For us, this usually just ends up being our roommates, and we find ourselves quite challenged by maintaining depth of relationships with people we want to because the context windows are too large to juggle.

Enter, BiteBuddy.

## What it does

We divide the problem we’re solving into two main scenarios.

1. **Spontaneous (Eat Now!)**: It’s 12PM and Jason realizes that he doesn’t have lunch plans. BiteBuddy will help him make some! 🍱
2. **Futuristic (Schedule Ahead!)**: It’s Friday night and Parth decides that he wants to plan out his entire next week (Forkable, anyone?). 🕒

**Eat Now** allows you to find friends that are near you and automatically suggests nearby restaurants that would be amenable to both of you based on dietary and financial considerations. Read more below to learn some of the cool API interactions and ML behind this :’). 🗺️

**Schedule Ahead** allows you to plan your week ahead and actually think about personal relationships. It analyzes closeness between friends, how long it’s been since you last hung out, looks at calendars, and similar to above automatically suggests time and restaurants. Read more below for how! 🧠

We also offer a variety of other features to support the core experience:

1. **Feed**. View a streaming feed of the places your friends have been going. Enhance the social aspect of the network.
2. **Friends** (no, we don’t offer friends). Manage your relationships in a centralized way and view LLM-generated insights regarding relationships and when might be the right time/how to rekindle them.

## How we built it

The entire stack we used for this project was Python, with the full stack web development being enabled by the **Reflex** Python package, and database being Firebase.

**Eat Now** is a feature that bases itself around geolocation, dietary preferences, financial preferences, calendar availability, and LLM recommendation systems. We take your location, go through your friends list and find the friends who are near you and don’t have immediate conflicts on their calendar, compute an intersection of possible restaurants via the Yelp API that would be within a certain radius of both of you, filter this intersection with dietary + financial preferences (vegetarian? vegan? cheap?), then pass all our user context into a LLAMA-13B-Chat 💬 to generate a final recommendation. This recommendation surfaces itself as a potential invite (in figures above) that the user can choose whether or not to send to another person. If they accept, a calendar invite is automatically generated.

**Schedule Ahead** is a feature that bases itself around graph machine learning, calendar availability, personal relationship status (how close are y’all? When is the last time you saw each other?), dietary/financial preferences, and more. By looking ahead into the future, we take the time to look through our social network graph with associated metadata and infer relationships via Spectral Clustering 📊. Based on how long it’s been since you last hung out and the strength of your relationship, it will surface who to meet with as a priority queue and look at both calendars to determine mutually available times and locations with the same LLM.

We use retrieval augmented generation (RAG) 📝 throughout our app to power personalized friend insights (to learn more about which friends you should catch up with, learn that Jason is a foodie, and what cuisines you and Parth like). This method is also a part of our recommendation algorithm.

## Challenges we ran into

1. **Dealing with APIs.** We utilized a number of APIs to provide a level of granularity and practicality to this project, rather than something that’s solely a mockup. Dealing with APIs though comes with its own issues. The Yelp API, for example, continuously rate limited us even though we cycled through keys from all of our developer accounts :’). The Google Calendar API required a lot of exploration with refresh tokens, necessary scopes, managing state with google auth, etc.
2. **New Technologies.** We challenged ourselves by exploring some new technologies as a part of our stack to complete this project. Graph ML for example was a technology we hadn’t worked with much before, and we quickly ran into the cold start problem with meaningless graphs and unintuitive relationships. Reflex was another new technology that we used to complete our frontend and backend entirely in Python. None of us had ever even pip installed this package before, so learning how to work with it and then turn it into something complex and useful was a fun challenge. 💡
3. **Latency.** Because our app queries several APIs, we had to make our code as performant as possible, utilize concurrency where possible, and add caching for frequently-queried endpoints. 🖥️

## Accomplishments that we're proud of

The amount of complexity that we were able to introduce into this project made it mimic real-life as close as possible, which is something we’re very proud of. We’re also proud of all the new technologies and Machine Learning methods we were able to use to develop a product that would be most beneficial to end users.

## What we learned

This project was an incredible learning experience for our team as we took on multiple technically complex challenges to reach our ending solution -- something we all thought that we had a potential to use ourselves.

## What's next for BiteBuddy

The cool thing about this project was that there were a hundred more features we wanted to include but didn’t remotely have the time to implement. Here are some of our favorites 🙂:

1. **Groups.** Social circles often revolve around groups. Enabling the formation of groups on the app would give us more metadata information regarding the relationships between people, lending itself to improved GNN algorithms and recommendations, and improve the stickiness of the product by introducing network effects.
2. **New Intros: Extending to the Mutuals.** We’ve built a wonderful graph of relationships that includes metadata not super common to a social network. Why not leverage this to generate introductions and form new relationships between people?
3. **More Integrations.** Why use DonutBot when you can have BiteBuddy?

## Built with

Python, Reflex, Firebase, Together AI, ❤️, and boba 🧋
## Inspiration

The planetary clock is ticking faster and faster, and the climate crisis is upon us. What we need is an energy insurrection—**a transition in the world's energy regime**. We see CS and tech as tools to engineer a sustainable future, and through our TreeHacks project, we aim to tackle a large sector contributor of the climate crisis: transportation.

## What it does

With the rise in popularity and market of electric vehicles, we hope that our tool can help consumers make more sustainable choices in their car purchasing experiences. Eco-drive recommends car models to users based off a calculated sustainability score, and users can filter through car models by the drivetrain, vehicle size, fuel type, transmission, and perhaps the most useful—price range.

## How we built it

We cleaned/analyzed our data using pandas, visualized it with plotly, and built a web page for user interaction with HTML. We coded everything through Python in [Google Colab.](https://colab.research.google.com/drive/1Xfiqi50oXDhCafMY32_1ADV_n4_zqOwH?usp=sharing)

## Challenges we ran into

TreeHacks is the first hackathon that we've participated in, so in the beginning we had trouble coming up with an idea and laying the foundation for our project. We also had some challenges learning new tools, including plotly and JupyterDash.

## Accomplishments that we're proud of

We’re proud that despite being new to hackathons, we managed to complete a meaningful project aimed at encouraging sustainability among car buyers. Going into the hackathon, we were unfamiliar with many of the APIs and technology we used in this project, but we picked up these skills along the way and we are proud of our final product.

## What we learned

We learned how to work as a team (splitting up tasks and utilizing each individual's strengths) and gained valuable technical experience with new tools and technologies.

## What's next for eco-drive

We hope that eco-drive can serve as a useful tool for consumers in the future who want to be more conscious of their actions and carbon footprint. For the future, we hope to add more features that allow the user to narrow their car search and also make our web page more accessible and easier to use.