Inspiration

We strive to make stress-free, accessible, healthy eating available to everyone through our user-friendly interface and intuitive features.

What it does

Users can enter their meals into a daily notebook, after which they receive a full macronutrient and vitamin breakdown that details how much fat, protein, carbohydrates, and other vitamins they are consuming. We check these values against the 2015 release of the Canadian Nutrient File (csv) and data scraped from Health Canada's Dietary Reference Intakes tables.

How we built it

This project pulls from the 2015 release of the Canadian Nutrient File (csv) and data scraped from Health Canada's Dietary Reference Intakes Tables. This data was processed and cleaned using Libreoffice Calc, Kate (a KDE text editor), Jupyter Notebooks, Numpy, and Pandas. The (currently unfinished) frontend was built with Figma, CustomTkInter, TkInter, Pillow, and Rich. The (finished, documented) backend and CLI were built with Numpy, Pandas, TheFuzz, Typer, and Rich.

Challenges we ran into

The CSV we pulled had a lot of multi-line cells, which we needed to split into separate rows. We ended up fixing it by transposing, pasting it into Kate, finding and replacing it, copying it back into LibreOffice calc, and transposing it again. Also, our team lost a lot of time designing the user interface on Figma, which could have been used to code the home page instead, as we designed all four pages first. To add to that, some of our team members were unable to help with the hackathon for some time, which largely affected our productivity as it lost time that could have been used to create the recipe page and get the back-end to connect to the front-end.

Accomplishments that we're proud of

A huge accomplishment that we're proud of is finding a real-world issue and finding an effective way to solve it, which was to encourage users to find healthy recipes, calculate their daily intake, and encourage others to also start a healthy lifestyle. We are also proud of being able to find relevant data sets to train an AI to give item recommendations, along with nutrition facts, since it was challenging to find sourceful or relevant data. Also, our app was built with CustomTkinter, which none of our teammates had used before, and the user interface was designed using Figma before beginning to code the front-end, which was time-consuming but helped with coding the front-end as it gave us an idea of what should be implemented. Overall, we are proud that we challenged ourselves to use new technologies to solve real-world problems in an effective way.

What we learned

The team members had no prior experience using Figma, but we used it during the hackathon to design the user interfaces (all four pages: home page, recipe page, profile page, and leaderboard page). By using Figma, our team learned how easy and effective it is to create a visually appealing and user-friendly interface by making a design using Figma. To add to that, we also had no experience with using CustomTkInter, which was used to implement the front-end of the app and was learned as we went; however, we learned how easy and modern CustomTkinter makes the user interface look. Additionally, we used TheFuzz and Typer for the backend, which we never used, so we had to learn how to use them as we trained the AI. However, we are proud that we learned how to use these tools, since we find them both efficient and effective and will use them in future projects.

What's next for Canada Meal Planner

Next for Canada Meal Planner, we hope to finish the home page to provide users with a clean and modern-looking user interface, as well as create a recipe page that allows users to search for healthy recipes based on their diet restrictions and goals (we already found an API for this but underestimated the time needed to finish the home page). To add to that, we also wish to make the app a little competitive to encourage users to eat healthier by adding local and global leaderboards that show users with the most points and achievements that gain the most points. Achievements that we planned to add include: referring a friend, finding a new recipe, calculating a meal's nutrition for the first time, joining Canada Meal Planner, a 5-day log-in streak, a 10-day login streak, a 30-day login streak, a 90-day login streak, etc. Additionally, we also hoped to keep track of the user's data by using Google's Oauth2 for login and personalizing the user's app based on their age, goals, achievements, and meals.

Built With

  • cross-platform
  • customtkinter
  • figma
  • french
  • numpy
  • pandas
  • pil
  • pillow
  • python
  • rich
  • thefuzz
  • tk
  • tkinter
  • typer
Share this project:

Updates