!!! このページについて ::授業中にメモで使った,Notionを丸写ししたページです. ::既存のモジュール分けに上書きするのが不安だったから,「改」という形にしました. !!!グローバルデータ *ユーザ情報オブジェクト **認証トークン(トークン自体は"firebase.auth()"に保持) ***ユーザ名 ***メルアド ***パスワード **設定 ***プリセットデータ *記録データオブジェクト **各回の計測結果情報 ***集中時間 ***休憩時間 ***繰り返し回数 ***タグID ***メモ ***記録開始日時 ***ユーザ名 !!!モジュール分け !!1.メインスクリプトモジュール :担当 ::みんな :概要 ::DBからユーザ情報,記録情報を取得してVuexにストアしておく. ::ルーティングを管理する. :機能 ::細やかな部分の処理を記述する. !!2.ログインモジュール :担当 ::佐藤 :概要 ::アカウントをすでに持っている人が,ログインを行う. :機能 ::ユーザの入力を受け付ける. *メールアドレス *パスワード ::入力のバリデーションを行う. ::→ 例えば,メールアドレスの形式に当てはまっていなかったら,エラーメッセージを出す. ::「ログインボタン」が押されたらFirebaseと通信を行い,ユーザ認証をする. ::認証が通ったらユーザとしてログインする. ::認証が通らなかったら,その旨を伝える. ::「新規登録ボタン」が押されたら,新規登録画面に遷移する. !!3.新規登録モジュール :担当 ::佐藤 :概要 ::アカウントを新規作成する. :機能 ::ユーザの入力を受け付ける. *ユーザ名 *メールアドレス *パスワード ::入力が正しいか確認する. ::正しくない場合はエラーメッセージを出す. ::「新規登録ボタン」が押されたら,入力情報をFirebaseに送り,認証が通ればアカウントを作成する. ::その後にDBにユーザ情報を新規登録する. !!4.ホームレイアウトモジュール :担当 ::みんな :概要 ::サイドバー,メイン画面のレイアウトを管理する. :機能 ::ホーム画面のレイアウトを定義する. !!5.サイドバーモジュール :担当 ::佐藤 :概要 ::各ページへ遷移するためのリンクを持ったグローバルメニューバー. :機能 ::サイドバーを定義する. !!6.メイン画面モジュール :担当 ::みんな :概要 ::メインで表示する画面の基盤 :機能 ::基盤 !!7.タイマー設定モジュール :担当 ::田頭・品木 :概要 ::計測時間を設定する. ::設定したデータをタイマー画面へ渡して遷移する. :機能 ::計測時間を設定する. ::→ 計測設定オブジェクト *集中時間 *休憩時間 *繰り返し回数 ::「プリセットボタン」を押したら,設定済みのプリセットが適用される. ::ログイン前 ::システム規定のプリセットを表示する. ::ログイン後 ::ユーザデータからプリセット情報を取得して表示する. ::「決定ボタン」を押したら,タイマー画面モジュールに計測設定オブジェクトを送り遷移する. !! 8.タイマー画面モジュール :担当 ::田頭・佐藤・品木 :概要 ::タイマーを実行・停止させる. ::計測が終了したら記録データを記録モジュールへ送る. :機能 ::受け取った計測設定オブジェクトのデータを元に,計測時間を表示する. ::「startボタン」が押されたら,計測を開始してサウンドモジュールにフラグ(”start”)を渡す. ::「stopボタン」が押されたら,計測を中断してサウンドモジュールにフラグ(”stop”)を渡す. ::「resetボタン」を表示する(中断中のみ). ::→「resetボタン」が押されたら,すべての計測を終了してカウントを設定後の時間に戻す(5m-3m * 3とかだったら,05:00の表示にする).サウンドモジュールにフラグ(”reset”)を渡す. ::「保存ボタン」を表示する(中断中のみ). ::→「保存ボタン」が押されたら,計測を終了してそれまでの計測時間を算出し,計測結果オブジェクトを生成する.サウンドモジュール(”finish”)にフラグを渡す. ::集中・休憩のすべてのカウントが無事に終了したら,計測結果オブジェクトを生成して,サウンドエフェクトモジュールにフラグ(”finish”)を渡す. ::計測結果オブジェクトが生成されたら,タイマー記録画面へデータを渡して遷移する. ::→計測結果オブジェクト *集中時間 *休憩時間 *(繰り返し回数)←削る ::非計測中に「歯車ボタン(Ready状態でのみ表示)」が押されたら,タイマー設定画面に遷移する. :関数 !! 9.サウンドエフェクトモジュール :担当 ::三合堂・佐藤 :概要 ::他モジュールから値を受け取って,受け取った値に応じてサウンドエフェクトを再生する. :機能 ::以下の条件が満たされて他モジュールからフラグを受け取った場合,それに対応するサウンドエフェクトを再生する. *集中,休憩でカウントが”0”になった場合 *cancel(仮)ボタンが押された場合 *startボタンが押されたとき *stopボタンが押されたとき *保存ボタンが押されたとき ::フラグ: ::”start”:スタート,リスタートの音を鳴らす. ::”stop”:ストップの音を鳴らす. ::“reset”:リセットの音を鳴らす. ::“finish”:(cancel仮ボタン)終了して保存の音を鳴らす. !! 10.タイマー記録モジュール :担当 ::品木・佐藤・田頭 :概要 ::計測記録を作成する. ::「保存ボタン」が押されたら,結果記録オブジェクトを生成し,DBへデータを渡す. ::その後タイマー画面へ遷移する(タイマー画面では元の設定が適用されている). :機能 ::受け取ったデータから合計時間を算出して,表示する. ::計測結果をそのまま表示させて,編集を可能にする(処理が厳しそうなら各々の合計時間だけ表示させる). ::形式:計測結果オブジェクトそのまま. ::計測結果に加えて,ユーザの入力を受け付ける. *タグID *記録メモ ::「保存ボタン」が押されたら,結果記録オブジェクトを作成する. ::その後データをDBに登録する. ::→結果記録オブジェクト *各集中時間 *各休憩時間 *(繰り返し回数)←削る *タグID *記録メモ *記録日時(計測時の日時情報を加工したもの) *2022/0521/2322/00:西暦/日付/時間/秒数 *ユーザID(一意に定まるもの) `` 結果記録オブジェクト = { [ { 集中: 300, 休憩: 60, }, { 集中: 400, 休憩: 60, }, ], タグID: red, 記録メモ: "memo", 記録日時: 20220521232200, ユーザID: "132425694", } `` ::DBに登録が完了したら,タイマー画面に自動遷移する. ::結果記録オブジェクトを元に初期設定情報を取得し,タイマー画面に渡す. ::記録を保存する前に他のアクションがあった場合,何かしらの方法で警告を発する. :関数 !! 11.ダッシュボードモジュール(表示) :担当 ::佐藤 :概要 ::ユーザの記録データとユーザデータを表示する. :機能 ::ログイン前にこの画面に遷移してきたら,ログイン画面にリダイレクトする. ::ログインしていたら,この画面に遷移してきた時にまずユーザ情報と記録データをDBから取得する.(mountedフック) ::ユーザの過去の記録情報を表示する. ::+直近数日分(?)のデータから棒グラフを生成して表示する(?) ::+総勉強時間を表示する(?) ::過去の記録を一覧で確認する. ::一回の取得で10個ほど? *メモの表示 *その記録の回の記録内容を表示(ループごとの記録) !! 12.ダッシュボードモジュール(編集) :担当 ::佐藤 :概要 ::タイマープリセットを編集する. ::過去の記録を消去(編集)する. :機能 ::タイマープリセット表示部分で,ユーザがプリセットの設定を編集できる. ::記録タイムラインで,表示された過去の記録を消去(編集)できる. ::スクロールで移動. !! 13-1.時計モジュール(データ加工) :担当 ::三合堂・佐藤 :概要 ::現在時刻を取得して,表示可能な形に加工して出力する. :機能 ::Date()オブジェクトを用いて現在時刻を取得して,一定秒ごとに時間を更新する. ::持っているデータを時間表示モジュールに渡す. !! 13-2.時計モジュール(データ表示) :担当 ::三合堂・佐藤 :概要 ::受け取った値を表示する. :機能 ::受け取った値を任意の形式で描画する.