本リポジトリは、Project-Open代替となるモダンなクラウドネイティブERPシステムの仕様書群を管理しています。
- レガシーシステムからの脱却
- クラウドネイティブな設計による運用効率向上
- 日本法制度(インボイス制度、J-SOX)への完全対応
- MVPアプローチによる段階的実装
ITDO_ERP3/
├── integrated-specs/ # 統合仕様書(最新版)
│ ├── 00-overview/ # システム概要
│ ├── 01-core/ # コア仕様
│ ├── 02-modules/ # モジュール仕様
│ ├── 03-infrastructure/ # 基盤仕様
│ └── 04-implementation/ # 実装仕様
│
├── PlanO/ # Plan O仕様書(参考)
├── PlanS/ # Plan S仕様書(参考)
│
├── erp-requirements-spec.md # 元要求仕様書
├── erp-requirements-spec-review.md # レビュー結果
└── erp-integrated-requirements-spec.md # 統合要求仕様書
| カテゴリ | ドキュメント | 説明 |
|---|---|---|
| 概要 | system-overview.md | システム全体像、MVP定義、ロードマップ |
| 統合 | integration-spec.md | モジュール間連携、API設計 |
| データ | data-governance-spec.md | データガバナンス体制、品質管理 |
| セキュリティ | security-spec.md | セキュリティ要件、実装方針 |
| PM | pm-module-spec.md | プロジェクト管理機能 |
| 財務 | fi-module-spec.md | 財務管理機能 |
詳細はintegrated-specs/README.mdを参照してください。
- ✅ プロジェクト管理基本機能
- ✅ タイムシート・原価計算
- ✅ インボイス対応請求管理
- ✅ 基本的な契約管理
- ✅ 会計システム連携
- 📋 販売管理(受注・与信)
- 📋 人事管理
- 📋 CRM基本機能
- 📋 BIダッシュボード
- 📋 ガバナンス・リスク管理
- 📋 AI/ML予測分析
- 📋 高度な自動化
- フロントエンド: React 18+, Next.js 14+, TypeScript
- バックエンド: Node.js, NestJS, TypeScript
- データベース: PostgreSQL 15+, MongoDB, Redis
- インフラ: AWS (EKS, RDS, S3), Docker, Kubernetes
- CI/CD: GitHub Actions, ArgoCD
| 指標 | 目標値 | 測定時期 |
|---|---|---|
| システム稼働率 | 99.9% | MVP完了時 |
| ユーザー満足度 | 80%以上 | 各フェーズ後 |
| 業務効率改善 | 20%以上 | 1年後 |
| プロジェクト原価精度 | 誤差1%以内 | 6ヶ月後 |
仕様書の改善提案は、Issueまたはプルリクエストでお願いします。
Next.js ベースの UI PoC については、以下の手順でエンドツーエンド検証と Podman スモークを実行できます。
-
Playwright E2E テスト
cd ui-poc npm install npm run test:e2e- Projects / Timesheets / Compliance / Telemetry など主要画面の UI 操作とフォールバック動作を確認します。
- Podman 上で API を起動した状態で検証する場合は
npm run test:e2e:liveを利用し、E2E_EXPECT_API=trueを設定すると API 成功を前提としたアサーションを有効にできます。
-
Podman ライブスモーク
TIMEOUT_SECONDS=180 scripts/poc_live_smoke.sh --tests-only
- Podman Compose で pm-service / RabbitMQ / Redis / MinIO / Grafana を起動し、ライブ API に対する Playwright シナリオとメトリクス監視を自動実行します。
- Slack Webhook を設定すると失敗通知も送信されます。詳細は
scripts/.env.poc_live_smoke.exampleと PoC Live Smoke Tests を参照してください。
-
CI 監視
- GitHub Actions の PoC Live Smoke ワークフローでは MinIO 有効/無効の 2 パターンで上記スモークを毎日/手動で実行できます。
- 実行結果と生成アーティファクト(
logs/poc-smoke/)を確認し、ダッシュボードやアラート定義に差異がないかチェックしてください。
Projects 一覧の共有メッセージは以下の CLI で生成できます。
make share-projects ARGS="--url https://example.com/projects?status=active"cd ui-poc && PROJECTS_TITLE="Weekly Projects" npm run share:projects -- --url https://example.com/projects?status=active --notes "17 件をレビュー"cd ui-poc && npm run share:projects -- --url https://example.com/projects?status=active --format json
PROJECTS_URL / PROJECTS_TITLE / PROJECTS_NOTES の各環境変数を上書きすることでサンプルスクリプトの出力を変更できます。
--format markdown / --format json を指定すると、それぞれ Markdown 形式・JSON 形式で出力できます。--count <number> で対象件数を bullet に追加し、--out <path> で生成結果をファイル保存できます。--post <webhook-url> を併用すると Slack Incoming Webhook へメッセージを直接送信します(複数指定可)。--config share.config.json を指定すると、URL やタイトルなどの既定値を JSON ファイルから読み込めます。Slack 送信時には --ensure-ok で応答本文が ok か検証でき、--retry <count> / --retry-delay <ms> / --retry-backoff <value> / --retry-max-delay <ms> / --retry-jitter <ms> / --respect-retry-after / --dry-run / --validate-config を指定すると失敗時の再送挙動の制御や安全確認が行えます。--fetch-metrics を併用すると Projects API から KPI を取得し、JSON 出力やメッセージへ件数サマリを付与できます(--projects-api-base / --projects-api-token / --projects-api-tenant / --projects-api-timeout で接続情報を上書き可能)。
config の post 配列にオブジェクトを定義すると、Webhook の URL ごとに retry / retryDelay / retryBackoff / retryMaxDelay / retryJitter / ensure-ok / respect-retry-after などを上書きでき、送信先ごとに異なるリトライ方針を適用できます。config に templates を定義すると、--template <name> で共通プリセットを呼び出しつつ CLI 引数で部分的に上書きできます。--audit-log <path> を指定すると Webhook 投稿の成功/失敗履歴を JSON で保存します。
CLI は --config で読み込んだ設定を実行前に検証し、不正値が含まれている場合はエラーで終了します。CI などで事前確認したい場合は --validate-config を単体で実行すると検証結果と統計が表示されます。
テンプレートの管理には --list-templates で定義済みテンプレートを一覧表示し、--remove-template <name> で特定テンプレートを削除できます(どちらも --config 指定が必要です)。
GitHub Actions には週次スケジュール (Projects Slack Share Check) を追加し、サンプルメッセージの生成が失敗しないかを継続的に確認しています。
CKM チャットのリアルタイム配信を検証するための最小サンプルを server/ に用意しています。
cd server
npm install # 初回のみ
PORT=4100 npm run start:ssehttp://localhost:4100/eventsをcurlなどで購読すると 2 秒ごとにタイムスタンプが配信されます。- ハートビートは 10 秒間隔で送信され、
X-Accel-Buffering: noによりバッファリングを抑制しています。
# Redis を docker/docker-compose.ckm.yml などで起動しておく
CKM_REDIS_URL=redis://localhost:7637 \
CKM_STREAM_KEY=ckm:events \
CKM_STREAM_GROUP=ckm-demo \
npm run start:redis-consumer- スクリプト起動時に
XGROUP CREATE(MKSTREAM付き)でコンシューマグループを作成します。 - 別ターミナルから
redis-cli -u redis://localhost:7637 XADD ckm:events * type message body "hello"を実行すると、コンシューマがXREADGROUP経由でメッセージを取得しXACKします。 - 複数ノード検証時は
CKM_STREAM_CONSUMERを変更して複数プロセスを起動してください。
本仕様書は社内利用を前提としています。外部公開の際は事前承認が必要です。
プロジェクトに関するお問い合わせは、プロジェクトマネージャーまでご連絡ください。
最終更新: 2025年8月23日