Skip to content

fushan787/New-project

Repository files navigation

Google Workspace Progress Board MVP

Google Spreadsheetをデータ保管先にし、Google Apps ScriptのWebアプリとして動く社内向け進捗管理MVPです。外部Webサーバー、外部DB、Firebase、Cloud Runは不要です。

構成

  • Code.gs: Webアプリ入口、初期化、タスク更新API
  • Auth.gs: Google Workspaceユーザー確認、PJメンバー権限チェック
  • DataService.gs: Spreadsheet読み書き、集計、サンプルデータ作成
  • AuditService.gs: 操作ログ
  • Validation.gs: 入力チェック
  • NotificationService.gs: Gmail通知
  • IssueComments シート: 課題コメント履歴
  • Archives シート: 完全アーカイブした削除済みプロジェクトのスナップショット
  • index.html: HTML Service入口
  • styles.html: 現代風UIのCSS
  • script.html: 画面描画とApps Script呼び出し
  • appsscript.json: Apps Scriptマニフェスト

セットアップ

  1. Google Spreadsheetを新規作成します。
  2. メニューから 拡張機能 > Apps Script を開きます。
  3. このフォルダ内の .gs.htmlappsscript.json をApps Scriptプロジェクトへ追加します。
  4. Apps Scriptエディタで setupSampleSpreadsheet を一度実行します。
  5. デプロイ > 新しいデプロイ > ウェブアプリ を選びます。
  6. 実行ユーザーは 自分、アクセスできるユーザーは 組織内のユーザー にします。
  7. 発行されたWebアプリURLを開きます。

セキュリティ方針

  • Google Workspaceログイン必須
  • Settings.allowed_domain で社内ドメインを制限
  • Members シートに登録されたプロジェクトメンバーのみ閲覧可能
  • データ取得・更新時にApps Scriptサーバー側で権限チェック
  • Spreadsheet本体は管理者のみ編集推奨
  • Webアプリは管理者として実行し、Spreadsheetを一般ユーザーへ直接共有しない構成を推奨
  • 操作ログを AuditLogs に保存
  • 入力値はサーバー側で検証・サニタイズ

次に追加するとよい機能

  • 横断レポートのCSV出力
  • アーカイブデータの閲覧専用画面
  • 外部システムとの連携(Slack/Teams等)

追加機能の反映メモ

  • appsscript.jsonhttps://www.googleapis.com/auth/script.scriptapp を追加しています。期限超過の定期通知トリガー作成に必要です。
  • 通知設定は Settings シートに保存されます。既存シートを使う場合、画面の 通知 タブで保存すると不足キーが自動追加されます。
  • 期限超過通知は 通知 タブの保存後、期限超過通知を有効化 を押すと日次トリガーが作成されます。
  • 通知テンプレートでは {{task_name}}, {{issue_title}}, {{project_name}}, {{actor_email}}, {{overdue_tasks}}, {{overdue_issues}} などのプレースホルダーを利用できます。
  • フェーズ削除は、そのフェーズ配下に有効なタスクがある場合はブロックされます。先にタスクを削除または別フェーズへ移動してください。
  • タスクは タスク タブの 移動 から別フェーズへ移動できます。
  • 復元 タブでは、現在開いているプロジェクト内の削除済みフェーズ、タスク、課題を復元できます。
  • 通知テンプレートのプレビューは、現在ログイン中のユーザー宛にサンプルタスクの内容で送信されます。
  • 管理者はサイドバーの 削除済みPJ から、削除済みプロジェクトを復元できます。
  • タスク一覧で複数タスクをチェックし、選択タスクを移動 から一括でフェーズ移動できます。
  • ガントチャート上では、予定バーを別の日付セルへドラッグすると、期間幅を保ったまま開始日・終了日を移動できます。
  • 課題の コメント からコメント履歴を確認し、新しいコメントを追加できます。
  • 通知プレビューは task, issue, overdue から種類を選択できます。
  • 課題コメントは作成者本人またはPJ管理者が編集・削除できます。
  • ガントチャートの予定バー中央をドラッグすると移動、左右端をドラッグすると開始日/終了日をリサイズできます。
  • 横断 タブで、アクセス可能な全プロジェクトの進捗・遅延・課題を集計できます。
  • 削除済みプロジェクトは 削除済みPJ または 復元 タブから復元できます。完全アーカイブ を実行すると Archives シートへスナップショットを保存し、復元一覧から除外されます。
  • 課題コメントで @user@domain.com 形式で記述すると、該当ユーザーへメンション通知メールが送信されます(自分自身へのメンションは除外)。
  • タスク編集モーダルの「先行タスク」で依存するタスクを選択すると、ガントチャート上に青い矢印で依存関係が表示されます。
  • サイドドロワー形式の詳細表示: タスク名または課題名をクリックすると、画面右側からスライドパネルが表示され、詳細情報(概要・ブロッカー・期限等)を確認できます。
  • 概要(summary)フィールドの追加: タスクおよび課題に「概要」フィールドが追加されました。既存のシートを利用している場合、Tasks および Issues シートのヘッダー行に summary 列を手動で追加してください。
  • 既存シートへの depends_on 列追加: 既存の Tasks シートを利用している場合、シート1行目のヘッダー行に depends_on 列を手動で追加してください。新規セットアップ(setupSampleSpreadsheet 実行)では自動で追加されます。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors