2.5 KiB
2.5 KiB
zeitkort-web-only POC
A self-contained web-only proof-of-concept version of zeitkort.
This package does not use the zeitkort-api service, PostgreSQL, SQLite, or
any other backend database. The Go web process serves the UI and stores all POC
records in memory.
Important POC behavior
- Companies, assignments, tasks, work sessions, and invoice-number records are held in process memory only.
- Settings edited from the UI are also in-memory only.
- Everything resets automatically every 10 minutes after the process starts.
- A sticky, high-visibility countdown banner shows exactly when the next reset will happen.
- Restarting the process also clears everything immediately.
config.jsonis read only at startup for the listen address and initial invoice defaults; the app never writes it.
What it does
- Pick a company → assignment → task, run a live timer, and stop it manually.
- Add / edit / delete companies, assignments, tasks, and work sessions.
- Add manual time entries.
- Generate the Faroese invoice PDF directly from the in-memory data.
- Edit sender/company invoice defaults for the current 10-minute in-memory run.
- Open the About menu item for a concise explanation of the POC features and implementation.
Build
Requires Go 1.26+ as declared by the original project.
go mod download
go build -o zeitkort-web .
Configure
cp config.example.json config.json
# edit config.json if needed
Only these fields are used:
listen_addrcompany_*tax_idbank_infopayment_terms_daysmvg_percent
There are no API URL, username, or password fields in this version.
Run
./zeitkort-web -config config.json
The app logs a reset message every 10 minutes when the in-memory POC state is cleared. The browser also shows a large countdown and reloads shortly after the reset so the cleared state is visible.
As a service
sudo useradd --system --no-create-home zeitkort # if not already present
sudo mkdir -p /opt/zeitkort-web
sudo cp zeitkort-web config.json /opt/zeitkort-web/
sudo chown -R zeitkort:zeitkort /opt/zeitkort-web
sudo cp zeitkort-web.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now zeitkort-web
Notes
- This is intentionally not durable. Do not use it for real time tracking.
- Deletes are not cascading: remove work sessions before tasks, tasks before assignments, and assignments before companies.
- The timer stops only when you click Stop, unless the 10-minute POC reset happens first.