This serves as the prototype for the MJC website, which will migrate to a transaction-based schema instead of the current one-action-per-round. The benefits of migrating are several, including support for double-ron, correct support for nagashi mangan, potential support for Sanma after slight reconfiguration, support for the full rules for pao, etc.
We need a huge amount of tests for this. Therefore, upon discussion with Peiyan, I decided to make a stub version such that more people in the club can contribute to the development of the website.
The development of this prototype follows the Test-Driven Development pattern, where the specs are provided and the tests are to be made before the exact implementation is available. Each contributor is expected to contribute at least 10 test cases for this prototype; at least 4 of which should involve nontrivial situations (double ron, pao, chombo, etc).
To start using this project, you need to get your development environment configured so that you can build and execute the code. To do this, follow these steps; the specifics of each step will vary based on your operating system:
-
Install git (v2.X). You should be able to execute
git --versionon the command line after installation is complete. -
Install Node LTS (LTS: v18.X), which will also install NPM (you should be able to execute
node --versionandnpm --versionon the command line). -
Install Yarn (1.22.X). You should be able to execute
yarn --version. -
Clone your repository by running
git clone REPO_URLfrom the command line. You can get the REPO_URL by clicking on the green button on your project repository page on GitHub. Note that due to new department changes you can no longer access private git resources using https and a username and password. You will need to use either an access token or SSH.
Once your environment is configured you need to further prepare the project's tooling and dependencies. In the project folder:
-
yarn installto download the packages specified in your project's package.json to the node_modules directory. -
yarn buildto compile your project. You must run this command after making changes to your TypeScript files. If it does not build locally, AutoTest will not be able to build it. -
yarn testto run the test suite. -
yarn lintto lint your project code. If it does not lint locally, AutoTest will not run your tests when you submit your code. -
yarn prettyto prettify your project code.
IntelliJ Ultimate should be automatically configured the first time you open the project (IntelliJ Ultimate is a free download through the JetBrains student program).