Basketball Team Manager

Basketball Team Manager A architecture diagram generated by Archify. machine .13 edge .35 Parents · phone browser · Architecture component Parents phone browser Caddy .35 · TLS + basic auth · edge .35 Caddy .35 TLS + basic auth btm-web · Go + HTMX .13:8420 · machine .13 btm-web Go + HTMX .13:8420 tools/plan.py · roster and messages · machine .13 tools/plan.py roster and messages data/*.json · players fixtures history · machine .13 data/*.json players fixtures history Apprise / n8n · scheduled posts · Architecture component Apprise / n8n scheduled posts wa-bridge · Node .13:8421 · machine .13 wa-bridge Node .13:8421 WhatsApp group · team chat · Architecture component WhatsApp group team chat PlayHQ API · draw venue opponent · Architecture component PlayHQ API draw venue opponent fetch_fixtures.py · scheduled refresh · machine .13 fetch_fixtures.py scheduled refresh HTTPS proxy runs it reads POST /send POST /send linked device GraphQL writes Legend Backend Database Security External

One source of truth

  • • Python owns the rules: rotation, training dates, message wording
  • • The Go app renders JSON from tools/plan.py and holds no logic
  • • Website, CSV, WhatsApp drafts all come from the same run

WhatsApp path

  • • Bridge links the phone once as a linked device
  • • One POST /send with a group name and text
  • • Accepts form or JSON so Apprise and n8n can post without code

Weekly routine

  • • Thursday 3pm: training reminder, names the next game's timekeeper
  • • Friday 9am: refresh fixtures, 9:05am game details, 4pm re-post if changed
  • • Quiet weeks send a short note: no training, or no game this weekend
  • • n8n calls the same endpoints the page uses; failures alert by email and ntfy