## Inspiration

We have all heard about the nutrition and health issues from those who surround us. Yes, adult obesity has plateaued since 2003, but it's at an extremely high rate. Two out of three U.S. adults are overweight or obese. If we look at diabetes, it's prevalent in 25.9% americans over 65. That's 11.8 million people! Those are the most common instances, let's not forget about people affected by high blood pressure, allergies, digestive or eating disorders—the list goes on. We've created a user friendly platform that utilizes Alexa to help users create healthy recipes tailored to their dietary restrictions. The voice interaction allows for a broad range of ages to learn how to use our platform. On top of that, we provide a hands free environment to ease multitasking and users are more inclined to follow the diet since it’s simple and quick to use.

## How we built it

The backend is built with Flask on Python, with the server containerized and deployed on AWS served over nginx and wsgi. We also built this with scale in mind as this should be able to scale to many millions of users, and by containerizing the server with docker and hosting it on AWS, scaling it horizontally is as easy as scaling it vertically, with a few clicks on the AWS dev console.
The front end is powered by bootstrap and Jinja (JavaScript Framework) that interfaces with a mySQL database on AWS through Flask’s object relational mapping.
All in all, Ramsay is a product built on sweat, pressure, lack of sleep and <3

## Challenges we ran into

The deployment pipeline for alexa is extremely cumbersome due to the fact that alexa has a separate dev console and debugging has to be done on the page. The way lambda handles code change is also extremely inefficient. It has taken a big toll on the development cycle and caused a lot of frustrating debugging times..

It was also very time consuming for us to manually scrape all the recipe and ingredients data from the web, because there no open source recipe API that satisfies our needs. Many of them are either costly or had rate limit restrictions on the endpoints for the free tier, which we are not content with because we wanted to provide a wide range of recipe selection for the user.

Scraping different sites gave us a lot of dirty data that required a lot of work to make it usable. We ended up using NLTK to employ noun and entity extraction to get meaningful data from a sea of garbage.

## Accomplishments that we're proud of

We managed to build out a Alexa/Lambda deployment pipeline that utilizes AWS S3 buckets and sshfs. The local source files are mounted on a remote S3 bucket that syncs with the Lambda server, enabling the developer to skip over the hassle of manually uploading the files to the lambda console everytime there is a change in the codebase.

We also built up a very comprehensive recipe database with over 10000 recipes and 3000 ingredients that allows the user to have tons of selection.

This is also the first Alexa app that we made that has a well thought out user experience and it works surprisingly well. For once Alexa is not super confused every time a user ask a question.

## What we learned:

We learnt how to web scrape implementing NLTK and BeautifulSoup python libraries. This was essential to create of database containing information about ingredients and recipe steps as well. We also became more proficient in using git and SQL. We are now git sergeants and SQL soldiers.

## What's next for Ramsay:

Make up for the sleep that we missed out on over the weekend :')
## Inspiration

The idea for Refrigerator Ramsay came from a common problem we all face: food waste. So many times, we forget about ingredients in the fridge, or we don't know how to use them, and they go bad. We wanted to create something that could help us not only use those ingredients but also inspire us to try new recipes and reduce food waste in the process.

## What it does

Refrigerator Ramsay is an AI-powered kitchen assistant that helps users make the most of their groceries. You can take a picture of your fridge or pantry, and the AI will identify the ingredients. Then, it suggests recipes based on what you have. It also has an interactive voice feature, so you can ask for cooking tips or get help with recipes in real-time.

## How we built it

We used **Google Gemini AI** for image recognition to identify ingredients from photos. and then, to come up with creative meal ideas. We also added **Hume EVI**, which is an emotionally intelligent voice AI, to make the experience more interactive. This lets users chat with the AI to get tips, learn new cooking techniques, or personalize recipes.

## Challenges we ran into

One challenge we faced was working with **Hume EVI** for the first time. It was really fun to explore, but there was definitely a learning curve. We had to figure out how to make the voice assistant not just smart but also engaging, making sure it could deliver cooking tips naturally and understand what users were asking. It took some trial and error to get the right balance between information and interaction.

Another challenge was training the **Google Gemini AI** to be as accurate as possible when recognizing ingredients. It wasn't easy to ensure the AI could reliably detect different foods, especially when items were stacked or grouped together in photos. We had to spend extra time fine-tuning the model so that it could handle a variety of lighting conditions and product packaging.

## Accomplishments that we're proud of

We're proud of creating a solution that not only helps reduce food waste but also makes cooking more fun. The AI's ability to suggest creative recipes from random ingredients is really exciting. We're also proud of how user-friendly (and funny) the voice assistant turned out to be, making it feel like you're cooking with a friend.

## What we learned

We learned a lot about how AI can be used to solve everyday problems, like reducing food waste. Working with **Hume EVI** taught us about building conversational AI, which was new for us. It was really fun, but there was definitely a challenge in figuring out how to make the voice interaction feel natural and helpful at the same time.

We also learned about the importance of **training AI models**, especially with the **Gemini AI**. Getting the image recognition to accurately identify different ingredients required us to experiment a lot with the data and train the model to work in a variety of environments. This taught us that accuracy is key when it comes to creating a seamless user experience.

## What's next for Refrigerator Ramsay

Next, we want to improve the AI’s ability to recognize even more ingredients and maybe even offer nutritional advice. We’re also thinking about adding features where the AI can help you plan meals for the whole week based on what you have. Eventually, we’d love to partner with grocery stores to suggest recipes based on store deals, helping users save money too!
## Inspiration

Due to COVID-19, schools and workplaces have shifted to an online setting. With the line between work and rest blurring, people have been taking on more work, taking shorter breaks and working even when sick. Such circumstances have led to exhaustion and Zoom-fatigue that impact people's ability to stay awake during meetings and lectures. We wanted to help everyone impacted by this unforeseen event and increase the productivity level with our web application.

## What it does

Yawnly is a web application that encourages students and workers to stay awake by sounding an alarm whenever it detects the user’s eyes to be closed. The user can set how long the eyes can remain closed before the alarm goes off. Also, the user can set the alarm with a personalized sound according to their needs. While your online meeting is running, just turn off your camera and microphone and keep Yawnly open in another tab to wake you up if you happen to doze off!

## How we built it

To build Yawnly, we used HTML CSS and Javascript for our front-end. For the back-end, we wrote our code in Python and used the Flask library to integrate the backend with the frontend of our web application. For the sleep detector, we used OpenCV to capture and stream the video and facial landmarks in the dlib C++ library, a pre-trained machine learning face detector, to detect the eyes from frames of the video stream. The facial landmarks provide coordinates for points at the top and bottom of both eyes. We use a custom algorithm adding the Euclidean distance between the top and bottom coordinates of each eye that classifies an eye as closed if the average output of both eyes is below a predetermined threshold.

## Challenges we ran into

The biggest challenge we ran into was connecting the front-end to the back-end. As none of us had much experience with the front-end work, we struggled a lot to send user-end changes to make the necessary responses in the back-end.

## Accomplishments that we're proud of

* Our algorithm for detecting whether the user’s eyes are closed, ended up being quite sensitive for most webcam setups, especially considering that we were using a pre-trained model
* All of the features we envisioned for the app were fulfilled: being able to detect closed eyes for most camera angles, incorporating the alarm and customization features to allow users to upload their own sound files and the amount of time that eyes can be closed before the alarm sounds, being able to track time spent with eyes closed to good accuracy, and having a responsive UI
* Creating a working product from our ideas!

## What we learned

We learned to make a full-working website using Flask. During the process, we especially learned how to work in a team. Communicating between the team members became more efficient and effective as time went on throughout this short Hackathon period. We learned how to divide up our tasks productively and to help each other to accomplish each of these tasks.

## What's next for yawnly

Broadening our target market to people that have careers where the risk of falling asleep on the job is likely, like truck drivers and people with sleep disorders such as narcolepsy. We would do so by introducing a mobile web version of Yawnly, as well as creating an offline version would also be great as it would make it more accessible to people.