ReadMe - meagan13/Family-Supper GitHub Wiki
Family Supper
Family Supper is an app where families can preserve and share hand-written recipe cards and memories about family dishes. It is a fullstack React app with with a Redux state manager and a backend using Python, Flask, SQL-Alchemy, and PostgresSQL.
- Visit the Family Supper App Live
- View the Family Supper Wiki Docs
Table of Contents |
---|
1. Features |
2. Installation |
3. Backend Overview |
4. Frontend Overview |
5. Future Features |
6. Contact Information |
7. Special Thanks |
Features
Sign In, Sign Up, and Demo
- All users have the option to sign into an existing account or to create an account.
- The Demo option gives the user full access to the site without having to create an account or log into the site.
Recipes
- Logged-out users are able to view all recipes posted to the website by all registered users. They are not able to create, edit, or delete recipes.
- Logged-in users are also able to create recipes, and users who create recipes can also edit or delete those recipes.
Memories
- Logged-out users are able to view all memories shared about specific recipes. They are not able to add, edit, or delete memories.
- Logged-in users are also able to create memories from an individual recipe page. Logged-in users are able to edit or delete memories they have posted.
Technologies
Backend Overview
The backend of Family Supper was created using Flask and WTForms. Flask was an ideal choice for its compatibility with the latest technologies, proven performance, and flexibility. WTForms allows for the use of csrfProtection of user data and built-in data validations.
Frontend Overview
The frontend of Family Supper was created using React and Redux to provide easy access to data store and state. Redux wraps the state in a store that listens for updates and then updates code that depends on changes in that state. React is beneficial for its ability to create re-usable components.
Installation
To build/run project locally, please follow these steps:
- Clone this repository
git clone https://github.com/meagan13/family-supper.git
- Install Pipfile dependencies and create the virtual environment
pipenv install
- Install npm dependencies for the
/react-app
cd react-app
npm install
-
In the
/
root directory, create a.env
based on the.env.example
with proper settings -
Setup your PostgreSQL user, password and database and ensure it matches your
.env
file -
Before running any flask commands, confirm you are in the pipenv virtual env. If not, run the command:
pipenv shell
- In the root folder, create the database by running in the terminal:
flask db create
- In the root folder, migrate tables to the database by running in the terminal:
flask db migrate
- In the root folder, seed the database by running in the terminal:
flask seed all
- Start the flask backend in the
/
root directory
flask run
- Start the frontend in the
/react-app
directory
npm start
Highlighted Code Snippets
- next/previous buttons
Future Features
There are a number of exciting features on the horizon for Family Supper. Please visit again to find:
- User Profile: displays a logged-in user's information, including the recipes and memories that they have posted
- Category Filter: allows users to selected a specific category and see all recipes classified by that category
- Edit/Delete Ingredients and Directions: users will be able to edit or delete the ingredients or directions of a recipe
- Family Members: limit access to only members of your family, allowing for more privacy and closer sharing
- Search Bar: search for recipes, categories, family member users, and more
Contact Information
Meagan Smith
Special Thanks
I am forever grateful to the generous and talented community of software engineers who supported me through many coding jams and face-palm moments. I am proud and honored to know you, Andrew, Henry, Pierre, Lema, Simon, Michelle, Nico, John, Manna, Monte, Jacob, Daniel, Jubin, Irina, Justice, Torrell, and Kagen.
To my incredible husband and partner in life, Josh Fletcher. Thank you for believing in me, being patient with me, and strongly encouraging me to "go on an' git". You're my favorite.
To my parents, grandparents, and mother-in-law who stand alongside me during my wins and my losses time and time again. Thank you for your love and your example.