Systemarkitektur
Översikt
Golf - Juniortävlingar är en Flask-baserad webbapplikation som körs i Docker via Gunicorn. Systemet använder lokala datakataloger för databas, cache, uppladdningar och loggar.
Webbläsare
│
▼
Reverse proxy / lokal port
│
▼
Gunicorn
│
▼
Flask web_app.py
│
├── analysmotor
├── rankingimport
├── EntryList-import
├── Excelimport
├── databaslager
├── cache
├── scheduler
└── dokumentationsportal
Komponenter
| Komponent | Beskrivning |
|---|---|
web_app.py |
Webbapplikation och routes. |
analysis_engine.py |
Analys av anmälningslistor och ranking. |
ranking_importer.py |
Rankingimport och rankinghantering. |
mingolf_importer.py |
Import från EntryList/API-källor. |
excel_importer.py |
Import av Excel-filer. |
db.py |
Databasfunktioner. |
app_logging.py |
Loggning. |
docs_feature.py |
Inbyggd dokumentationsportal. |
Docker
Båda miljöerna bygger samma applikation från Git-kodbasen.
Docker-image:
golf-juniortavlingar:latest
På sikt bör latest ersättas av versionsstyrda image-taggar, exempelvis:
golf-juniortavlingar:20.31.0-foundation
Git Worktree
Systemet använder Git Worktree för att ha två aktiva arbetskopior:
/opt/golf-juniortavlingar/prod/app -> main
/opt/golf-juniortavlingar/test/app -> develop
Det minskar risken att test och produktion glider isär.
Dataflöde
Anmälningslista / EntryList API
│
▼
Importmodul
│
▼
Databas och cache
│
▼
Analysmotor
│
▼
Webbgränssnitt och rapporter