Newer
Older
client_dwatch / README.md

D-Watch

清掃ロボット稼働モニタリングビューアー。DFA Robotics 内製開発。

  • はじめに読む: docs/getting-started.md — 開発者向けセットアップ手順
  • コードの地図: docs/code-map.md — 非エンジニア向け。どのファイル・関数・数値が何を司っているか
  • 構成と依存の向き: docs/architecture.md — エンジニア向け。触ってはいけないものの正
  • 仕様: docs/spec.md — 機能一覧と開発フェーズ
  • サンプルデータ: docs/fixtures.md — DB接続前の開発用データ仕様
  • 開発コンテキスト: CLAUDE.md — Cursor / Claude Code は必ずこれを読む
  • 決定事項: docs/decisions.md — なぜこの仕様なのか
  • API契約: d-watch-api.yaml — OpenAPI 3.0

セットアップ

npm install
cp .env.example .env.local   # 接続情報を記入
npm run dev                  # http://localhost:3000

サンプルデータで開発する(DB接続前)

実DBが用意される前は、lib/fixtures/ のサンプルデータで開発します。

# .env.local
USE_FIXTURES=true

APIルートがサンプルデータを返すため、DBなしで全画面を開発できます。 DB接続時は USE_FIXTURES=false にするだけで、画面側のコードは変更不要です。

用意すべきデータのケース(判定の境界値、L1〜L3、契約フラグ4パターン、空配列など)は docs/fixtures.md を参照してください。

Prismaスキーマの取り込み

DBはTeamWorksが構築します。マイグレーションは作りません。

npx prisma db pull      # 実スキーマを schema.prisma に取り込む
npx prisma generate

取り込んだ内容とテーブル定義書(28テーブル)に食い違いがあれば、実装を止めて確認してください。

この突き合わせだけはM1で早めに実施します(カラム名の食い違いが後から見つかると全画面に波及するため)。 画面開発は引き続き fixture のまま進めます。

テスト

npm test                # 判定ロジックの期待値表テストを含む

判定ロジック(◎○△×、L1〜L3、KPI計算、丸め)は必ずテストで固定します。 CLAUDE.md の 4.1〜4.5 が仕様の正です。


開発フロー

  • ブランチ: main + featureブランチ(GitHub Flow)
  • main への直接pushは禁止(ブランチ保護。必ずPR経由)
  • PRの承認は必須にしていないが、lib/judge/(判定ロジック)を触るPRは相互確認する
  • PRを作るとCI(Lint / テスト / ビルド)が自動で走る。赤いまま放置しない
  • API契約を変える時は d-watch-api.yaml を先に修正する

担当分担

担当 範囲
Daigo(環境) リポジトリ/CI、Prisma接続、点検記録の独自ストア、デプロイ、PRレビュー
たけうち りき(開発) 画面実装(モック移植 + API接続)、APIルート実装

判定ロジック(lib/judge/)は両名で確認します。

Cursor 利用時の注意

  • Privacy Mode を必ずONにする(会社のコードを扱うため)
  • アカウントは会社ドメインのメールアドレスで作成する

責任分界

領域 担当
MySQL DB本体 / データ収集 / サマリ集計バッチ TeamWorks(外部)
APIサーバー / ビューアー / 点検記録 DFA(本リポジトリ)

DBは原則読み取り専用です。書き込みは robot_error_reports / control_error_histories の status / comment / responded_at / resolved_at の4カラムのみ。


現在の状況

M0(環境準備)まで完了。 次は M1(判定ロジック lib/judge/ + 期待値表テスト)と M2(画面実装)。

ディレクトリ 内容
lib/types/ d-watch-api.yaml から起こした型定義
lib/config/ 閾値(90/70/10、猶予30分、L2=2日/L3=3日)。ハードコード禁止
lib/fixtures/ サンプルデータ。境界値・異常系を仕込んである
lib/db/ USE_FIXTURES による fixtures / Prisma の切替
app/api/clean-logs/ 動く見本のAPIルート。 他の一覧APIはこの形を真似する

TeamWorks待ちの項目は docs/spec.md §4 を参照。 待ちの間はモック/スタブで先行し、解消後に差し替えます。