1.7 KiB
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
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
waitress-serve --host=0.0.0.0 --port=9009 app:app
To use a different port, substitute it in the command (for example,
--port=8080). The application exposes its WSGI callable as app:app, so it
can also be used by platforms that ask for an application entry point.
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:
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:
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>:9009.
Waitress listens on all network interfaces with the command above. For anything
exposed beyond a trusted home network, put it behind an HTTPS reverse proxy.
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.