Skip to content

Werewolves Assistant API provides over HTTP requests a way of manage Werewolves games to help the game master.

License

Notifications You must be signed in to change notification settings

lucvuro/werewolves-assistant-api-next

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

474 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo


TypeScript Nest Mongoose

Build Status Release Status

GitHub release semantic-release: conventional commits GitHub license NPMKnown Vulnerabilities

Tests count Covered Statements Mutation testing badge

Technical Debt Duplicated Lines (%) Code Smells

📋 Table of Contents

  1. 🐺 What is this API ?
  2. 🃏 Roles available
  3. 🔨 Installation
  4. 💯 Tests
  5. ☑️ Code analysis and consistency
  6. 📈 Releases & Changelog
  7. Misc commands
  8. ©️ License
  9. ❤️ Contributors

Werewolves Assistant API provides over HTTP requests a way of manage Werewolves games to help the game master.

This is the next version of the current Werewolves Assistant API. It is still under development.

🤔 Want to know more about this awesome project ? Check out the dedicated about page.

27 different official roles are available to play :


Werewolf

Big Bad Wolf

Vile Father Of Wolves

White Werewolf

Villager

Villager-Villager

Seer

Cupid

Witch

Hunter

Little Girl

Guard

Ancient

Scapegoat

Idiot

Two Sisters

Three Brothers

Fox

Bear Tamer

Stuttering Judge

Rusty Sword Knight

Wild Child

Dog-Wolf

Thief

Angel

Pied Piper

Raven

To install this project, you will need to have on your machine :

NPM Docker

Then, run the following commands :

# Install dependencies and Husky hooks
npm install

# Start dev Docker containers
npm run docker:dev:start

# Start test Docker containers (if you want to run the tests)
npm run docker:test:start

Unit and E2E tests are orchestrated with :

Jest

Tests count

Covered Statements

Covered Branches

Covered Functions

Covered Lines

Acceptance tests are managed by :

Cucumber

Scenarios

Mutant testing is also available with :

Stryker

Mutation testing badge

Before testing, you must follow the installation steps.

Then, run one of the following commands :

# Assure you started test Docker containers
npm run docker:test:start

# Run unit tests with coverage
npm run test:unit:cov

# Run e2e tests with coverage
npm run test:e2e:cov

# Run both unit and e2e tests with coverage
npm run test:cov

# Run both unit and e2e tests only on staged files (run on pre-commit)
npm run test:staged

# Run acceptance tests
npm run test:cucumber

# Run mutant tests with coverage
npm run test:stryker

# Run mutant tests with coverage from scratch (without using the incremental file)
npm run test:stryker:force

Code linting is managed by :

EsLint

In order to keep the code clean, consistent and free of bad TS practises, more than 300 rules are activated !

Complete list of all enabled rules is available in the .eslintrc.js file.

Before linting, you must follow the installation steps.

Then, run one of the following commands :

# Lint 
npm run lint

# Lint and fix
npm run lint:fix

# Lint and fix only on staged files (run on pre-commit)
npm run lint:staged

Project is scanned by :

SonarCloud

Coverage

Duplicated Lines (%)

Quality Gate Status

Technical Debt

Vulnerabilities

Code Smells

Reliability Rating

Security Rating

Bugs

Releases on main branch are generated and published automatically by :

Semantic Release

It uses the conventional commit strategy.

Each change when a new release comes up is listed in the CHANGELOG.md file.

Also, you can keep up with changes by watching releases via the Watch GitHub button at the top of this page.

🌳 Animated tree visualisation of the project's evolution with Gource

# Please ensure that `gource` is installed on your system.
npm run gource

🔀 Create git branch with a conventional name

npm run script:create-branch

⤴️ Create pull request against the develop branch from current branch

npm run script:create-pull-request

This project is licensed under the MIT License.

There is no contributor yet. Want to be the first ?

If you want to contribute to this project, please read the contribution guide.

About

Werewolves Assistant API provides over HTTP requests a way of manage Werewolves games to help the game master.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •