Files
fuj-management/CLAUDE.md
Jan Novak 033349cafa
All checks were successful
Deploy to K8s / deploy (push) Successful in 13s
Build and Push / build (push) Successful in 32s
refactor: code quality improvements across the backend
- Remove insecure SSL verification bypass in attendance.py
- Add gunicorn as production WSGI server (Dockerfile + entrypoint)
- Fix silent data loss in reconciliation (log + surface unmatched members)
- Add required column validation in payment sheet parsing
- Add input validation on /qr route (account format, amount bounds, SPD injection)
- Centralize configuration into scripts/config.py
- Extract credentials path to env-configurable constant
- Hide unmatched transactions from reconcile-juniors page
- Fix test mocks to bypass cache layer (all 8 tests now pass reliably)
- Add pytest + pytest-cov dev dependencies
- Fix typo "Inffering" in infer_payments.py
- Update CLAUDE.md to reflect current project state

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 11:40:32 +01:00

1.6 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Status

Flask-based financial management system for FUJ (Frisbee Ultimate Jablonec). Handles attendance-based fee calculation, Fio bank transaction sync, payment reconciliation, and a web dashboard.

Key Constraints

  • PII separation: Member data (names, emails, payment info) must never be committed to git. Enforce config/data separation from day one.
  • Configuration: External service IDs, credentials, and tunable parameters are centralized in scripts/config.py. Domain-specific constants (fees, merged months) stay in their respective modules.

Development Setup

This project uses uv for dependency management.

uv venv          # Create virtual environment
uv sync          # Install dependencies from pyproject.toml
source .venv/bin/activate

Alternatively, use the Makefile:

  • make sync - Sync bank transactions to Google Sheets
  • make infer - Automatically infer Person/Purpose/Amount in the sheet
  • make reconcile - Generate balance report from Google Sheets data
  • make fees - Calculate expected fees from attendance
  • make match - (Legacy) Match bank data directly
  • make web - Start dashboard
  • make image - Build Docker image

Requires .secret/fuj-management-bot-credentials.json for Google Sheets API access (configurable via CREDENTIALS_PATH env var).

Git Commits

When making git commits, always append yourself as co-author trailer to the end of the commit message to indicate AI assistance