Inspiration

While staying at home during the lockdown, we were finding it hard to eat healthy with both the lack of ingredients and an absence of cooking knowledge, which we thought that others must be feeling the same way. Having little or no experience in cooking, it may be daunting for people to try and get into it. They may rather choose to order takeout, which is a quicker but less healthy alternative. It is currently also impossible to travel, therefore reducing the opportunity to experience cuisines of different cultures around the world. Through pit-stach.io, we hope to encourage more people to cook and choose healthier recipes while exploring new foods from different countries.

What it does

What we wanted to do is to implement the gamification of recipe finding and tracking through experience, levelling and achievement systems for users of the platform. Through these aspects, we hope to make trying new and healthy foods fun and exciting. There are two main systems working together to make pit-stach.io reality:

Users System

The users’ system will be an essential function of the platform to keep track of users’ experience, achievements, tracked recipes, custom recipes, friends, and more. Some basic information we’ll want to keep track of include:

  • Basic info (name, email, age, etc.)
  • Current XP Level
  • Current User Level (determined by current XP level)
  • Friends List

Food System

The food system includes databases for foods items, macronutrients, and recipes that they appear in. Using these variables and a proprietary algorithm we also arrive at a certain amount of XP that users can gain by trying these food items and recipes. While users can add their own recipes into the database, they can also search for recipes using an integrated recipe search API, or have the program match them with recipes based on what they have available in their Pantry.

**

How we built it

The platform was built with Node.js, with Express.js for the backend. For the frontend, we designed it in Figma and exported it using Overlay to React-Native. All user and recipe and food data were stored in a CockroachCloud database and connected with Postgres. For recipe and food searches we used two respective APIs from Edemam, and created our HTTP requests using Postman.

Challenges we ran into

Everyone in our group was working on something that was new to them so we all had our individual challenges that we had to overcome. With the database, it was figuring out how to structure everything in the most efficient way possible, even with multiple relational databases. With the frontend, we had issues with react-native components after exporting from Overlay and eventually ended up creating custom react components which turned out to work the best. In the backend creating the APIs quite a cumbersome task as we'd dug ourselves a bit of a hole by adding more endpoints than we'd realized. There was also a last minute issue with our Cockroach's database server which forced us to recreate the database from scratch just hours before submission. While there were plenty of challenges, we did end up overcoming them all and I think we all became much better programmers, problem solvers, and creators because of it.

Accomplishments that we're proud of

A lot of firsts this hackathon! First web app for some of us, first time using react, SQL, backend... We're all really impressed with ourselves with pulling this project off in 2 days given the little amount of experience we'd had.

What's next for pit-stache.io

Improving the search function to include more ethnic foods is a big next step. To gain a wider variety of international recipes, we hope to attract a bigger audience globally by finding no other than Pitbull, Mr. Worldwide himself, to act as our spokesperson. It would be an even greater honour if he would model for an updated logo, considering that he was an inspiration for our name. In addition, we would love to implement more creative, and harder to earn achievements in the future, as well as maybe even a few secret badges...

Share this project:

Updates