Link to Code

https://replit.com/@achchala/xpire

Inspiration

According to the National Zero Waste Council's research on household food waste in Canada, almost 2.2 million tonnes of edible food is wasted each year, costing Canadians in excess of $17 billion. Beyond the economic impact, food wastage is detrimental to the environment and is appalling considering the population of the world facing food insecurity. We wanted to build a tool to help individuals keep track of, and stay aware of their grocery purchases.

What it does

xpire allows users to input their perishable grocery shopping purchases along with their expiry dates. These items are then displayed in a list, and the user can use the application to check which products have closely approaching expiry dates.

How we built it

We developed a full-stack web application using Python Flask, and HTML/CSS. For the back-end, we implemented the Flask framework to display certain items and their corresponding expiry dates to the page, filter and display certain items, and remove items chosen by the user. For the front-end, we applied HTML and CSS to format and style the web application elements.

Challenges we ran into

One of the challenges we ran into was choosing the tech stack, our group members had varying levels of experience with different languages. Hence, we decided to use HTML & CSS for the frontend as we all had prior experience with it and were able to learn how to use the Flask framework within Python together.

During our ideation and brainstorming process, we also had to consider the feasibility of the web app we wanted to build, (e.g. specific features) as we only had the 24 hour window to execute the implementation of our product.

We ran into some problems using Flask and integrating the backend with the frontend (e.g. actions with button clicks, hyperlinking to other project files, etc.). However, we were able to get help from the TOHacks mentors with these technical problems, which we found extremely helpful.

Accomplishments that we're proud of

We're very proud for having finished a working web application within the timeframe, especially as all of us hadn't previously used Flask or Python for web development. Furthermore, we're happy to have completed all of the functionality that we were aiming to implement.

What we learned

As our entire group was unable to work in-person, we collaborated in a hybrid-setting. We learned how to adapt to our individual roles on the team despite being in various locations. Additionally, although being unfamiliar with the Flask framework in Python and HTTP Request Methods, we used resources, tutorials and help from mentors to implement it in our full-stack web application. We were able to overcome the challenge of storing, manipulating, and making use of user input data in order to ensure the app functionality.

What's next for xpire

We would implement a scanning product code and expiry date feature through computer vision and language processing. One feature that we did not get to complete was integrating an SMS API (such as Twilio), to programmatically send the user text messages when one of their grocery items was close to expiry.

Built With

Share this project:

Updates