Schafkopf-Server/Readme.md
2022-11-25 13:10:00 +01:00

61 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

![](banner.jpg)
# 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