42 lines
1.4 KiB
Markdown
42 lines
1.4 KiB
Markdown
# Fatimas Calendar
|
|||
|
|
|
||
|
|
A mobile-first Flask calendar with session authentication and infinite week scrolling.
|
||
|
|
|
||
|
|
Amounts and worked/vacation/sick statuses selected for dates are stored persistently in `instance/calendar.sqlite`, which is created automatically on first launch.
|
||
|
|
|
||
|
|
## Run it
|
||
|
|
|
||
|
|
```sh
|
||
|
|
python3 -m venv .venv
|
||
|
|
source .venv/bin/activate
|
||
|
|
pip install -r requirements.txt
|
||
|
|
python app.py
|
||
|
|
```
|
||
|
|
|
||
|
|
Set the username, password, and Flask signing key in `config.yaml` before starting. This file is excluded from Git. Use `config.example.yaml` as the documented template when setting up another machine.
|
||
|
|
|
||
|
|
The two paid quick-choice buttons are configured in the same file:
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
amounts:
|
||
|
|
presets:
|
||
|
|
- "55"
|
||
|
|
- "27.50"
|
||
|
|
```
|
||
|
|
|
||
|
|
The €0 and custom-amount controls remain available automatically.
|
||
|
|
|
||
|
|
## Import the Excel calendar
|
||
|
|
|
||
|
|
Preview an import without changing the database:
|
||
|
|
|
||
|
|
```sh
|
||
|
|
python scripts/import_excel.py /path/to/fatima.xlsx
|
||
|
|
```
|
||
|
|
|
||
|
|
Add `--apply` to import. The command backs up the existing SQLite file before updating it.
|
||
|
|
|
||
|
|
On the iPhone, visit `http://<your-computer-on-the-local-network>:5000`. The development server listens on all network interfaces. For anything exposed beyond a trusted home network, run behind HTTPS with a production WSGI server.
|
||
|
|
|
||
|
|
For deployments, `APP_CONFIG` can point to a YAML file elsewhere. `SECRET_KEY`, `APP_USERNAME`, and `APP_PASSWORD` environment variables optionally override the corresponding YAML values.
|