Skip to content

仕様設計

YAGITA Yugo edited this page Nov 6, 2022 · 10 revisions

用語集

  • ホスト PC : スライド投影する PC
  • 参加者(ユーザ) : リモコン (スマホ)
  • ポインター : スライドを切り替えるゆーざ (ポイントをするひと)
  • ポインタ渡し : スピーカーを他人に譲るやーつ
  • null pointer exception : ルーム終了時に発生する (TBD)
  • 時刻: 絶対
  • 時間: 相対

ホスト (PC)

ルームの作成

  • メニューバーの「ルームの作成」がクリックされる
    • ホスト PC 上のデスクトップアプリがサーバに、ルームの作成を依頼
    • サーバから ホスト PC に ルーム ID と が返却される
  • ホスト PC がルームに接続された
    • QR コードが表示される
    • URL
      • クエリパラメータには token が含まれる
    • QR コード / URL を発表メンバに共有する
  • 発表中
    • サーバからポインタの位置情報を受け取って表示
  • 発表終了したらルームを「終了ボタン」が押される

image

ルーム参加者の管理

ポインタ渡しのための機能

  • メニューバーの「参加者一覧を表示」が押される (TBD)

参加者 (mobile)

  • ホストから 共有された QR コード / URL を読み取る
  • 表示名を入力する
    • LocalStorage にある場合は自動入力される
    • 表示名を LocalStorage に格納する
  • 「入室ボタン」が押される

image

参加者の機能

  • タイマーの残り時間設定入力
  • タイマーのスタート/ストップ
  • タイマーを初期値
  • ポインター
    • 押されると画面の原点になる
    • 長押しで表示
  • スライドをすすめる
  • スライドを戻す
  • 操作無効化ボタン (TBD)
  • スライド画面 (TBD)

タイマーの仕様

データ

  • inputted(入力時間): 相対、秒数
  • finishAt(終了時刻): 絶対、Unix Time
  • restAtPaused(一時停止時点での残り時間): 相対、秒数
状態(状態名と表示に必要なデータ)
  • READY: inputted
  • RUNNING: finishAt
  • PAUSED: restAtPaused
状態遷移と条件
  • START: 「スタート」ボタンを押す
  • PAUSE: 「一時停止」ボタンを押す
  • RESUME: 「再開」ボタンを押す
  • RESET: 「リセット」ボタンを押す
  • OVER: 時間経過
状態遷移図
stateDiagram-v2
  [*] --> READY
  READY --> RUNNING : START
  RUNNING --> PAUSED : PAUSE
  PAUSED --> RUNNING : RESUME
  PAUSED --> READY : RESET
  RUNNING --> READY : OVER
Loading