技術スタック
| フロントエンド | Vue.js 3(CDN版) |
| バックエンド | Google Apps Script (GAS) コンテナバインド型プロジェクト |
| データベース | Google スプレッドシート |
| CSSフレームワーク | Font Awesome、独自のカスタムCSS |
スプレッドシートのデータ(DB)
| AppConfig | 【アプリの設定】 タイトル、URL、LINE通知用、名前の表示、掲示板用、管理者名、メールアドレス、トリガー用など |
| Members | 【メンバー情報】 A:メンバーID、B:氏名(本名)、C:かな、D:メールアドレス、E:電話番号、F:ニックネーム、G:状態管理(有効/無効/ゲスト)、H:所属グループ(複数の場合はカンマ区切り)、I:パスワード(シートのメニューでハッシュ化)、J:権限(member/admin/guest) |
| FormConfig | 【回答一覧で表示するフォームの回答】 A:configId、B:フォームの回答名、C:formURL、D:シート名、E:フォームの名前ID、F:フォームのメールID、G:formstatus(終了だったら、メール画面に表示しない)、H:回答リセット日時、I:公開設定(非公開の場合は、memberには表示しない) |
| Templates | 【メールのテンプレート設定】 |
| MailRecords | 【メールの送信履歴と、予約送信のログ保管】 |
| Schedule | 【マイページ:今後の予定で表示される】 A:date、B:time、C:title、D:place、E:target(対象者のIDがカンマ区切りで入る。手入力の場合は全員にしておけばいい)、F:memo、G:eventId(イベントと紐づけ用)、H:scheduleId(手入力の場合は、自動で入力される) |
| Events | 【イベントデータ】 A:イベントID、B:イベント名、C:候補日リスト、D:ステータス(終了/募集中)、E:詳細、F:AllowedMembers(対象者ID)、G:メール通知(対象者IDが入っていて、メールを送ったらsentに上書き)、H:場所 |
| EventAnswers | 【イベント回答データ】 イベント回答データがたまっていく |
| Posts | 【掲示板の投稿データ】(タスクのとき:statusがsolvedのときは完了・タスク終了と同義) A:post_id、B:parent_id、C:member_id、D:name、E:date、F:title、G:body、H:status(solvedロック/active/deleted物理削除ではない)、I:attachments、J:updated_at(編集日)、K:is_pinned(TRUEの時ピン留) |
| Posts_Archive | 【掲示板のアーカイブデータ(過去ログ)】 トリガーで、12か月たったものから、そのままアーカイブへ移動(物理移動) |
| Reactions | 【掲示板のリアクションのデータ】 こちらはアーカイブしない。 |
| UnknownAnswers | フォームの回答で、メンバーシートと一致しない人のリスト |
| HelpConfig | 各画面のヘルプモーダルのデータ |
GASファイル構成(フルコード版)
| Index.html | HTML、CSS、scriptがすべて含まれる ・画面遷移管理: currentView 変数によるSPA構成 ・表示分け(権限)により、メニューの中身を変更 ・機能ごとに、ローディングメッセージの変更 |
| App_Main.gs | アプリの基本処理 |
| Core_Common.gs | 共通・ヘルパー関数など |
| App_Triggers.gs | トリガー |
| Feature_MyPage.gs | マイページ |
| Feature_Form.gs | 回答一覧 |
| Feature_Mail.gs | メール作成・送信 |
| Feature_Vote.gs | 日程調整・スケジュール |
| Feature_Board.gs | 掲示板・簡易タスク |
| Feature_Docs.gs | 資料一覧 |