Inspiration

On a goal to eat healthier and reduce caloric intake, one of our embers, Sardar, resorted to calorie counting apps, which were a great way to track calorie counts; this was possible through the UMass Dining app, which shares calorie information regarding everything on the menu. However, Sardar found it inconvenient that he had to automatically input all information regarding his meals from the UMass Dining app to his calorie counter app. This is where he had the idea to scrape the menu from the UMass Dining website, and automatically put it into a calorie counter. That's how MassPath was conceived.

What it does

MassPath allows you to log foods eaten from all 4 UMass Dining halls (Franklin, Berkshire, Hampshire, and Worcester). With the click of the + button next to each food item, you log your food you ate. It's that easy. As you log food, the app, using Machine Learning, will give you suggestions for food you can eat that fits in your calorie goal.

How we built it

One of our teammates, Sardar, has experience in making apps in React, and to some extent, even developing backends for apps. It was imperative that we use React.js in our project, as it would be easy to get started with, at least for Sardar.

The backend/ REST API was developed with Python via the Flask framework. The Flask app receives HTTP calls from the frontend to fetch things like the menu, as well as the Machine Learning suggestions. We chose to create a Python backend since all four of us have been learning Python in our CS Classes at UMass Amherst (CICS 110, and CICS 160).

Our Machine Learning model, albeit not fully built/ incorporated, is based on the Markov Decision Process (MDP), which is a form of Reinforcement Learning. Sardar, Rafan, and Hue learned this from their First Year Seminar class, which is centered around reinforcement learning.

Our app was designed using Figma. The Figma design was implemented via CSS.

Challenges we ran into

For the first time, we collaborated in a "big" (>2 people) group. Therefore, it was hard to keep everyone on track. It was Rafan's first time using Figma, Hue's first time working on React.js, and everyone's first time implementing AI algorithms into real apps.

Speaking of the Machine Learning algorithm, we originally envisioned a process where the algorithm would track your habits over time, learning over a large amount of time. However, we realized that such process would require storing user data into a database. And after trying hard to connect our app to a database, we realized that it might just be better for the ML model to track eating habits over the day, as the difficulty of connecting the Supabase SQL database (something we had never worked with) wouldn't have allowed us to finish the app in 36 hours.

And unsurprisingly, building a Machine Learning model from scratch is much harder than we expected, and even now, it doesn't work as intended.

Accomplishments that we're proud of

Despite the difficulty we faced implementing Markov Decision process, we're glad we at least ventured into the territory of toying around with AI models. This experience was also Rafan's first time using Figma, and Hue's first time working with React. We all, in some way, got out of our comfort zones and learned.

Even though we struggled to make a working AI model, this experience will definitely carry on to when we take AI courses in the future. The fact that we dipped our toes into it means that we at least won't be as intimidated by this in the future.

Our app rationalized many different tools, such as web scraping, AI, and basic system design, and we are happy that we got to use these tools to create one single app. And more so, we were able to make a final product in 36 hours. This type of project would typically take weeks to perfect, but we were able to make it in 36 hours.

What we learned

We learned a lot about Software Development, and how AI can be applied in the apps we make. For Hue, this project meant learning some React programming, for Rafan this meant learning how to apply his design skills in Figma UI Designing, and for Sardar, this meant using his Python skills in programming a backend in Flask. We even got some experience in building AI models.

What's next for MassPath

We hope to implement databases into MassPath where user preferences can be stored. This will allow us to create a more efficient Markov Decision Process that better recommends meals to users. Over the next few years, learning how to build AI models will definitely play a role in building working AI models that we can use in apps like MassPath

We hope that, if we formally deploy MassPath, that we can show the UMass Community our product, and that it genuinely helps people, even if it's one person. We want to make a lightweight, easy-to-use, and fast app.

Built With

Share this project:

Updates