Awesome
đē Werewolves Assistant Web
đ Table of Contents
- đē What is this tool ?
- đ Let's try !
- đ Roles available
- đ Versions & changelog
- âī¸ Code analysis and consistency
- đ¨ Installation
- đ Let's go
- âī¸ Other useful commands
- Šī¸ License
- â¤ī¸ Contributors
<a name="what-is-this-tool">đē What is this tool ?</a>
đē Werewolves Assistant Web is a Vue web app using the <a href="https://github.com/antoinezanardi/werewolves-assistant-api" target="_blank">Werewolves Assistant API</a>. Thanks to this app, being the game master of the Werewolves of Millers Hollow game is so easy !
đē Werewolves Assistant Web provides some cool features :
- A game lobby for creating a party starting from 4 to 40 players. Roles can be assigned randomly to save time. Game official rules can be changed to add fun and complexity.
- A cool interface displaying all useful game's data, player and their attributes, both sides (villagers and werewolves) and more.
- For each turn, game master can fill every player's choices. The Assistant will consequently display deaths and events, manage the turns order and save all players choices.
- Musics and sound effects are played during the game to set up the appropriate atmosphere depending on the situation. Obviously, you can manage those audio parameters.
- At the end of the game, a complete summary with game's winner(s) and what happened during the game. You can also review your experience for helping the Assistant to improve.
đ¤ Want to know more about this awesome project ? <a href="https://werewolves-assistant.antoinezanardi.fr/about" target="_blank">Check out the dedicated about page</a>.
<a name="lets-try">đ Let's try !</a>
Two versions are available for testing this project:
â¨<a href="https://werewolves-assistant.antoinezanardi.fr" target="_blank">Main version</a>
đ§<a href="https://sandbox.werewolves-assistant.antoinezanardi.fr" target="_blank">Sandbox version</a>
Sandbox version may contain some bugs and unexpected behaviors as its purpose is to test new features before deploying on main version.
Both versions are running on a server with the following configuration:
- OS:
Debian GNU/Linux 10 (buster)
- NodeJS:
v14.16.1
- NPM:
v6.14.12
- MongoDB shell version:
v4.4.5
The MongoDB database is protected under username and password authentication.
<a name="roles-available">đ Roles available</a>
On this current version , 24 different roles are available to play:
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/werewolf.png" width="25"/> The Werewolf
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/big-bad-wolf.png" width="25"/> The Big-Bad-Wolf
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/vile-father-of-wolves.png" width="25"/> The Vile Father Of Wolves
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/white-werewolf.png" width="25"/> The White Werewolf
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/villager.png" width="25"/> The Villager
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/villager.png" width="25"/> The Villager-Villager
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/seer.png" width="25"/> The Seer
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/cupid.png" width="25"/> The Cupid
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/witch.png" width="25"/> The Witch
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/hunter.png" width="25"/> The Hunter
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/little-girl.png" width="25"/> The Little Girl
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/guard.png" width="25"/> The Guard
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/ancient.png" width="25"/> The Ancient
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/scapegoat.png" width="25"/> The Scapegoat
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/idiot.png" width="25"/> The Idiot
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/two-sisters.png" width="25"/> The Two Sisters
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/three-brothers.png" width="25"/> The Three Brothers
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/stuttering-judge.png" width="25"/> The Stuttering Judge
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/wild-child.png" width="25"/> The Wild Child
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/dog-wolf.png" width="25"/> The Dog-Wolf
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/thief.png" width="25"/> The Thief
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/angel.png" width="25"/> The Angel
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/pied-piper.png" width="25"/> The Pied Piper
- <img src="https://werewolves-assistant-api.antoinezanardi.fr/img/roles/raven.png" width="25"/> The Raven
Please check the <a href="https://werewolves-assistant-api.antoinezanardi.fr/apidoc/#player-roles" target="_blank">Player role section on API documentation</a> or the <a href="https://werewolves-assistant.antoinezanardi.fr/about" target="_blank">Available Roles section on the official website</a> for more details about each role.
<a name="versions">đ Versions & changelog</a>
Each change when a new version comes up is listed in the <a href="https://github.com/antoinezanardi/werewolves-assistant-web/blob/master/CHANGELOG.md" target="_blank">CHANGELOG.md file</a> placed at project's root.
Also, you can keep up with changes by watching releases with the Watch GitHub button at the top of this page.
Current release on main version is .
Travis helps the project to be automatically updated by deploying new versions for both sandbox and main versions. Please refer to the .travis.yml file for more details.
đˇī¸ <a href="https://github.com/antoinezanardi/werewolves-assistant-web/releases" target="_blank">All releases for this project are available here</a>.
<a name="code-analysis-and-consistency">âī¸ Code analysis and consistency</a>
In order to keep the code clean, consistent and free of bad JS practises, ESLint is installed with nearly 320 rules activated !
Complete list of all enabled rules is available in the .eslintrc.js file.
<a name="installation">đ¨ Installation</a>
- Install dependencies with
npm install
(add--production
to omit dev dependencies). - Copy
.env.example
and paste it as.env
. - Replace environment values in the fresh new
.env
file if necessary (When â ī¸ī¸ Required is specified):- VUE_APP_WEREWOLVES_ASSISTANT_API_URL: Base URL of Werewolves Assistant API.
- â ī¸ī¸ Required
- VUE_APP_WEREWOLVES_ASSISTANT_WEB_URL: Base URL of Werewolves Assistant Web app. Set to
localhost:8080
if in development mode.- â ī¸ī¸ Required
- VUE_APP_SENTRY_KEY: Private key used by Sentry for authenticating the project.
- Not Required
- VUE_APP_SENTRY_PROJECT_ID: Project ID used by Sentry.
- Not Required
- VUE_APP_SENTRY_ENABLED: If you want to enable error tracking with Sentry.
- Not Required - Default value:
false
- Not Required - Default value:
- VUE_APP_GOOGLE_ANALYTICS_ID: Tracking and measurement ID used by Google Analytics.
- Not Required
- VUE_APP_GOOGLE_ANALYTICS_ENABLED: If you want to enable traffic data measurement with Google Analytics.
- Not Required - Default value:
false
- Not Required - Default value:
- VUE_APP_FACEBOOK_APP_ID: Facebook application ID if you want to enable Facebook authentication.
- Not Required
- VUE_APP_GOOGLE_CLIENT_ID: Google client ID if you want to enable Google authentication.
- Not Required
- VUE_APP_WEREWOLVES_ASSISTANT_API_URL: Base URL of Werewolves Assistant API.
<a name="lets-go">đ Let's go</a>
To start the web app on development mode, simply run npm start
.
To start the web app on production mode, run npm run build
and host the dist
folder with an HTTP server.
<a name="other-useful-commands">âī¸ Other useful commands</a>
- Lint:
npm run lint
checks for code style. - Build:
npm run build
launches the Vue build process. - Unit tests:
npm run test:unit
runs various unit tests usingmocha
andchai
. - E2E tests:
npm run test:e2e
runs various E2E tests usingcypress
.
<a name="license">Šī¸ License</a>
This project is licensed under the MIT License.
<a name="contributors">â¤ī¸ Contributors</a>
There are no contributor yet... Be the first one by creating a pull request !