partyq
npm start
runs the development server with hot-loading.npm test
runs both server side and client side testsnpm run lint
runs eslint on filesnpm run build
builds partyq for productionnpm run test:server
runs server side testsnpm run test:client
runs client side testsnpm run test:server-watch
runs server tests when files changenpm run test:client-watch
runs client tests when files changenpm run test:watch
runs tests when files change
- /test General tests that do not fit in front or backend.
- /test/learning various non-application tests. Used to experiment with a new API or get comformable with the testing framework.
- /server contains the main backend source code for partyq. Reducer, Redux store, and core functionality.
- /server/test contains chai tests for the partyq backend.
Redux manages the state in partyq. We want to represent our application's state as an immutable tree data structure. We change the state by applying function to the state tree. Also uses react-redux to play nicely with react.
Framework used on backend
Module bundler. See
- webpack.config.js for development config
- webpack.production.config.js for production config Based on the configurations from webpack-express-boilerplate.
- Immutable for immutable data structure to promote pure functions and functional style.
- See /tests/learning/immutable_spec.js for an example of how to use and test the immutable data structures.
- Full API Docs
- Socket.io abstracts websockets for realtime applications
- jsdom implements the DOM in node, so we don't need to use karma for tests.
- webpack-dev-middleware with webpack-dev-server allows for serving of files to a public path without building each time.
- webpack-hot-middleware allows for hot reloading while running own server.
- Babel to support ES6 features such as modules
- Mocha and Chai for unit testing.
- Chai Immutable for using immutable with chai tests.
- Eslint ensures coding standards. Current settings can be found in .eslintrc.
- Extends the airbnb eslint configuration for ES6.
- babel-eslint to lint ES6 code.
- eslint-plugin-react to lint React and jsx parts.
- pre-commit to run lint and test before each commit
- rimraf to clear the
dist
folder before starting partyq or building partyq. - postcss-loader
- autoprefixer "Autoprefixer will use the data based on current browser popularity and property support to apply prefixes for you."
- stats-webpack-plugin get the stats of the webpack build.
- extract-text-webpack-plugin extract text from bundle into a file.