想定ユースケースの洗いだし
計画の序盤から番号づけしない方がいいのではないか仮説
モックアップ一覧
ユーザーページ
ルールブックページ
記録照会ページ
記録詳細ページ
申請一覧ページ
記録申請ページ
記録追記ページ
その他ページ
ページの配色計画
名前とそのIDに対応する概念の説明を分離すると良い?
重要な雑記
土台
統一条件指定ボックスの実装
データ構造の定義
ゲームタイトル
ボス
コピー能力
タグ
準記録
半記録
ユーザー
ルールブック
Sidemenu Componentの定義
Page Componentの定義
主要機能
記録の投稿
申請
フロントエンド
記録申請ページ
統一条件指定ボックス
入力制約をつける。
ルールブックへアクセスできる
URL入力欄の横ボタンをクリックすると、タグと走者メモを記述できる欄が現れる。
ユーザー定義タグを入力する
ユーザー定義タグの補完が効く
通知機能を実装する
サーバーに申請内容データを送信する
バックエンドの実装
POST:/api/prerecords/{ID}/
申請内容(準記録)をデータベースに書き込む。
(このデータを審査前記録, 準記録:Prerecordとする。)
Discordへ通知を行う。
メールサーバーへ通知を送信する。
追記認証
フロントエンド
申請一覧ページの実装
申請一覧に関する情報をAPIから得る。
担当レギュレーションを表示する
担当レギュレーションに来ている審査前記録の一覧を表示する。
記録追記ページの実装
処理を排他的にしたい
他の誰かが編集している時にはアクセスを拒否したいところ。
準記録の詳細情報をAPIから得る。
ヘッダの実装
統一条件指定ボックス
入力内容のチェック欄
単発カテゴリの場合のタイム入力欄の実装
入力が適切であればチェックを示す。
通しカテゴリの場合
登場ボス全てについて入力を要求する
登場ボスとタイム入力欄を並べて表示
全て入力されていれば、チェックを入れる。
コメントの欄を設置する(markdown)
それらの入力内容をまとめ、サーバーへ提出する。
バックエンドの実装
GET:/api/users/{uid}/prerecords
ユーザーの管理権限情報を得る
準記録のリストをゲームモードの条件付きで得る。
PUT:/api/users/{uid}/prerecords/{prerecord-id}
記録が承認された時、追記された申請内容を記録用テーブルに追加する。
insert-record
この追記された申請内容のことを審査後記録, 単に 記録という。
審査前記録にあるユーザ定義タグの名前情報をタグのIDへ変換する。
既存のものはIDに変換する。
新規のものは新しくタグを作る。
元々の準記録のデータをテーブルから削除する。
remove-record
ユーザーの通知用テーブルを更新する。
insert-notification
記録が承認された時と、記録が拒否された時それぞれの場合について。
記録の閲覧
記録照会ページの実装
統一条件指定ボックス
お気に入りの条件指定
ボスカテゴリタグが存在しているかしていないかを判定
通し記録を表示させるケース
通しの記録表示機能
通しの記録を上位3位について表示する機能
通しの記録を次の100件まで表示する機能
クリックすると、対応する記録詳細ページへアクセスできる
理論値表示機能
各ボスに対して、一位の記録の概要(半記録)を得る。
それらを並べて表示する機能
記録をクリックすると対応する記録詳細ページへアクセスできる。
単発記録表示機能
通しの記録を上位3位について表示する機能
通しの記録を次の100件まで表示する機能
クリックすると、対応する記録詳細ページへアクセスできる
記録詳細ページの実装
渡された記録を表示できる
バックエンドの実装
GET:/api/records?tags=[T]
指定したタグを持つ記録に関して、概要を返す。
記録概要, 半記録:semirecordと呼ぶ。
渡された検索条件をもとに記録用テーブルから所望の記録の集合を得る。
記録の集合に関して、全てのIDを名前に変換する。
言語設定を考慮する必要がある。
ルールブック
フロントエンド
ルールブックページの実装
前のページに戻る機能
ルールブックの最終更新日時の表示
ルールブックのタイトルに対応したアイコンを用意する
ルールブックの各項目を並べて表示する機能
バックエンド
PUT: /api/v1/games/{short_gamename/ID}/rulebook
JSONでルールブックを制定できる。
管理者権限
冪等性がある
GET: /api/v1/games/{short_gamename/ID}/rulebook
ルールブックの内容を得る
ログイン処理の実装
POST: /api/users/
ユーザーを作成する。
ユーザーの確認
ユーザーページの実装
ユーザー情報編集機能の実装
バックエンド
GET: /api/users/{uid}
サーバーがユーザー情報を提供する
通知機能の実装
通知一覧画面の確認
GET: /api/users/{uid}/notifications
GET: /api/users/{uid}/notifications/{notification-id}
他ユーザーに通知する。
管理者権限
POST: /api/users/{uid}/notifications
メール通知設定
GET: /api/users/{uid}/notifylist