Inspiration

Through personal conversations with friends, we find that it is a common issue for our peers to dispose of uneaten food due to their inability to finish it. Most people feel that some restaurants have unexpectedly large serving sizes which they are unable to finish.

After conducting some background research regarding food wastage, we realized that food wastage is a significant issue that requires our immediate attention.

What it does

Ever feel like you have ordered too much food but feel bad about throwing it away? Sometimes feel like you’re hungry but the portion size at a restaurant just wasn’t enough? The uncertainty of how much we can eat and how much food we actually get from ordering at the store can lead to some frustration. Oftentimes, it also leads to food wastage. But look no further – Portion.io would bring about a peace of mind for you when making food choices that’s both beneficial for the environment and your stomach!

Portion.io is able to recommend to you food stores that best fit your portion size so that you can make more informed food choices! After providing your basic physical information, Portion.io utilizes an algorithm to predict your portion size – and it constantly updates this suggestion based on your feedback after a meal. You would also be able to share your food experiences with your friends and even gather others to join you on food adventures in order to ensure the food portion served is being maximized. Now, you’ll be able to enjoy food, share with friends and reduce food waste – in the all-in-one Portion.io application.

How we built it

We built the frontend portion of the application first using React and Bootstrap in order to have the different pages in place. We then integrated with the backend MongoDB database using Express.js. Concurrently, we also added on extra features such as user authentication using Auth0.

Challenges we ran into

We faced difficulties in setting up the chat functions and integrating new APIs that we were unfamiliar with, such as Twilio. By referencing online documentations and consulting mentors at PennApps, we were able to pick up new skills in using these APIs and learned to debug any issues we faced along the way. Due to the lack of experience in backend development for some of us on the project, we spent more time setting up and debugging the backend portion of the project leading to less progress made overall that we intended. Nonetheless, we managed to build a prototype of each feature we wanted to include to provide a general idea on how the complete application could look like.

Accomplishments that we're proud of

Most of us have more experience with front-end development, mainly in React, so we were able to set up the front-end of the application fairly quickly. We were able to plan out our timeline and allocate more time to explore the backend development and other new APIs which we were less familiar with. This allowed us to be able to come up with a basic prototype of the project. We were also able to figure out the integration of a new API which we have less experience with.

What we learned

We learned how to break down a large scale project into modular features that can be built individually before combining together. This allowed us to work on multiple components simultaneously and get a basic prototype of each feature working. We tried out the integration of new APIs for the chat function without prior experience. However, we learned to figure out how the APIs work based on existing knowledge that we have regarding software development in the front-end area. This allowed us to build on our prior knowledge of web development to pick up new skills in other APIs.

What's next for Portion.io

We think it would be possible to integrate a feature that gives users insight on nutrition and health. This would promote the sustainability feature of our application.

Share this project:

Updates