# Schafkopf Server This package provides a simple server to play the Bavarian game *Schafkopf* via a browser. ![](game.jpg) ## Setup #### Configuration Create a `config.json` file in the `Resources` directory, and fill in all required information. You can have a look at the `config_example.json` file for the required fields. ```json { "serverPort": 8000, "production": false, "mail": { "serverDomain": "https://example.com/schafkopf", "emailHostname": "example.com", "email": "schafkopf@example.com", "password": "some-secret-string", "tokenExpiryDuration": 15, } } ``` If `production` is set to `falseĀ“, then the database will only be created in memory, and deleted when the server is terminated. The `mail` configuration is optional, and used to send the password recovery emails. You also need to set the API path in the `Public/api.js` file to the path where the server is run. ```js const apiPath = "/schafkopf" ``` The server can be then be run like any other executable swift package: ```bash swift run ``` # Roadmap There are a few features still missing from this implementation: - Global rankings of players by their points - Point penalties for players leaving a running game - Computer players - Automatically playing a card after a timeout - Table options to allow/disallow games and change other settings - iOS App ## Improvements - Layout improvements for mobile devices in landscape mode - Complete German/English localization - Add last online date to user data - Allow enter key to start login