Skip to content

Twil3akine/atcoder-random-picker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AtCoder Random Picker 🚀

AtCoder Random Pickerは、AtCoder の未解決または未提出問題の中から、指定した難易度範囲に合致する問題をランダムで提示する Web サービスです。


概要

  • 難易度範囲を指定して問題をランダムに取得
  • 1回の操作で 1 問を提示
  • 提示された問題の URL へ直接アクセス可能
  • 難易度(Diff)確認用のボタンあり

使い方

  1. 最低 Diff / 最高 Diff を入力
    • 最低 Diff は 0 以上、最高 Diff は最低 Diff 以上で入力してください
  2. 「Pick」ボタンを押す
    • ボタンを押すと問題をランダム取得
    • 押した直後は 2 秒間ボタンが無効化され、ロード中アイコンが回転します
  3. 問題が表示される
    • 問題記号・名前・URL が表示
    • 「Show Difficulty」ボタンで問題の Diff を確認可能
  4. 問題 URL から AtCoder に直接アクセス
    • クリックで問題ページを開き、提出や解説確認が可能です

注意点

  • 入力範囲チェック
    • 最低 Diff が負の値の場合はエラー
    • 最高 Diff が最低 Diff より小さい場合はエラー
  • 1 IP あたり 1 秒に 1 回の制限があります
  • 提示される問題はランダムで選ばれます

技術スタック(簡易情報)

  • フロントエンド: Svelte + Rabee UI
  • バックエンド: Rust + Hyper
  • デプロイ: Frontend → Cloudflare Pages / Backend → Fly.io

開発者向け情報

  • API: GET /
    • クエリ: ?under=<最低Diff>&over=<最高Diff>
    • レスポンス: JSON 形式で問題情報 (Problem 型)
  • フロント側は loading 状態管理でボタン押下後の UI を制御
  • レート制限は IP ごとに 1 秒 1 リクエスト