Taq8/shinnihon-eventlog-poc
0
新日本開発|作業工程DX化 PoC(イベントログ収集・動く体験デモ)
スマホで公開URLを開き、工程を選び、工番QRをカメラで読むと、 スプレッドシート風の記録(SSOT)に1行増え、ダッシュボードで 工程の流れ・所要時間・滞留が見えるようになる体験デモです。
設計の正本: workspace/shinnihon-dx/shinnihon_eventlog_collection_implementation.md (このアプリはその "動く体験デモ" です)
⚠ 公開デモのため サンプルデータ専用・実データの入力は禁止。 データは揮発します(Space再ビルドで消去)。
体験の流れ
/(スキャン)… 工程ボタン[受入/切断/溶接・組立/仕上/払出]を1つ選ぶ → 「工番QRをかざす」でカメラ起動 → 読取った瞬間に記録(送信ボタン不要) → 「✓ 記録 工番J-2406-017/溶接・組立/14:32」と大きく表示。連続スキャン可。 端末名は任意入力。カメラの無いPCでもサンプル工番ボタンで体験可。/dashboard… 直近イベント一覧/工番別タイムライン(簡易ガント)/ 工程別 件数・平均所要/未完了工番(払出未達)一覧。数秒ごと自動更新。/qr… 印刷用のサンプル工番QR(J-2406-017/018/019)と工程起動QR。/seed… サンプルイベントを投入してダッシュボードを即賑やかに。/resetで全消去。
設計の反映ポイント
- 中間工程はIN記録のみ。
stage=払出で当該工番を完了扱い(io=OUT)。 - リードタイム = 次工程IN − 当工程IN の差分で算出(OUT再スキャンに非依存)。
- 読むだけで記録(送信ボタンを押させない)。直前と同一コードの連続読みは無視。
- 書込前トークン照合(
/recordはtokenクエリ orX-Tokenヘッダを照合)。
エンドポイント
ローカル起動
pip install -r requirements.txt
uvicorn app:app --host 0.0.0.0 --port 7860
# → http://localhost:7860/環境変数(任意):
WRITE_TOKEN… 書込トークン(既定demo-token)PORT… 待受ポート(既定 7860)DB_PATH… SQLite保存先(既定/tmp/events.db、Dockerでは/tmp)
HF Spaces デプロイ(Docker SDK)
- Space SDK = docker
app_port= 7860(README front-matter / Dockerfile EXPOSE と一致)- 起動コマンドは Dockerfile の
CMD(uvicorn app:app --host 0.0.0.0 --port 7860) - 必要ファイル:
app.py/Dockerfile/requirements.txt/README.md/static/ - 実データ禁止のため
WRITE_TOKENは Space Secrets で上書き推奨(既定でも動作可)。
