61 lines
1.6 KiB
Markdown
61 lines
1.6 KiB
Markdown
![](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
|
||
|
||
|