Reference list:
- React Lifecycle Method Diagram (Link)
IDE & tools list:
Finished task list:
- install node.js
- npm initialize & install express boiler-plate package (npm init & install express --save)
- MongoDB Local Server setting & connect with express server (npm install mongoose --save)
- mongoose Schema structure & Model concept for typical log-in DB (./models/User.js)
- setup git CLI operation with Github
- intall body-parser package for parsing the data between front-end & back-end
- install The Postman app for checking the back-end
- install nodemon package for realtime refreshing server (npm install nodemon --save-dev : "--save-dev" only for local & except the publish, should run "nodemon" instead of "node")
- seperate sensitive information for development & publish stage (./config, publish "Heroku Service")
- sensitive information to save with encryption by Bcrypt (npm install bcrypt --save)
- backend login logic making
- create login authorization token with DB _id (npm install jsonwebtoken --save)
- save the token on client cookie with express cookie-parser (npm install cookie-parser --save)
- making "Authorization Route" for checking when the page change with login auth data (decode the cookie data to DB _id & check DB at refreshing new pages)
- install create-react-app on ./client folder with npx
- install react-router-dom on ./client folder with npm & write router address with functions
- install axios on ./client folder with npm (AJAX way for using jQuery)
- trying to connect client to server in same address with different port, it shows error with CORS(Cross-origin request) message.
- use proxy (./client) to solve the CORS problem for localhost development process (Doc)
- as the official document install http-proxy-middleware on (./client) folder and setup the setupProxy.js
- install concurrently package to run both the backend & frontend server and put at package.json ("dev": "concurrently "npm run backend" "npm run start --prefix client"")
- install AntDesign package at (./client) for React CSS framework for concentrate on function & efficiency
- install redux, redux-react, redux-promise, redux-thunk on (./client) for central state management
- install Redux DevTools and setup at client index.js to connect the tools and test on Chrome
Package list:
- node.js
- npm express (back-end package)
- mpm mongoose (MongoDB package)
- npm body-parser (url json parser)
- npm nodemon (refresh server without reset the server)
- npm bcrypt (data encryption)
- npm jsonwebtoken (safe authorization)
- npm cookie-parser (saving temporary data on client computer with cookie)
- npx create-react-app . (react app basic boiler-plate, npx is utilizing the parent npm packages)
- npm react-router-dom (one page router)
- npm axios (jQuery data delivering like as AJAX)
- npm http-proxy-middleware (proxy for running the both frontend & backend for development process)
- npm concurrently (multiple run the process for the both frontend & backend at once)
- npm antd (CSS out of box framework)
- npm redux redux-react (central state manager)
- npm redux-promise redux-thunk (redux middleware to use redux easier)
Test environment:
~$ npm run dev (execute both frontend & backend with Local MongoDB)
To-do list:
- Tizen™ webapp platform adoption