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

スコア評価サーバリニューアル構想 #10

Open
EndoNrak opened this issue Jul 4, 2022 · 5 comments
Open

スコア評価サーバリニューアル構想 #10

EndoNrak opened this issue Jul 4, 2022 · 5 comments
Assignees

Comments

@EndoNrak
Copy link
Member

EndoNrak commented Jul 4, 2022

イメージはatcoderの評価サーバ
大きな相違点は一つの評価に時間がかかるので、非同期的な処理や評価取り消し機能が必要

要件

  • ユーザーは作成したコードの評価を専用のwebページからフォームに従って依頼でき、評価難易度などのパラメータを設定できる
  • 依頼はgithubへのログインによる認証したリポジトリについてのみ発行可能
  • ユーザーは全ユーザーの過去に実施した評価を含む評価スコアを閲覧できる(スコア降順、評価日時順などにソート可能)
  • ユーザーは評価サーバの稼働状況or評価依頼の渋滞状況を見ることができる
  • ユーザーは自らが発行した依頼済みの評価を中断させることができる
  • ユーザーが依頼できる未実施の評価の個数は2-3(未定)個までであり、それ以上依頼することはできない
  • それぞれの評価依頼について評価待ち、評価中、評価終了などの状態を管理し、ユーザーはその状態を参照できる
  • 運営費は月間1000円以内くらいに抑えたい、、、

関連issue #9

@EndoNrak EndoNrak self-assigned this Jul 4, 2022
@EndoNrak
Copy link
Member Author

EndoNrak commented Jul 5, 2022

システム構成図のイメージ

graph TD
    subgraph AWS
    A1[S3 + cloud front]
    click A1 "https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudfront-serve-static-website/"
    end
    subgraph Client
    A1 --hosting--> C[browser]
    end
 C --authentication--> github
    subgraph AWS
    C --evaluation query--> D[API gateway]
 D --> A6[AWS lambda]
 A7[dynamo DB]
 A6 --state query--> A7
 A7 --state result--> A6
 A5[(Database)]
 A6 --evaluation message--> A2[SQS]
    click A2 "https://aws.amazon.com/jp/sqs/"
        subgraph ECS
            A3["Container"] 
            A4["Container"] 
        end
    A2 --evaluation message--> A3 & A4
    
    A3 & A4 --result--> A5
    C --score query--> D
 D --score query--> A8[AWS lambda]
    A8 --score query--> A5
 A5 --score result--> A8

    end
Loading

@EndoNrak
Copy link
Member Author

EndoNrak commented Jul 5, 2022

ブラウザで評価の進行状況を表示する機能の実現方法はまだ未定になってる

@EndoNrak
Copy link
Member Author

EndoNrak commented Jul 6, 2022

正しくはSQSからキューを取り出すとき、
SQS側からメッセージをpushするのではなく、ECSコンテナ側からpollingすることになる

@EndoNrak
Copy link
Member Author

ファーストリリースに必要な要件

  • ユーザーは作成したコードの評価を専用のwebページからフォームに従って依頼でき、評価難易度などのパラメータを設定できる
  • ユーザーはユーザー自身が過去に実施した評価を含む評価スコアを閲覧できる
  • 運営費は月間1000円以内くらいに抑えたい、、、

@EndoNrak
Copy link
Member Author

evaluation queryのデータモデル

  • github url
  • branch名
  • game_level
  • drop_interval

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