This is a MERN-stack app. That being said, two terminal sessions are necessary:
- One for running the Express backend (port 3000)
- One for running React's dev server (port 8000)
Start the Express backend first by typing
nodemon server.js or nodemon server
React's development server can now be started by typing
yarn start
If we want to see how the app will behave when deployed, we need to:
- Ensure that the React app has been built locally using
$ npm run build. - Browse to
localhost:3000because that's where our Express server is running - which again, we coded to serve from the build folder.
Important: During development, you don't want to browse to
localhost:3000! Instead, you want the browser to be loading the React app from React's dev server onlocalhost:8000. We are only browsing tolocalhost:3000to check out how the deployed app will run.
So, when you are hacking out code and nothing seems to be updating in the browser - be sure to verify that you are browsing on localhost:8000.
- Main Dishes
- Appetizers
- Side Dishes
- Desserts
- Drinks
- Breakfast
- Lunch
- Dinner
- Dessert
- Drink
- Title
- Description
- Prep Time
- Cook Time
- Total Time
- Servings
- Recpie Author / Link
- Ingredients
- Measurement
- Ingredient
- Image(s)
- Instructions
- Recipe Notes
- Nutrition Information
Check out the editable ER diagram here!
Apparently using bootstrap and React can cause some issues. I was running into trouble getting the 'hamburger menu' to work and referenced this article on Stack Overflow to make it work.
-
Add form validator and sanitization using
express-validator. Tutorial example here. -
Add TODO-like format for adding ingredients to recipe. Example
-
Simpler Implementation of Dynamic Form Fields Example - Step-by-step Example
-
Use single onChange handler for form inputs. Example. Full code
- Gramma's Kitchen - working app
- Gramma's Kitchen - on Github
-
Possible solution for 'Measurements' dropdown - event emitter
-
MERN Example with React Hooks - CRUD example SPA
-
React Hooks Form - Performant, flexible and extensible forms with easy-to-use validation.
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
You will also see any lint errors in the console.
Launches the test runner in the interactive watch mode.
See the section about running tests for more information.
Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
See the section about deployment for more information.
Note: this is a one-way operation. Once you eject, you can’t go back!
If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
You don’t have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
You can learn more in the Create React App documentation.
To learn React, check out the React documentation.
This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify