Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.0.0で目指す仕様 #21

Open
okunokentaro opened this issue Sep 4, 2023 · 4 comments
Open

1.0.0で目指す仕様 #21

okunokentaro opened this issue Sep 4, 2023 · 4 comments
Assignees

Comments

@okunokentaro
Copy link
Member

#20 まで実装を進めて、機能量産の体制や脳内のアイデアが一定まとまってきたので、そろそろ行き当たりばったりではなく仕様を考える。

@okunokentaro
Copy link
Member Author

okunokentaro commented Sep 4, 2023

Draft

より洗練された。


画面構成

機能で分けずにロールで分ける。

  • オーナー画面 (owner)
    • 管理者の操作用
    • Pin必要
  • アリーナ画面 (arena)
    • 前面などに表示する用途
    • 全員表示可
  • 登壇者画面 (presenter)
    • 登壇者用
    • PresenterId必要
  • ゲスト画面 (guest)
    • 観覧参加者用
    • 誰でもアクセス可能

フェーズ

イベントの開催状況はフェーズ (phase) によって分類され、それぞれのフェーズに応じてそれぞれの画面は何を映すかが決まる。

アリーナ作成前

  • オーナー画面
    • アリーナ作成
  • アリーナ画面・登壇者画面・ゲスト画面
    • アリーナ作成前表示

アリーナ作成後

  • オーナー画面
    • アリーナ情報編集、タイムテーブル確認
  • アリーナ画面
    • 参加用QRコード表示、会費支払QRコード表示、開始時間、ハッシュタグ表示
  • 登壇者画面
    • ゲスト画面にリダイレクト
    • エントリー後は表示可能 登壇内容の編集
  • ゲスト画面
    • エントリーフォーム表示

イベント開始

  • オーナー画面
    • ルーレットボタンの権限付与
  • アリーナ画面
    • ルーレット表示
  • 登壇者画面
    • 権限付与された登壇者画面にはルーレット開始ボタン
  • ゲスト画面
    • タイムテーブル等

プレゼンテーション開始

  • オーナー画面
    • タイマー開始・一時停止ボタン
  • アリーナ画面
    • タイマー表示
  • 登壇者画面
    • タイマー表示
  • ゲスト画面
    • タイマー表示・タイムテーブル切り替え

登壇者切り替え

  • オーナー画面
    • ルーレットボタンの権限付与
    • 抽選対象外の登壇者の確認
  • アリーナ画面
    • ルーレット表示
  • 登壇者画面
    • 権限付与された登壇者画面にはルーレット開始ボタン
  • ゲスト画面
    • タイムテーブル等

投票フェーズ

  • オーナー画面
    • 投票状況の確認
  • アリーナ画面
    • タイムテーブルの表示
  • 登壇者画面
    • 投票とコメント
  • ゲスト画面
    • 投票とコメント

結果発表フェーズ

  • オーナー画面
    • 各種操作
    • レポートの出力
  • アリーナ画面
    • 得票結果の表示
    • 会費のQRコード表示
  • 登壇者画面
    • 得票結果の表示
    • 自分の登壇情報の編集
  • ゲスト画面
    • 得票結果の表示

@okunokentaro
Copy link
Member Author

okunokentaro commented Sep 4, 2023

Domainの制定

role

user

  • 全員
  • なんらかの行動でuserIdを発行

host

  • サーバー起動者
  • 起動時に発行
  • なれるか?
    • Yes
      • 起動する
  • やめられるか?
    • No

owner

  • 管理者
  • PINコード入力時に発行
  • なれるか?
    • Yes
      • 管理画面にてPINコードを入力
  • やめられるか?
    • No

guest

  • 管理者以外
  • コメント時に発行
  • コメントしなければただの閲覧者
  • なれるか?
    • Yes
      • コメント時
      • presenterのエントリー解除時
  • やめられるか?
    • Yes
      • エントリー時presenterになる

presenter

  • 発表者
  • ownerguestのうち発表する者
  • エントリー時に発行
  • なれるか?
    • Yes
      • エントリー時
  • やめられるか?
    • Yes
      • エントリー解除時guestになる

対応

rowがcolになれるか?
colになれるのはrowの誰か?

user host owner guest presenter
user -
host -
owner -
guest -
presenter -

@okunokentaro
Copy link
Member Author

  • host, ownerを包含して画面上では「管理者」表記をする
  • guest, presenteruserのうちentriesに含まれているものをpresenterとする
  • presenterは「発表者」表記をする

@okunokentaro
Copy link
Member Author

ライフサイクル

Lightning Arenaでは数々のライフサイクルを管理する。

Server Lifecycle

  • サーバーを起動してから終了するまで
  • これはサーバープロセスがあるかどうかなので、状態管理しない

Arena Lifecycle

  • アリーナが作成されてからサーバーが終了するまで
    • アリーナ作成は新規作成だけじゃなくバックアップの復元やアーカイブからの復元がある
  • サーバー終了以外に明示的にアリーナを破棄する手段は提供しない

Event State

  • Arenaインスタンスはかならず1つのEvent Stateを持つ
  • EventPreparation
    • エントリー受付、登壇者抽選、あるいは登壇者タイムテーブルの掲示など
  • Presentation
    • プレゼンテーション、質疑応答、次の登壇者抽選
  • Break
    • 休憩終了時間の掲示、トイレや自販機情報などの掲示
  • Voting
    • 投票
  • EventConclusion
    • 結果発表、あるいは感想、締めの挨拶、アンケートQRコード掲示、支払いQRコード掲示
  • EventEnd
    • 退場中の掲示、アンケートQRコード掲示、支払いQRコード掲示、管理者向けレポートのダウンロード、アリーナアーカイブのダウンロード

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant