docs: experiment with generated documentation, let's keep it in git for
All checks were successful
Deploy to K8s / deploy (push) Successful in 8s
All checks were successful
Deploy to K8s / deploy (push) Successful in 8s
now
This commit is contained in:
61
docs/by-gemini/user-guide.md
Normal file
61
docs/by-gemini/user-guide.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 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.
|
||||
```
|
||||
Reference in New Issue
Block a user