・スコア入力・管理(18ホール詳細:スコア/パット/FW方向/クラブ/OB/バンカー等)
・ゴルフ場・コースデータ管理(距離・HC・ホールメモ)
・同伴者管理・スコア記録 前半・後半・合計のみ
・スコア詳細画面・印刷機能
・過去履歴検索・フィルタリング
・スコア解析ダッシュボード(年別統計・グラフ)
・ポイント集計機能
・ゴルフ場・コースデータ管理(距離・HC・ホールメモ)
・同伴者管理・スコア記録 前半・後半・合計のみ
・スコア詳細画面・印刷機能
・過去履歴検索・フィルタリング
・スコア解析ダッシュボード(年別統計・グラフ)
・ポイント集計機能
・バックエンド:Python / Flask / SQLite
・フロントエンド:HTML / CSS / JavaScript / Chart.js
・インフラ:Docker / Docker Compose / Apache / Tailscale
・Android:TWA(Trusted Web Activity)/ Bubblewrap
・AI:Anthropic Claude API(画像認識)
・フロントエンド:HTML / CSS / JavaScript / Chart.js
・インフラ:Docker / Docker Compose / Apache / Tailscale
・Android:TWA(Trusted Web Activity)/ Bubblewrap
・AI:Anthropic Claude API(画像認識)
ディレクトリ構成
/mnt/data/docker/golf_app/
├── app.py # Flaskエントリポイント(port 5001)
├── golf.db # SQLiteデータベース
├── Dockerfile
├── docker-compose.yml
├── templates/ # Jinjaテンプレート
│ ├── base.html
│ ├── index.html
│ ├── round_detail.html
│ ├── score_input.html
│ └── ...
└── static/
├── favicon.png
└── scorecard/ # スコアカード画像
├── 2012/
└── 2026/
/mnt/data/docker/golf_app/
├── app.py # Flaskエントリポイント(port 5001)
├── golf.db # SQLiteデータベース
├── Dockerfile
├── docker-compose.yml
├── templates/ # Jinjaテンプレート
│ ├── base.html
│ ├── index.html
│ ├── round_detail.html
│ ├── score_input.html
│ └── ...
└── static/
├── favicon.png
└── scorecard/ # スコアカード画像
├── 2012/
└── 2026/
DBスキーマ設計主要テーブル構成:
| courses :ゴルフ場マスタ | id, name, address |
| rounds :ラウンドデータ | date, course_id, gross, putt_total,front_score, back_score, tee_color, green,front_layout, back_layout, weather, wind, point,source_file |
| hole_scores :ホール別スコア | round_id, hole, par, yard, hc,score, putt, first_club, fw_result, ob, bunker, penalty |
| members :同伴者マスタ | name, kana, handicap, grp |
| round_members:ラウンド別同伴者 | round_id, member_id, name,front_score, back_score, total_score, point |
| course_holes:コースデータ | course_id, layout_name, tee, green,hole, par, yard, hc |
| course_hole_memos:ホールメモ | course_id, layout_name, hole, memo |
| clubs :クラブマスタ | name, category, selected |