diff --git a/README.md b/README.md index 1d2e50ec7a7da15d54dad756ed21dc30e55807df..38e6334ad125f5d29f3c82373f7f1a2d6d203638 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ +# Stechuhr-Server + +The stechuhr system is a contract tracing solution created at HFBK-Hamburg. The students use their Mifare RFID cards to check in at one station when they enter a area and out once they leave. The checkin/checkouts are transfered to a server and stored in a SQLite database. The stations store no data at all. + +The server software _stechuhr-server_ is programmed in python3 and uses Flask as a web frontend. Data is stored in a SQLite database. + + ## Run dev-server with poetry + To make a development server run on localhost: ```python3 export FLASK_APP=stechuhr_server/server.py @@ -52,16 +60,26 @@ After first start the default config file should be created, have a look at it a To make the server reachable from the outside a reverse proxy (like NGINX) needs to be setup. For this have a look at the example configuration file: `stechuhr.server.nginx.config` You may need to change a few things like the host or proxy_pass port. -# Configuration +## Configuration + +### Application +Application related settings. Here the database can be exposed via a GET request for debugging purposes. Make sure this is off in production, or make sure no such http requests can be made from the public internet. + +### Database + +Set the path to change where the database file is stored. Make sure that the path is writeable by the service user -## ID verification +### ID verification in `config.toml` you can add a list of regex patterns that stechuhr (*both on server and on client!*) uses to verify the Card IDs. These two patterns for example allow upper/lowercase hex strings with lengths either between 6 and 16 characters OR exactly 24 characters: ```toml id_patterns = [ - "^[A-Fa-f0-9]{24}$", - "^[A-Fa-f0-9]{6,16}$", + "^806[A-Z0-9]{9}04$", + "^FB6A1E60$", + "^FB6D6950$", + "^FB6A9DE0$", + "^FB67D500$", ] ```