Ayumi | What’s for Dinner?

Skopje

Team Updates

Our App
Our App
A
Aleksandar Bojkovski

Ayumi-App

In order to fight food waste and famine, we raise awareness and we promote the usage of sustainable food with the app we created called Ayumi. It provides 3 main features each specilly invented to reach our goals:
a) the food analyzer

b) the leftovers compass

c) top picks

First of all the food we will explain the food analyzer. It is a user-friendly tool which analyzes the ecological impact of your food and rates it using information from the NASA databases. It engages the user by leting the user collect the ratings (SP[1]) and compete with their friends to reach the top of the weekly leaderboard and become the Sustainability Master. Basicaly, by eating both more sustainable and eco-friendly food, which as a result has higher rating, you have a greater chance of winning. But because we wanted to inspire our users not only to use eco friendly food, but also to cook such food we added an additional feature to this tool which enables you to unlock eco friendly recipes using your SP.

On one hand we live in a world where 40 % of the food goes uneaten. On the other hand, however, there are 21,000 people who die from starvation on daily basis. Furthermore, 60% of the avoidable food waste occurs at consumer stage. The numbers are alarming.

That's why we created the leftovers finder (leftovers compass). Perhaps, this is the tool of greatest importance because it fights famine by locating different restaurants and stores where you can leave the leftover food. Additionally, on those locations the user can find a QR code and scan it with their mobile device so that they get extra SP.

Finally, eating strawberries on a winter evening in Skopje makes no sense, does it? Imagine how many gases were released in order for it to be transported in Skopje. Or if it was grown locally, how much energy was wasted just to be provided with the right amount of warmth in winter. That's why we created the top picks tool. The tool shows which seasonal food products are the best for the current season.

There are numerous future updates we plan such as the:

  • dish lab- a tool which finds a recipe based on the ingredients you already have at home so you can use them before they are spoiled
  • the food provider certification- restaurants and stores that can donate greater amounts of food will become certified



[1] Sustainability Points

stole mlekokradБодан Мојсиловиќ
#pragma once
#include <stdc++.h>
#include "food.h"
void main();
void examine_cpr()
{
std::ifstream read("db/cpr/capriciossa_rating_dough.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"pizza dough\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;//newline
read.open("db/cpr/capriciossa_rating_ham.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"ham\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;//newline
read.open("db/cpr/capriciossa_rating_mozzarella.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"mozzarella\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;//newline
read.open("db/cpr/capriciossa_rating_mushrooms.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"fresh mushrooms\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;
read.open("db/cpr/capriciossa_rating_olives.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"olives\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl << std::endl;
main();
}
void examine_mar()
{
std::ifstream read("db/mghr/margherita_rating_dough.txt");
if (read.is_open())
{
size_t rating = 0;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = "Resource extraction: ";
arr[1] = "Manufacutre: ";
arr[2] = "Useage: ";
arr[3] = "End-of-Life Management: ";
std::cout << "The ratings for the \"pizza dough\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; i < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;//newline
read.open("db/mghr/margherita_rating_basil.txt");
if (read.is_open())
{
size_t rating = 0;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = "Resource extraction: ";
arr[1] = "Manufacutre: ";
arr[2] = "Useage: ";
arr[3] = "End-of-Life Management: ";
std::cout << "The ratings for the \"basil\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; i < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;//newline
read.open("db/mghr/margherita_rating_garlic.txt");
if (read.is_open())
{
size_t rating = 0;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = "Resource extraction: ";
arr[1] = "Manufacutre: ";
arr[2] = "Useage: ";
arr[3] = "End-of-Life Management: ";
std::cout << "The ratings for the \"garlic\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; i < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;
read.open("db/mghr/margherita_rating_mozzarella.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"mozzarella\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;
read.open("db/mghr/margherita_rating_olive.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"olive oil\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;
read.open("db/mghr/margherita_rating_tomato.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"tomatoes\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;
read.open("db/mghr/margherita_rating_tomatoS.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"tomatoe sauce\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl << std::endl;
main();
}
void examine_vege()
{
std::ifstream read("db/vege/vegetarian_rating_dough.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"pizza dough\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;//newline
read.open("db/vege/vegetarian_rating_basil.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"basil\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;//newline
read.open("db/vege/capriciossa_rating_mozzarella.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"mozzarella\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;//newline
read.open("db/vege/vegetarian_rating_diced.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"diced tomato can\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl;
read.open("db/vege/vegetarian_rating_garlic.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"garlic\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl << std::endl;
read.open("db/vege/vegetarian_rating_olive.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"olive oil\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl << std::endl;
read.open("db/vege/vegetarian_rating_onion.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"onions\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
read.close();
std::cout << std::endl << std::endl;
read.open("db/vege/vegetarian_rating_zucchini.txt");
if (read.is_open())
{
size_t rating;
size_t i = 0;
size_t numarr[4];
float avg = 0;
std::string arr[4];
arr[0] = " Resource extraction: ";
arr[1] = " Manufacutre: ";
arr[2] = " Useage: ";
arr[3] = " End-of-Life Management: ";
std::cout << "The ratings for the \"zucchini\" are: \n";
while (read >> rating)
{
numarr[i] = rating;
std::cout << arr[i] << rating << std::endl;
++i;
}
for (size_t j = 0; j < 4; ++j)
avg = avg + (numarr[j] / (float)4);
std::cout << "Average rating: " << avg << std::endl;
}
else return;
std::cout << std::endl << std::endl;
main();
}
view raw examine_food.h hosted with ❤ by GitHub
#pragma once
#include <stdc++.h>
#include "examine_food.h"
void examine_cpr();
void examine_mar();
void examine_vege();
void main();
int yesno(std::string& str)//need to fix
{
if (str == "Yes" || str == "yes")
return 1;
else if (str == "No" || str == "no")
return 0;
else
{
std::cerr << "Please enter Yes/yes or No/no.\n";
return -1;
}
return -1;
}
void capriciossa()
{
std::ifstream read("db/cpr/capriciossa.txt");
std::string str;
std::cout << "The ingredients for Capriciossa are: \n";
size_t i = 1;
while (!read.eof())
{
std::getline(read, str);
std::cout <<" "<< i << "." << str << std::endl;
++i;
}
std::cout << "Would you like to examine the ingredients?\n";
std::string answer;
while (true)
{
std::cin >> answer;
if (yesno(answer) > 0)
{
std::cout << std::endl;
examine_cpr();
}
else if (yesno(answer) == 0)
break;
else if (yesno(answer) < 0)
continue;
}
read.close();
std::cout << std::endl << std::endl;
main();
}
void margherita()
{
std::ifstream read("db/mghr/margherita.txt");
std::string str;
std::cout << "The ingredients for Margherita are: \n";
size_t i = 1;
while (!read.eof())
{
std::getline(read, str);
std::cout << " " << i << "." << str << std::endl;
++i;
}
std::cout << "Would you like to examine the ingredients?\n";
std::string answer;
while (true)
{
std::cin >> answer;
if (yesno(answer) > 0)
{
std::cout << std::endl;
examine_mar();
}
else if (yesno(answer) == 0)
break;
}
read.close();
std::cout << std::endl << std::endl;
main();
}
void vegetariana()
{
std::ifstream read("db/vege/vegetarian.txt");
std::string str;
std::cout << "The ingredients for Vegetariana are: \n";
size_t i = 1;
while (!read.eof())
{
std::getline(read, str);
std::cout << " " << i << "." << str << std::endl;
++i;
}
std::cout << "Would you like to examine the ingredients?\n";
std::string answer;
while (true)
{
std::cin >> answer;
if (yesno(answer) > 0)
{
std::cout << std::endl;
examine_vege();
}
else if (yesno(answer) == 0)
break;
}
read.close();
std::cout << std::endl << std::endl;
main();
}
view raw food.h hosted with ❤ by GitHub
#include <stdc++.h>
#include "examine_food.h"
#include "food.h"
//finished a bit
void main()
{
std::cout << "Available dishes: \n 1.Capriciossa\n 2.Margherita\n 3.Vegetariana\n";
size_t i;
std::cout << "Choose a dish: ";
while (std::cin >> i)
{
std::cout << std::endl;
switch (i)
{
case 1:
capriciossa();
break;
case 2:
margherita();
break;
case 3:
vegetariana();
break;
default:
std::cerr << "Invalid input or the other dishes are not available\n";
break;
}
}
}
view raw main.cpp hosted with ❤ by GitHub
stole mlekokradБодан Мојсиловиќ
NASA Logo

SpaceApps is a NASA incubator innovation program.