🏗️ 環境設計書

Zoom Memo Automation システム環境構成

1. プロジェクト構成

フォルダ構造

zoom-memo-automation/ ├── 0.docs/ # ドキュメント用フォルダ │ ├── index.html # 開発ダッシュボード │ ├── functional-design.html # 機能設計書 │ ├── environment-design.html # 環境設計書(本ファイル) │ ├── test-specification.html # テスト仕様書 │ ├── claude.md # Claude Code対話記録 │ └── zoom-marketplace-setup-detailed.md # Zoom API設定詳細手順 │ ├── 1.src/ # プログラムソース用フォルダ │ ├── config/ # 設定ファイル │ │ └── index.js # メイン設定(環境変数、プロンプト) │ ├── services/ # サービス層 │ │ ├── zoomService.js # Zoom API連携 │ │ ├── audioSummaryService.js # 音声処理・要約 │ │ ├── videoStorageService.js # 動画保存 │ │ ├── googleDriveService.js # Google Drive操作 │ │ ├── slackService.js # Slack通知 │ │ ├── aiService.js # Gemini AI処理 │ │ └── sampleDataService.js # テスト用データ │ ├── utils/ # ユーティリティ │ │ ├── errorCodes.js # エラーコード体系(50コード) │ │ ├── executionLogger.js # Google Drive実行ログ │ │ ├── errorHandler.js # エラーハンドリング │ │ └── claudeDocUpdater.js # ドキュメント自動更新 │ ├── index.js # メインアプリケーション │ └── check-env.js # 環境変数チェック │ ├── 2.tests/ # テスト関連 │ ├── data/ # テストデータ・結果 │ │ ├── live-api-test-results-*.json # APIテスト結果 │ │ └── test-config.json # テスト設定 │ └── tools/ # テストツール類 │ ├── api-connection-test.js # API接続テスト │ ├── production-env-test.js # 本番環境テスト │ └── run-live-api-tests.js # ライブAPIテスト │ ├── 3.operations/ # 運用関連の仕組み │ ├── src/ # 運用スクリプト │ │ ├── chat-backup.js # Claude対話記録バックアップ │ │ ├── monitor.js # システム監視 │ │ ├── save-conversation.js # Cipher対話保存 │ │ └── update-design-docs.js # ドキュメント自動更新 │ ├── configs/ # 設定ファイル │ │ └── chat-backup.json # バックアップ設定 │ ├── backups/ # バックアップファイル │ └── logs/ # ログファイル │ ├── app.log # アプリケーションログ │ └── error.log # エラーログ │ ├── api/ # Vercel APIエンドポイント │ ├── health-check.js # ヘルスチェック │ ├── monitor-recordings-gdrive-test.js # TC203/204/205テスト │ ├── monitor-recordings.js # 本番録画監視 │ ├── production-throughput-test.js # PT001本番スルーテスト │ ├── test-zoom.js # Zoom認証・録画テスト │ └── claude-*.js # Claude関連API │ ├── data/ # データベース・キャッシュ │ ├── cipher.db* # Cipher対話記録DB │ ├── package.json # Node.js依存関係 ├── vercel.json # Vercel設定(maxDuration: 300秒) ├── CLAUDE.md # プロジェクトガイドライン ├── README.md # プロジェクト説明 └── REDEPLOY.md # デプロイメント手順

2. システム構成図

【5ステップ処理フロー】 1. [Zoom Cloud Recording] → [定期監視(30分間隔)] ↓ 2. [録画ダウンロード] → [音声ファイル(M4A)+ 動画ファイル(MP4)] ↓ 3. [Google Gemini 2.5 Pro] → [文字起こし + AI要約生成] ↓ 4. [Google Drive API] → [録画ファイル保存 + 共有リンク生成] ↓ 5. [Slack Web API] → [要約 + 録画リンク投稿] 【実行環境】 [Node.js アプリケーション (Vercel)] ← [Cron監視]

3. 開発環境

ローカル開発環境 設定済み

技術スタック

Node.js
v18.x LTS
Express.js
v4.18.x (Vercel Functions)
Google AI
Gemini 2.5 Pro API
Google APIs
Drive v3, Service Account

開発ツール

ツール 用途 状態
Claude Code AI開発支援 設定済み
Git バージョン管理 設定済み
ESLint コード品質 未設定
Prettier コード整形 未設定

4. 本番環境

Vercel デプロイメント 稼働中

設定項目

項目 設定値 状態
プロジェクト名 zoom-memo-automation 設定済み
フレームワーク Serverless Functions 設定済み
Node.js バージョン 18.x 設定済み
maxDuration 300秒(5分制限) 設定済み
Functions制限 12ファンクション(Hobbyプラン) 対応済み

環境変数

変数名 説明 状態
ZOOM_API_KEY Zoom API キー(Zoom Marketplace) 設定済み
ZOOM_API_SECRET Zoom API シークレット 設定済み
ZOOM_ACCOUNT_ID Zoom アカウントID 設定済み
GOOGLE_AI_API_KEY Google AI Studio API キー 設定済み
SLACK_BOT_TOKEN Slack Bot トークン(xoxb-で始まる) 設定済み
SLACK_CHANNEL_ID Slack チャンネルID(Cで始まる) 設定済み
GOOGLE_DRIVE_CREDENTIALS Google Drive サービスアカウント認証情報(JSON) 設定済み
GOOGLE_DRIVE_ORG_DOMAIN Google Drive 組織ドメイン(grtx.jp) 設定済み
GOOGLE_DRIVE_RECORDINGS_FOLDER 録画保存用フォルダID(動的生成) 設定済み

5. デプロイメント環境

Vercel Production 設定済み

  • ✅ プロジェクト連携(GitHub → Vercel)
  • ✅ 環境変数設定(本番用)
  • ✅ ドメイン設定
  • ✅ API Functions デプロイ
  • ✅ 自動デプロイメント(main ブランチ)

GitHub Repository 設定済み

  • ✅ リポジトリ作成・初期設定
  • ✅ Secrets設定(環境変数)
  • ✅ Actions設定(CI/CD)
  • ✅ Issues・Project管理

6. 外部サービス連携

Zoom Platform 設定済み

  • ✅ Zoom Marketplace アプリケーション登録
  • ✅ OAuth 2.0 Account-level App設定
  • ✅ Cloud Recording API 権限設定
  • ✅ API Key & Secret取得

Google AI Platform 設定済み

  • ✅ Google AI Studio API キー取得
  • ✅ Gemini 2.5 Pro アクセス確認
  • ✅ 動的モデル選択機能実装

Google Drive Platform 設定済み

  • ✅ Google Cloud Console プロジェクト設定
  • ✅ サービスアカウント作成 + JSON認証キー
  • ✅ Drive API有効化
  • ✅ 組織ドメイン共有権限設定(grtx.jp)
  • ✅ supportsAllDrives: true 設定
  • ✅ 動的フォルダ生成・共有リンク作成

Slack Platform 設定済み

  • ✅ Slack Bot アプリケーション作成
  • ✅ Bot Token (xoxb-) 取得
  • ✅ チャンネル権限設定
  • ✅ ブロックUI形式メッセージ送信機能

追加システム統合

  • ExecutionLogger - Google Drive構造化ログシステム
  • ErrorCodes - 50コード体系(ZM/GD/AI/SL/SY)
  • Cipher MCP - 対話記録自動保存システム
  • Claude Code - AI開発支援統合

6. テスト・デプロイ環境

自動テストシステム 稼働中

テストケース 実行環境 検証内容 状態
PT001本番スルーテスト Vercel本番環境 End-to-End統合テスト(228.8秒) 成功
TC203/204/205 Vercel本番環境 音声処理・動画保存・Slack投稿 成功
Zoom認証テスト Vercel本番環境 Server-to-Server OAuth認証 成功
JWT認証フォールバック Vercel本番環境 レガシー認証システム確認 成功

デプロイメント 自動化済み

方式 トリガー 処理内容
GitHub → Vercel Push to main 自動デプロイメント(15-30秒)
Claude Code統合 コード変更 git commit → push → デプロイ
実行ログ保存 テスト実行 Google Drive自動保存

7. 監視・ログ

実行ログシステム 稼働中

システム監視 設定済み

ログ管理体系

ログ種別 保存先 形式 保持期間
実行ログ Google Drive JSON構造化 永続
システムログ Vercel Functions Console出力 7日間
エラーログ Google Drive + Slack JSON + 通知 永続
対話記録 Cipher DB + バックアップ Markdown 永続

8. 現在のシステム状況(2025-08-08)

実装完了項目 稼働準備完了

✅ 認証・API統合

  • Zoom OAuth認証 - Server-to-Server OAuth完全実装
  • Google AI統合 - Gemini 2.5 Pro、動的モデル選択
  • Google Drive統合 - サービスアカウント、共有ドライブ対応
  • Slack統合 - Bot API、ブロックUI形式

✅ システム機能

  • End-to-End処理 - 録画監視→文字起こし→要約→保存→通知
  • ExecutionLogger - Google Drive構造化ログシステム
  • エラーハンドリング - 50コードエラー体系、自動リトライ
  • メモリ最適化 - ファイル操作なし、完全バッファ処理

✅ 運用・テスト体制

  • 自動テスト - PT001/TC203-205完全実装
  • 本番環境統合 - Vercel Hobbyプラン最適化
  • 対話記録自動化 - Cipher MCP統合
  • ドキュメント自動更新 - HTML形式、進捗可視化

技術的成果

項目 実装内容 技術的特徴
処理時間 PT001: 228.8秒成功 Vercel 300秒制限内で安定稼働
エラー対応 50コード体系実装 ZM/GD/AI/SL/SY分類、詳細トラブルシューティング
ログシステム Google Drive統合 JSON構造化、Slack通知連携
開発効率 Claude Code統合 自動コミット・デプロイ・テスト実行

次期改善予定 検討中

  • Gemini AI処理最適化 - 97秒タイムアウト対策
  • 大容量音声ファイル対応 - 分割処理実装
  • 録画削除機能 - 本番環境での自動削除有効化
  • スケール対応 - Vercel Pro版移行検討
最終更新: | 自動更新: 有効 | システム稼働準備完了: 2025-08-08