IbrahimCanada / ReactReduxRouterStarter

Starter kit for a React Redux Router App with a Node/Express API Edit Add topics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

React Redux Router Starter App and API Server

React Redux React Redux Bootstrap

Overview

This is a simple starter kit that adds Redux and React Router v4 to a Create React App project. It is opinionated in the way the components and containers are structured, as well as how reducers and actions are organized as well e.g: putting all container reducers, actions and action types within their container directory instead of putting all reducers, actions and action types in three different directories.

Uses the latest Create React App and other package versions.

Client and Server are separate but I included the server files for reference. If only the client side files are required, simply delete the "server" directory.

Code is linted using a mix of rules from the Standard and Airbnb JavaScript style guides.

Client

It currently implements an e-commerce shopping cart, where a user can add or remove items (books) from the store. A client can add them to his/her cart and perform a "checkout".

  • Global state management handled by Redux. Consuming and updating a backend API, and passing both props and actions down from containers to components.

Use the Redux browser extension to use time-travel to track all state change, and to dispatch actions.

  • Routing and route state management handled by React-Router and React-Router-Redux
  • Uses the reselect library to perform certain state-based functions such as populating the number of items in a customers cart.
  • Uses Twitter Bootstrap as as base CSS for components.

Stack:

  • Babel/ES2017
  • React
  • Redux
  • React Router v4
  • Axios for API calls

Setup

  • Open the directory in a terminal and perform "npm install" to install all dependencies.
  • Run "npm start" to run the server in development mode.
  • The client will be running on http://localhost:3001 if server is running on 3000

Todo

  • Add more propType validations (currently missing)

Server

Simple versioned ES6 Node.js, Express.js and MongoDB API starter kit.

Node Express MongoDB

Stack

  • Babel/ES2017
  • Express.js
  • Node.js
  • MongoDB/Mongoose

Setup:

  • Open the directory in a terminal and perform "npm install" to install all dependencies.
  • Run "npm run dev" to run the server in development mode.
  • Run "npm run build" to compile a build of the server
  • The server will be running on http://localhost:3000

Make sure to change the JWT secret key in the .env file.

Todo:

  • Implement Universal or Server Side Rendering (SSR) solution that serves the final build of the client side to clients with JavaScript disabled. Although not a high priority, it offers some accessibility and search engine optimization benefits.

Currently contains unused packages that were used in the developement of a Universal/SSR solution. Should be cleaned up easily if that feature is not required.

About

Starter kit for a React Redux Router App with a Node/Express API Edit Add topics

License:MIT License


Languages

Language:JavaScript 93.3%Language:HTML 6.0%Language:CSS 0.7%