Files
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

37 lines
2.0 KiB
Markdown

# FUJ Management System
Welcome to the **FUJ Management System**, a streamlined solution for managing Ultimate Frisbee club finances, attendance, and member payments. This system automates the tedious parts of club management, keeping your ledger clean and your reconciliation painless.
## 🚀 Mission
The project's goal is to minimize manual entry and potential human error in club management by:
1. **Automating Bank Synchronization**: Periodically fetching transactions from Fio bank.
2. **Smart Inference**: Using heuristics to match bank transactions to members and payment periods.
3. **Visual Reconciliation**: Providing a clear, real-time web dashboard for managers to track who has paid and who is in debt.
## ✨ Key Features
- **Seamless Bank Integration**: Synchronize transactions directly from the Fio bank API into a Google Spreadsheet.
- **Intelligent Matching**: Automatic detection of member names and payment periods from transaction messages using diacritic-insensitive Czech text processing.
- **Dynamic Dashboard**: A Flask-powered web interface displaying monthly fees, payment status (OK, Partial, Unpaid), and total balances.
- **Manual Overrides**: Support for fee exceptions and manual payment matching when automation needs a human touch.
- **QR Payment Generation**: Integrated QR code generation to make paying outstanding fees trivial for members.
## 🛠 Tech Stack
- **Backend**: Python 3.12+ (managed with `uv`)
- **Web Framework**: Flask with Jinja2 templates
- **Data Storage**: Google Sheets (used as a collaborative database)
- **APIs**: Fio Bank API, Google Sheets API v4
- **Containerization**: Docker / OCI Images
- **Automation**: `Makefile` based workflow
---
## 📂 Documentation Guide
- [Architecture](architecture.md): High-level system design and data flow.
- [User Guide](user-guide.md): How to operate the system as a club manager.
- [Support Scripts](scripts.md): Detailed reference for CLI tools.
- [Deployment](deployment.md): Technical setup and infrastructure instructions.