技術スタック

フロントエンド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.htmlHTML、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資料一覧