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

2.3 KiB

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.
    make sync
    
  2. Infer Payments: Let the system automatically tag who paid for what.
    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.
    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.