Overview
The hapi-react-starter-kit is a starter kit that combines the hapi server framework with React JS library for building user interfaces. It also includes a number of additional features such as react-router for keeping the UI in sync with the URL, Redux for Flux implementation, and React-Helmet for document head server-side rendering. The kit is built with ES6 and ES7 readiness using BabelJs, and includes linting with eslint & jscs, testing with karma and mocha, and API validation with Joi.
Features
- Hapi server framework for Node.js
- React JS Library for user interfaces
- Webpack + React-transform and react-transform-hmr
- React Router for keeping UI in sync with the URL
- Flux implementation using Redux
- Document Head SSR by React-Helmet
- ES6 and ES7 ready with BabelJs
- Linting with eslint & jscs
- Testing with karma, mocha, isparta, webpack, sinon-chai
- Coverage with karma-coverage
- API Interface with Swagger
- API Validation with Joi
- Database for storing user data (CRUD) using Redis
- Password encryption using Iron
- Promises with bluebird
- Fetch with isomorphic-fetch
- Authentication with OAuth2 (Refresh/Access tokens)
- Token Encoding with node-jsonwebtoken
- Token Encryption with node-forge
- Internationalization with react-intl by Yahoo
- Real-time messaging using Socket.io
- Inline CSS Styling with Radium
- OpenShift deployment ready
- Theming System (work in progress)
- Extensions System (work in progress)
Installation
To use the hapi-react-starter-kit, you can clone the repository or install it using npm. Here are the steps for installation:
- Clone the repository:
git clone <repository_url>
- Install dependencies:
npm install
- Run the production server:
npm run start:prod
- Run the development server:
npm run start:dev
- To run linting:
npm run lint
- To run tests:
npm run test
- To check coverage, check the coverage folder after running the tests.
Summary
The hapi-react-starter-kit is a comprehensive starter kit for building applications using the hapi server framework and React JS library. It includes a wide range of features such as routing, Flux implementation, API interface with validation, database integration, authentication, internationalization, real-time messaging, and more. The kit also provides a theming and extensions system for easy customization and extendability. With its ease of installation and extensive features, the hapi-react-starter-kit is a powerful tool for developers looking to build React applications with the hapi server framework.