Hapi React Redux Boilerplate
Boilerplate Project for fast start with React, Redux, Hapi and Material UI
TODO
Hints
- Start project with mocks
APP_MOCKS=1 npm start
Server
- Babel config for Backend (DONE)
- Hapi Server (DONE)
- MongoDB (DONE)
- Joi schema validation
- Testing with hapijs/lab
- API documentation with hapi-swagger
Client
- Webpack + Babel config for Frontend (DONE)
- React (DONE)
- Redux (DONE)
- Loaders for images, css, postCSS (DONE)
- React Router (DONE)
- Material UI components (DONE)
- Saga middleware (DONE)
- Server Side Rendering (DONE)
- Formik or Redux Form - for form creation
- Async data loading and validation
CSS Modules
- Testing with Jest (DONE)
- Hot Reload
Functionality
- JWT Authentication (DONE)
- Login Page (DONE)
- Main menu, Header, Footer (DONE)
- CRUD with REST API and MongoDB (DONE)
- List page, Create/Edit page (DONE)
- Loaders
- Error notifications (DONE)
- Sign In / Sign Up validations
DevOps
- CircleCI (DONE)
- Servers (DONE)
- Docker Swarm (DONE)
Ways to start project
- Start Dev Mode
- Start Build
npm run build
npm run start-build
- Start Build in Docker (for MacOS)
npm run build
npm run docker-build
docker run -e MONGODB_HOST=host.docker.internal -e SERVICE_HOST=host.docker.internal:3001 -p 8080:8080 -d 972e05ca5a29
- Start Build in Docker Swarm (for MacOS)
npm run docker-build
- clone project https://github.com/codingbootcampru/bp-devops
- Stop local mongoDB (for MacOS:
brew services stop mongodb
)
- create local folder, for example: /Users/{$user}/data
- edit docker-compose.yml set services->mongo->volumes your local folder path, for example: " volumes: - "/Users/{$user}/data/mongo:/data/db" "
docker swarm init
docker stack deploy -c docker-compose.yml mystack
docker node ls
docker service ls