Food Waste Management
According to the Environmental Protection Agency (EPA), over 103 million tons (206 billion pounds) of food was wasted in the United States in 2018. Globally, we waste a third of all food produced for human consumption, according to the Food and Agriculture Organization (FAO) of the United Nations. Food waste is the #1 source of garbage in landfills and it is responsible for 17% of U.S. methane emissions. Some of the current solutions to this problem simply include educating people on how to prevent food waste via lifestyle changes and only buying what you need, while also paying attention to expiration dates before throwing food out. However, this seems to be an overly idealistic solution which brings us to the idea of our platform.
Food waste management is a web application that allows groceries/small food businesses in Hoboken to sell food that is close to its expiration date for a discounted (or free) rate in order to avoid food waste. Features for the customers include finding nearby stores to their location/proximity while also being able to check out these food items for purchase. On the other hand, store owners would be able to list their items on our application for purchase by others. Both parties would benefit from this in order to avoid food waste on the business side, while also providing affordable rates for the customers (E.g. for students who are on a budget, or perhaps charities looking to provide food for the homeless).
Node.js, React, MongoDB Atlas, Express, Firebase Authentication, Redux, ImageMagick, AWS S3
The environment files are already included in our project submission (There's one for both the client side and server side).
But for good measure and completion, you would need to create a file called .env
in the root directory of both /client
and /server
and paste in the corresponding secret keys, which are included in a Canvas Submission comment.
Navigate to /client
and /server
and run npm install
or npm install --force
to install the required dependencies on both the client and server-side of our project.
Since we are using MongoDB Atlas, we have seeded our database with the data there is no need to run the seed files in your setup.
We are just providing this commands if you want to add your own data into seed file, run npm run seed
, node task/item_seed
to run the various seed files for our database.
Note: If you run the seed file, data will be duplicated in MongoDB Atlas
The next step is to install ImageMagick on your machine since it will be needed locally for one of our image upload features to work. Download ImageMagick for your specific operating system at this link: https://imagemagick.org/script/download.php
- You can download an executable directly at this link: https://download.imagemagick.org/ImageMagick/download/binaries/ImageMagick-7.1.0-33-Q16-HDRI-x64-dll.exe. For windows you must specifically install
ImageMagick-7.1.0-34-Q16-HDRI-x64-dll.exe
version. - Choose all default options, however, when on the "Select Additional Tasks" page, be sure to check off
Install legacy utilities (e.g. convert)
. - Make sure that ImageMagick is installed at proper path. Your ImageMagick folder path should look like this
C:\Program Files\ImageMagick-7.1.0-Q16-HDRI
- Assuming you have homebrew installed, you can install ImageMagick with
brew install imagemagick
andbrew install ghostscript
(A dependency).
From here, you can run 'npm start' in the /client
folder to start the react app (http://localhost:3000/) and npm start
in the /server
folder to begin the server (http://localhost:3001/)
We also have seeded both user accounts and restaurant admin accounts (so you can update the food items offered for a particular restaurant).
Access the Admin login page using http://localhost:3000/admin/signin (Note: There is no button to go to admin page. You need to manually type the url)
The username and password follow the same format for each restaurant.
Username: restaurant{number}
Password: restaurant{number}.123
Restaurant | Username | Password |
---|---|---|
La Casa | restaurant1 | restaurant1.123 |
Mexiterraneo Grill | restaurant2 | restaurant2.123 |
The Franklin | restaurant3 | restaurant3.123 |
Mike's | restaurant4 | restaurant4.123 |
Chango Kitchen | restaurant5 | restaurant5.123 |
Ricky's | restaurant6 | restaurant6.123 |
Ali Baba | restaurant7 | restaurant7.123 |
Mision Burrito | restaurant8 | restaurant8.123 |
El Sabroso | restaurant9 | restaurant9.123 |
Elysian Cafe | restaurant10 | restaurant10.123 |
Dark Side Of The Moo | restaurant11 | restaurant11.123 |
Corto | restaurant12 | restaurant12.123 |
Amanda's | restaurant13 | restaurant13.123 |
La Boheme Restaurant | restaurant14 | restaurant14.123 |
Margherita's | restaurant15 | restaurant15.123 |
Zack's | restaurant16 | restaurant16.123 |
Empanadas Cafe | restaurant17 | restaurant17.123 |
Mamoun's Falafel | restaurant18 | restaurant18.123 |
Los Tres Chilitos | restaurant19 | restaurant19.123 |
Shaka Kitchen | restaurant20 | restaurant20.123 |
The Hutton | restaurant21 | restaurant21.123 |
Heavenly Chicken and Ribs | restaurant22 | restaurant22.123 |
Ujala | restaurant23 | restaurant23.123 |
Northern Soul | restaurant24 | restaurant24.123 |
Anna Maria Pizzeria & Restaurant | restaurant25 | restaurant25.123 |
Corkscrew Bar | restaurant26 | restaurant26.123 |
Garden State | restaurant27 | restaurant7.123 |
Hollywood Fried Chicken | restaurant28 | restaurant28.123 |
NYC GYROS | restaurant29 | restaurant29.123 |
Good Year | restaurant30 | restaurant30.123 |
Tommy's Family Restaurant | restaurant31 | restaurant31.123 |
Sophia’s Kitchen | restaurant32 | restaurant32.123 |
Los Amigos Restaurant, LLC | restaurant33 | restaurant33.123 |
Rumba's Cafe | restaurant34 | restaurant34.123 |
La Concha | restaurant35 | restaurant35.123 |