Family Supper by Meagan Smith: https://family-supper.herokuapp.com
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. Planning and Database |
3. Installation |
4. Backend Overview |
5. Frontend Overview |
6. Future Features |
7. Contact Information |
8. Special Thanks |
- 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.
- 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.
- 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.
- Logged-out users are not able to view a profile page
- Logged-in users are able to view their user information and the recipes that they have posted in their profile.
An image of tables and relationships can be found here.
Family Supper offers users the opportunity to share family recipes and their memories associated with them. Learn more about the user experience here.
Design mock-ups of each page of Family Supper can be found here.
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.
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.
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
- next/previous buttons
There are a number of exciting features on the horizon for Family Supper. Please visit again to find:
- 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
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.