See the demo of the BridgeScorer here.
Use pull requests. Travis CI is used to test all pull requests prior to merging.
To release a new version, the current branch must be main, the workspace must be clean.  The release branch must not exist.
To create the release, execute:
sbt release
Then push the release branch and make a pull request.  Once the Travis CI build finishes merge the pull request, and then push the tag that was created with the sbt release command.
client/
  src/
    main/
      scala/      the source for the browser application
help/             the help project from https://github.com/thebridsk/bridgescorerdocs
rotation/
  shared/
    src/
      main/
        scala/    a utility to help with bridge table rotations
server/
  src/
    main/
      public/     static content for web application
      scala/      the server source code
      resources/  resources for the server
    test
      scala/      test code
  store/          persistent store for dev environment, git ignored
  testdata/       test data for integration tests
shared/
  shared/
    src/
      main/
        scala/    shared code between web application and server
utilities/        the utilities project from https://github.com/thebridsk/utilities
project/
  Dependencies.scala            dependencies for all projects
  MyEclipseTransformers.scala   sbt transformers for eclipse
  MyReleaseVersion.scala        my version support for sbt-release
  plugins.sbt                   plugins needed by this project
  Server.scala                  support for running server in tests
build.sbt         build file
version.sbt       version file, maintained by build.sbt and sbt-release plugin
setup/
  sbt/            files for global configuration of sbt
launchers/        eclipse launchers for development environment
To generate the server key for the HTTPS Connection run the following:
md key
cd key
..\generateServerKey.bat abcdef abcdef
Warning: The above is NOT secure, the password for the private key trivial. This only shows how to make a server that supports HTTPS.
With this key, the following options will enable https and http2 when starting the server:
--certificate key/example.com.p12 --certpassword abcdef --https 8443 --http2
The sbt build target bridgescorer-server/serverssl can be used to start the server with https support and bridgescorer-server/serverhttp2 can be used to start the server with https and http2 support.  Note that the akka-http2-support library is added in the test scope, as is the serverhttp2 target.
This project uses nested submodules.  The easiest way to clone is to use clone --recurse-submodules.
mkdir BridgeScorer
cd BridgeScorer
mkdir git
cd git
git clone --recurse-submodules https://github.com/thebridsk/bridgescorer
The resulting directory structure is:
BridgeScorer
  git
    bridgescorer
  ws
The ws directory is the eclipse workspace.
- Java 1.8
 - Scala 2.12.10
 - SBT 1.3.0
 - Chrome
 - ChromeDriver, be sure to match the version of Chrome.
 - Hugo, at least version 0.52
 
Optional:
- 
In the SBT install, edit the file
conf/sbtconfig.txtand make the following changes:- Change 
-Xmxoption to-Xmx=4096M. 512m is not enough. 
 - Change 
 - 
If you update SBT, you may need to clean out the
~/.sbtdirectory. Make sure you saveglobal.sbt,plugins.sbtand any other configuration files. - 
Optionally copy the files in
setup/sbt/1.0to~/.sbt/1.0. This has aplugins.sbtfile with plugins that are nice to have. 
Install the scalametals extension. Add sbt, Scala, Java, chromedriver, hugo to the path when starting VSCode.
Use jsconsole from https://github.com/remy/jsconsole
git clone https://github.com/remy/jsconsole
cd jsconsole
npm install
node .
edit server/src/main/public/index-jsconsole.html to set the correct IP address for the jsconsole server.
on iOS Safari, go to /public/index-jsconsole.html