This is frontend application in React/Redux for a Stay Productive API developed in Node. This application is going to use the stay-productive-api-node that I built previously.
Stay productive will be an application that allows you to manage/track your projects and tasks along with inbuilt pomodoro features to help you stay productive while managing your projects and tasks.
Note: This frontend part of Stay Productive application is not completed yet. But the backend API of this project is completed. Feel free to fork that repo for any kind of your API usage. I had build that API by covering several industry standard best practices. I will make documentation for API out soon to be used for public.
- Install Node 8 or newer. Need to run multiple versions of Node? Use nvm or nvm-windows(https://github.com/coryhouse/pluralsight-redux-starter/archive/master.zip)
- Navigate to this project's root directory on the command line.
- Install Node Packages. -
npm install
- Install React developer tools and Redux Dev Tools in Chrome.
- Having issues? See below.
- Run
npm install
- If you forget to do this, you'll get an error when you try to start the app later. - Don't run the project from a symbolic link. It will cause issues with file watches.
- Delete any .eslintrc in your user directory and disable any ESLint plugin / custom rules within your editor since these will conflict with the ESLint rules defined in the course.
- On Windows? Open your console as an administrator. This will assure the console has the necessary rights to perform installs.
- Ensure you do not have NODE_ENV=production in your env variables as it will not install the devDependencies. To check run this on the command line:
set NODE_ENV
. If it comes back as production, you need to clear this env variable. - Nothing above work? Delete your node_modules folder and re-run npm install.
Dependency | Use |
---|---|
bootstrap | CSS Framework |
immer | Helper for working with immutable data |
prop-types | Declare types for props passed into React components |
react | React library |
react-dom | React library for DOM rendering |
react-redux | Connects React components to Redux |
react-router-dom | React library for routing |
react-toastify | Display messages to the user |
redux | Library for unidirectional data flows |
redux-thunk | Async redux library |
reselect | Memoize selectors for performance |
Dependency | Use |
---|---|
@babel/core | Transpiles modern JavaScript so it runs cross-browser |
babel-eslint | Lint modern JavaScript via ESLint |
babel-loader | Add Babel support to Webpack |
babel-preset-react-app | Babel preset for working in React. Used by create-react-app too. |
css-loader | Read CSS files via Webpack |
cssnano | Minify CSS |
enzyme | Simplified JavaScript Testing utilities for React |
enzyme-adapter-react-16 | Configure Enzyme to work with React 16 |
eslint | Lints JavaScript |
eslint-loader | Run ESLint via Webpack |
eslint-plugin-import | Advanced linting of ES6 imports |
eslint-plugin-react | Adds additional React-related rules to ESLint |
fetch-mock | Mock fetch calls |
html-webpack-plugin | Generate HTML file via webpack |
http-server | Lightweight HTTP server to serve the production build locally |
jest | Automated testing framework |
json-server | Quickly create mock API that simulates create, update, delete |
mini-css-extract-plugin | Extract imported CSS to a separate file via Webpack |
node-fetch | Make HTTP calls via fetch using Node - Used by fetch-mock |
npm-run-all | Display results of multiple commands on single command line |
postcss-loader | Post-process CSS via Webpack |
react-test-renderer | Render React components for testing |
react-testing-library | Test React components |
redux-immutable-state-invariant | Warn when Redux state is mutated |
redux-mock-store | Mock Redux store for testing |
rimraf | Delete files and folders |
style-loader | Insert imported CSS into app via Webpack |
webpack | Bundler with plugin ecosystem and integrated dev server |
webpack-bundle-analyzer | Generate report of what's in the app's production bundle |
webpack-cli | Run Webpack via the command line |
webpack-dev-server | Serve app via Webpack |