A management software for my hair salon.
This web application is not intended to be generic for every salon, but in fact is very specific to the hair salon for which it was designed. The code is still released under an open source license (MIT) to allow reusing snippets of the code in other projects (even completely unrelated!).
The backend code is written in Node.js 4.x, and it is based on the version 4 of the web framework Express.js. Elasticsearch is used as database, while the user interface is based on React.js and styled with Bootstrap version 3.
- Express.js for the backend code
- Passport as the authentication middleware
- Async.js to better structure async operations
- Elasticsearch to store documents and as the search engine
- Gulp as the build system and task runner
- React.js to create the user interface
- jQuery to perform AJAX calls and implement some js components
- Moment.js for building and parsing dates
- React Router to perform the front-end routing
- Redux to mantain a global app state
- Immutable.js for the data structures used for the redux state
- Bootstrap for the style and some nice components
- Webpack to bundle javascripts, styles and images
- Sass as the css pre-processor
- Mocha for the backend API tests
- should.js for the BDD style assertions used in the backend API tests
- Instanbul for the code coverage
- Nightwatch.js to perform end-to-end tests
- JSDoc to generate the documentation
- ESLint for the linting and code style
The application is written to run in development mode on a local environment
and in production mode (NODE_ENV == 'production'
) on Heroku.
- Download elasticsearch version 2.2.x and launch it.
- Generate indices and mappings running:
node ./scripts/generate_indices.js
- Generate demo data:
node ./scripts/generate_data.js
- Launch the application with the webpack dev server enabled:
gulp