Awesome
DEPRECATED. Goodbye, adiós, au revoir, auf Wiedersehen, zàijiàn. Time has passed this repo by. Bye!
feathers-starter-react-redux-login-roles
Production ready starter package. Local auth, roles; React-Router auth. Easily use Feathers services with Redux.
The goal is to support a 100% integration of Feathers and Redux, within production quality boilerplate, so you can focus on your app development. A local auth UI is provided for use, and as a working example of Feathers + Redux integration.
<a name="features"></a> Requirements
- Windows or Linux builds now working
- Minimum node Version 6.9.0
- npm versions (3.10.8)
<a name="features"></a> Features
- Designed as a foundation for building commercial applications used in production.
- Local authentication including email verification, forgotten passwords, change email, password, etc.
- Transactional email notifications.
- User roles for authorization, including authorization of React routes.
- UI for user authentication and authorization.
- Feathers DB and custom services are dispatched to Redux for 100% compatibility.
- Async server verification for the UI, as well as client-side verification.
- Share UI verification code between client and server.
- Hierarchical, dynamic app configuration for server and client.
- Logging from both server and client.
<a name="serverContains"></a> Server contains
- Feathersjs with Express.
- Feathers-rest to implement a REST API.
- Feathers-socketio for socket.io transport.
- Feathers-service-verify-reset adds email verification, forgotten password reset, etc. to local feathers-authentication.
- Feathers-hooks-validate-joi schema validation, sanitization and client notification using Joi.
- Dotenv loads environment variables from
.env
. (1.8k stars) - Envalid environment variable validation.
- Node-config node.js application configuration. (1.6k stars)
- Winston a multi-transport async logging library for node.js. (6.1k stars)
- Morgan HTTP request logger middleware for node.js. (1.7k stars)
- Feathers-nedb. You can cleanly and easily swap databases.
You can swap to one or more of these databases with minor code changes: Amazon DynamoDB, Apache Cassandra, ArangoDB, Azure Table Storage, Google Sheets GraphQL, LevelDB, MariaDB, MondoDB, MySQL, NeDB, Neo4j, SQLite, Oracle, OrientDB, PostgrSQL, Redis, RethinkDB, Riak, SQL Server,
<a name="ClientContains"></a> Client contains
- React & React-dom.
- Redux.
- Redux-auth-wrapper for Redux and React-Router permissions. (550 stars)
- Redux-form to manage form state in Redux (version 6). (3.5k stars)
- Redux DevTools Extension, like redux-devtools but perhaps better. (2k stars)
- Material-ui implement Google's Material Design. (19k stars)
- Feathers-client using socket.io.
- Feathers-reduxify-services wrap Feathers services so they work transparently and perfectly with Redux.
- Feathers-reduxify-authentication wrap feathers-client.authentication so it works with Redux and React-Router.
<a name="clientBuildChain"></a> Client build chain contains
- Webpack
- Babel
- Postcss-modules scope CSS names locally, and export a map for rendering React components. (css-modules 4.7k stars)
- Autoprefixer add vendor prefixes. (10.7k stars)
- Rucksack a little bag of CSS superpowers, built on PostCSS. (1.5k stars)
- Html-webpack-plugin simplifies creation of HTML files to serve your webpack bundles. (1.7k stars)
<a name="motivation"></a> Motivation
A complete, working project on which you can build your own Feathers, React, Redux app.
The project contains comprehensive local authentication and authorization including user roles.
<a name="running"></a> Running the starter package
npm install
from root.
Linux flavors
With Webpack-dev-server:
npm run build:devserver
on one process to start the webpack-dev-server on port 8080.npm run start:devserver
to start the server on port 3030.- Point browser to
localhost:3030
to start app.
Production build:
npm run build
.npm start
.- Point browser to
localhost:3030
to start app.
Windows
Run the above commends using win:build:...
and win:start:...
.
User authorization features accessible from icon menus on /user/signin
and /app
.
<a name="faq"></a> FAQ.
<a name="customization"></a> Customization of boilerplate.
<a name="processExitCodes"></a> Process Exit Codes.
<a name="httpStatusCodes"></a> HTTP Status Codes.
<a name="contribution"></a> Contributing
Guide to ideomatic contributing.
<a name="changeLog"></a> Change Log
<a name="license"></a> License
MIT. See LICENSE.