Skip to content
New issue

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

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

Already on GitHub? # 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コード掲示、管理者向けレポートのダウンロード、アリーナアーカイブのダウンロード

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

No branches or pull requests

1 participant