1. システム概要
本システムは山形空港に到着する定期便を監視し、飛行機の動作状況を信号色(白・青・黄・赤)で可視化し、LINE通知によって関係者に共有する仕組みを提供する。
利用者はブラウザでフライト監視ページにアクセスし、運用者は管理ページから監視対象や稼働状態を制御する。
2. システム目的
- 山形空港に到着する定期便とハンググライダーの活動の時間帯分離を支援
- 監視対象便の動作状況を関係者にリアルタイムで共有
- 接触事故の予防と安全運航の実現
3. システム構成
3.1 ハードウェア/ネットワーク構成
- サーバ
- Linux系ホスティングサーバ
- PHP 8.x / MySQL 8.x
- ネットワーク
- FlightAware AeroAPI への外部HTTP(S)アクセス
- LINE Messaging API への外部HTTP(S)アクセス
- クライアント
- PC/スマートフォンのWebブラウザ
3.2 構成図(簡略)
利用者PC/スマホ
↓ Webアクセス
Webサーバ (PHP, Apache/Nginx)
├─ index.php (PC版/SP版)
├─ admin.php (管理画面)
├─ update.php (監視/通知処理)
├─ disable_monitoring.php (日次リセット)
└─ MySQL DB (flightsテーブル)
外部サービス
├─ FlightAware AeroAPI
└─ LINE Messaging API
4. 機能仕様
4.1 利用者向け機能
- フライト監視画面の表示(PC/SP自動切替)
- 信号色による背景表示
- 白:未出発または到着済み
- 青:到着30分以上前
- 黄:到着30分〜10分前
- 赤:到着10分前〜着陸まで
4.2 運用者向け機能
- 管理画面(admin.php)での操作
- 監視ON/OFF切替
- 監視対象便の編集
- 現在の状態確認
- 毎日0時に自動で監視OFF
- 毎日早朝にdisable_monitoring.phpを実行し信号色をリセット
4.3 通知機能
- update.phpにより色変化を検知
- LINEグループへPUSH通知
5. データベース仕様
5.1 flightsテーブル
| カラム名 | 型 | 内容 |
|---|---|---|
| ident | VARCHAR(20) PK | フライト番号 |
| origin_code | VARCHAR(10) | 出発空港コード |
| scheduled_out | DATETIME | 定刻出発 |
| scheduled_in | DATETIME | 定刻到着 |
| estimated_in | DATETIME | 推定到着 |
| actual_in | DATETIME NULL | 実績到着 |
| signal_color | ENUM | white / blue / yellow / red |
6. 運用仕様
6.1 定期実行
- cronにより
update.phpを実行 - 実行間隔は自動調整(5分/10分/30分)
6.2 リセット処理
- 0時:監視OFF
- 朝:全便を白色にリセット
6.3 障害対応
- update_debug.log で状況を確認
- APIエラーやDB障害はログに出力
7. セキュリティ仕様
- 管理画面はBasic認証で保護
- config.php に認証情報を格納(適切なパーミッション設定)
- APIキー・LINEアクセストークンは外部公開禁止
8. 今後の拡張案
- Push通知先を複数設定可能にする
- ユーザーごとのアラートカスタマイズ
- APIレスポンスのキャッシュ強化