Skip to content

vhcent/Recipe-Keeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

126 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Recipe Keeper

Description

An android recipe keeper app that allows for the searching and storage of recipes and groceries. Using the Spoonacular API for a database of recipes and a user login system for user-based storage, Recipe Keeper is a convenient way to discover and organize recipes.

Installation

Download and try the app here.

Video Demo

How we built this app

Tech Stack

Node.js, AWS, MySQL, Expo (React Native),

Backend

For the backend, we initially used Node.JS with an Express framework, as we were most familiar with those. However, we soon realized that in order to keep our server running, we would have to integrate our code with a third party service. That service ended up being Amazon Web Services, as their products are relatively well documented, work well together, and their free tier provides more than enough resources.

The core of our backend is a MySQL database hosted on Amazon RDS. An AWS Lambda function written in Node.JS runs SQL commands to modify the database. Finally, a front-facing HTTP API that integrated the Lambda function was created using Amazon API Gateway . Through this process, we created a multi-endpoint HTTP API that could manipulate the MySQL database based on the features and needs of the frontend.

Frontend

For the frontend, we used Expo, which utilizes React Native to create an app that is compatible with both ios and android environments natively. We separated each component of our app into their own .js/.jsx files to minimize redundant code and make our project more modular. To update and delete from the tables in our MySQL database, we called our api in response to certain user actions in the frontend. We also designed a cache system to store data from recent api calls to reduce load times from frequent calls.

Authorization

To further enhance our app, we wanted to create an account login system. This was implemented using Auth0, which provides its own login/logout UI, and manages its own user database. Besides this, Auth0 uses OAuth protocols, which allowed us to protect our API endpoints with a JWT token. Upon logging in, a series of calls are made to various Auth0 endpoints that allow our app to retrieve a UserID and a Bearer Access Token, both of which are passed to and used by the backend API.

Features

Searching for Recipes by their Names Grocery List
image image
Saved Recipes Recipe View with Ingredients and Integrated Grocery List
image image

About

A Recipe Keeper Andriod App built using React Native Expo, Node.js, AWS, MySQL, and Auth0.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors