Monikerz is a party game that is similar to Celebrity or Charades. Teams play against each other by trying to guess as many names as possible before time runs out.
- React: UI components
- Redux: Firestore state management
- XState: Game state machine
- Firebase: Backend / real-time updates
- Fontawesome: Icons
- Fathom: Analytics
- Honeybadger: Error Reporting
It is recommended to use VS Code for development. There are recommended extensions for this repository. It is also recommended that you install the chrome extensions associated with debugging the react, redux, and xstate libraries.
Note that changing an environment variable requires restarting webpack.
||Enables firebase logging to the console, when in development mode|
||Site ID for Fathom Analytics, when in production mode|
||Firebase config values for interacting with firestore and dynamic links APIs. These come from the firebase web console.|
||Honeybadger API key for error reporting and sourcemap upload, when in production mode|
||Base URL for production assets, required for
yarnare installed globally.
- Clone this repository.
.envand configure the relevant environment variables. See above for descriptions.
yarn installfrom the root of the repository.
yarn dev:dllonce to build the webpack dll of dependencies.
yarn devto start webpack in watch mode. This will automatically open your default browser.
yarn testto check that your tests pass ok.
yarn test:coverageto check that coverage has not decreased.
- If you've built a shared component, create a story for it in Storybook.
- When your changes are complete, ensure your branch is up to date, has no conflicts, and is squashed down to one commit.Then, push your change to a branch against this repository or your fork.
- Create a pull request and ensure it passes CI (which should be equivalent to running
yarn test). Only pull requests that pass the aforementioned checks will be accepted.
This workflow builds on the above, so ensure you're able to build locally in
dev mode before trying to create a production release.
- Ensure you're on
masterand have the latest commits checked out.
.envis up to date.
firebase-toolsare installed globally.
- Bump the version number in
yarn prod:dllonce to build the webpack dll of dependencies.
yarn prodto create a release build. Note that running this command will upload sourcemaps to honeybadger.
yarn deployto push the release up to firebase.
- Commit to
masterwith the updated version number and firebase cache file.