Pantry
Provides a portal for aggregating recipe search results to minimize manual searching by the user. Also has a profile system to keep track of recipe preferences for more accurate search results. Uses AWS for hosting the database and MongoDB/NoSQL for managing it. Uses the MERN stack.
What it is
Pantry is a web application that aids users in finding recipes for their meals by utilizing smart search algorithms and learning user preferences. Its main objective is to minimize the time the user takes to find a recipe they want so that they can get to cooking right away. Pantry also allows users to make personal profiles, which is useful for cooks that need more customized search preferences, or the same preference across multiple searches.
Installation
The first step is to clone the repository from here. There are two folders named front-end and back-end. Launch two separate terminal windows and navigate to the front-end folder on one, then the back-end folder on the other. On both the front-end folder terminal and the back-end folder terminal, type
> npm install
This will install any required packages needed to run the webapp. Launch the back-end first by typing the following in the back-end:
> npm start
Then, type the following on the front-end folder terminal:
> npm start
This automatically launches the browser window and opens the front-end of Pantry. If launching for the first time, ReactJS will take some time to load all UI elements.
Usage
This web app consists of three major features namely recipe search, user submissions and user profiling. Recipe search is accessed from the very first page or by clicking on the recipe link at the top. This takes you to the recipe search page where you can enter keywords to narrow your search. After that, click on the search button and the relevant results will populate as you scroll down.
Pantry accepts user submissions like recipes and recipe ratings which can then be viewed by others in the community. To add a recipe, click on Add Recipe link at the top. This will open a new page where you can specify pictures, cooking steps, nutritional content, food type, etc.
User profiling in Pantry helps you customize your own search preferences, view recipes you made and the ratings you provided for other’s recipes. A user account needs to be made before accessing these features. Click on the SignUp link to create an account.
How it works
Pantry consists of three modules namely the front-end, the back-end and the database. The front-end is what the user sees in their system and its main job is to take commands from the user and display the results they require. The back-end is responsible for fulfilling the commands sent by the front-end accurately and efficiently. The database is responsible for storing all information needed by Pantry and supply data to the back-end as it asks for them.
Pantry uses ReactJS to run its front-end since it provides an abstract development environment by hiding much of the web development implementations from the programmer so they only have to focus on what is necessary. This allows for more time on creativity and UI design leading to a better user experience. NodeJS handles the back-end of Pantry and any data it requires is provided by the database built with MongoDB. ExpressJS was used to encapsulate NodeJS code to make programming easier.
Content for Pantry is sourced from TastyAPI. This integration provides users with instant access to a vast library of recipes and search using ingredients, dietary restrictions or the country of origin. This allows Pantry to provide relevant and personalized recipe recommendations to users.
Credits
Diptanshu Giri
Jaden Cua
Jonathon ‘Wolfe’ Fiorini
Cesar Huizar
Jose Rios
Ryan Bartlein