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:
[1] Sustainability Points
#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(); | |
} |
#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(); | |
} |
#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; | |
} | |
} | |
} |
SpaceApps is a NASA incubator innovation program.