## Inspiration

Why do people constantly change their diet?
Health and environment are the most common factors. There has been a 600% increase in people going vegan for the environment, and millions of people changing their eating habits to live a healthier lifestyle.
People want change. But why is it so hard?

## What it does

You already have grocery list.
Grocery-Me edits the list based on your personal profile.

1. Create a personal profile: a selection of up to 29 dietary preferences
2. Add your current grocery list
3. "Personalize" (generate an alternative list automatically)
4. Find relevant recipes

## How We built it

We used React Native for the app development platform, allowing for both IOS and Android customers.

## Challenges We ran into

## Accomplishments that We are proud of

## What We learned

React Native.

## What's next for GroceryMe

...
## Inspiration

We brainstormed and came up with six different from fall detection of the elderly to GPS-sticker tracking. Our final idea wasn't even one of these options. By mere chance, someone asked the question about scanning food. We all thought it would be a cool idea to be able to take a picture of a meal and get its nutrition facts. We all decided to take a risk and start the project that would become LiveFoods.

## How we built it

We used Firebase to process images and find potential objects contained in the image. We also used Azure Table Storage to store a database of different foods and their nutritional values. Once the Firebase API found a food object, we retrieved that object's information from the Azure Table and displayed on the screen. We used the Java language in Android Studio to create our project. There are two different options for the user: they can take a picture and get data on their food, or they can analyze food as the camera moves.

## Challenges we ran into

First we weren't able to retrieve Azure Table entities in Firebase. We spend hours trying to fix the problem, and someone from the Microsoft booth even came over to the Firebase booth to help us. In addition, there was a problem with the different threads in Android Studio. We are unable to call the Azure Table directly through the main thread, but the biggest issue was on how to improve the speed of the Cloud Server Image processing. Eventually, we realized that by asynchronizing the main thread with the thread that called the Cloud Server, we were able to improve the speed of the application.

## Accomplishments that we're proud of

We were able to successfully complete and run an Android application that exceeded our expectations. Given that we have zero experience in Android app development and Cloud-based data storage, we did not initially expect to create a product that actually worked.

## What we learned

We learned how to take abstract concepts that we have never touched before and create a product out of it.

## What's next for LiveFoods

* Direct import into diet tracker
* Ability to share food with other users
* On device Machine-learning to improve accuracy of image recognition
* Include other nutrition facts
## Inspiration

The first step of our development process was conducting user interviews with University students within our social circles. When asked of some recently developed pain points, 40% of respondents stated that grocery shopping has become increasingly stressful and difficult with the ongoing COVID-19 pandemic. The respondents also stated that some motivations included a loss of disposable time (due to an increase in workload from online learning), tight spending budgets, and fear of exposure to covid-19.

While developing our product strategy, we realized that a significant pain point in grocery shopping is the process of price-checking between different stores. This process would either require the user to visit each store (in-person and/or online) and check the inventory and manually price check. Consolidated platforms to help with grocery list generation and payment do not exist in the market today - as such, we decided to explore this idea.

**What does G.e.o.r.g.e stand for? : Grocery Examiner Organizer Registrator Generator (for) Everyone**

## What it does

The high-level workflow can be broken down into three major components:

1: Python (flask) and Firebase backend
2: React frontend
3: Stripe API integration

Our backend flask server is responsible for web scraping and generating semantic, usable JSON code for each product item, which is passed through to our React frontend.

Our React frontend acts as the hub for tangible user-product interactions. Users are given the option to search for grocery products, add them to a grocery list, generate the cheapest possible list, compare prices between stores, and make a direct payment for their groceries through the Stripe API.

## How we built it

We started our product development process with brainstorming various topics we would be interested in working on. Once we decided to proceed with our payment service application. We drew up designs as well as prototyped using Figma, then proceeded to implement the front end designs with React. Our backend uses Flask to handle Stripe API requests as well as web scraping. We also used Firebase to handle user authentication and storage of user data.

## Challenges we ran into

Once we had finished coming up with our problem scope, one of the first challenges we ran into was finding a reliable way to obtain grocery store information. There are no readily available APIs to access price data for grocery stores so we decided to do our own web scraping. This lead to complications with slower server response since some grocery stores have dynamically generated websites, causing some query results to be slower than desired. Due to the limited price availability of some grocery stores, we decided to pivot our focus towards e-commerce and online grocery vendors, which would allow us to flesh out our end-to-end workflow.

## Accomplishments that we're proud of

Some of the websites we had to scrape had lots of information to comb through and we are proud of how we could pick up new skills in Beautiful Soup and Selenium to automate that process! We are also proud of completing the ideation process with an application that included even more features than our original designs. Also, we were scrambling at the end to finish integrating the Stripe API, but it feels incredibly rewarding to be able to utilize real money with our app.

## What we learned

We picked up skills such as web scraping to automate the process of parsing through large data sets. Web scraping dynamically generated websites can also lead to slow server response times that are generally undesirable. It also became apparent to us that we should have set up virtual environments for flask applications so that team members do not have to reinstall every dependency. Last but not least, deciding to integrate a new API at 3am will make you want to pull out your hair, but at least we now know that it can be done :’)

## What's next for G.e.o.r.g.e.

Our next steps with G.e.o.r.g.e. would be to improve the overall user experience of the application by standardizing our UI components and UX workflows with Ecommerce industry standards. In the future, our goal is to work directly with more vendors to gain quicker access to price data, as well as creating more seamless payment solutions.