Files
fuj-management/docs/by-gemini/user-guide.md
Jan Novak 9b99f6d33b
All checks were successful
Deploy to K8s / deploy (push) Successful in 8s
docs: experiment with generated documentation, let's keep it in git for
now
2026-03-11 11:57:30 +01:00

62 lines
2.3 KiB
Markdown

# User Guide
This guide is intended for club managers who use the FUJ Management system for day-to-day operations.
## 🛠 Operational Workflow
To keep the club finances up-to-date, follow these steps periodically (e.g., once a week):
1. **Sync Bank Transactions**:
Run the sync script to pull the latest payments from Fio.
```bash
make sync
```
2. **Infer Payments**:
Let the system automatically tag who paid for what.
```bash
make infer
```
3. **Manual Review (Google Sheets)**:
Open the Google Spreadsheet. Check rows with the `[?]` prefix in the `Person` column—these require human confirmation.
- If correct: Remove the `[?]` prefix.
- If incorrect: Manually fix the `Person` and `Purpose`.
- If a payment covers a special case: Use the **exceptions** sheet to override expected fees.
4. **Check Reconciliation Dashboard**:
Start the web app to see the final balance report.
```bash
make web
```
Navigate to `http://localhost:5001/reconcile`.
---
## 📊 Understanding the Dashboard
### Reconciliation Page
- **Green (OK)**: Member has paid exactly what was expected (or more).
- **Orange (Partial)**: Some payment was received, but there's still a debt.
- **Red (UNPAID)**: No payment recorded for this month.
- **Blue (SURPLUS)**: Payment received for a month where no fee was expected.
### Handling Debts
If a member is in debt, you can click on the unpaid/partial cell to get a **QR Platba** link. You can send this link or screenshot to the member to facilitate quick payment.
---
## ❓ FAQ & Troubleshooting
### Why is a payment "Unmatched"?
A payment stays unmatched if neither the sender name nor the message contains recognizable member names or nicknames.
- **Fix**: Manually enter the member's name in the `Person` column in the Google Sheet.
### How do I handle a "Family Discount" or "Prepaid Year"?
Use the `exceptions` sheet in the Google Spreadsheet.
1. Add the member's name (exactly as it appears in attendance).
2. Enter the month (e.g., `2026-03`).
3. Enter the new `Amount` (use `0` for prepaid).
4. Add a `Note` for clarity.
### The web app is slow to load.
The app fetches data from Google Sheets API on every request. This ensures real-time data but can take a few seconds. The "Performance Breakdown" footer shows exactly where the time was spent.
```