Matz葉がにロボコン 大会運営支援ツール
フロントエンドはこちら
- bun (latest)
上記必要なものをインストールしてください.
データ保存用のdata.json
を用意してください.
{
"entry": [],
"match": []
}
依存関係のインストール
bun i
サーバーの起動 (プロダクション向け)
bun run build
bun start
サーバーの起動 (開発向け)
bun dev
laminne (T. YAMAMOTO) 🔧 🦀 |
kiharu3112 🔧 🦀 |
tufusa 🔧 🦀 |
speak-mentaiko 🔧 |
suzune2741 🔧 |
C4N4242 🔧 |
🔧: KCMS/KCMSFの開発
🦀: 書き込みツール開発
(C) 2023 Poporon Network & Other Contributors
MIT License
POST /entry
エントリーDELETE /entry/{id}
エントリーの取り消しGET /entry
全エントリーの取得GET /match/{matchType}
部門の(予選/本選)対戦表POST /match/{matchType}
部門の対戦表を生成
エントリーします
body: application/json
項目名 | 型(TS表記) | 説明 | 備考 |
---|---|---|---|
teamName | string |
チーム名 | 重複するとエラー |
members | [string, string] |
メンバーの名前 | 小学生部門: 1 or 2人 / オープン部門: 1人 |
isMultiWalk | boolean |
ロボットが多足歩行型か | |
category | "Elementary" or "Open" (union) |
出場する部門 |
{
"id": "39440930485098",
"teamName": "ニカ.reverse()",
"members": ["木下竹千代", "織田幸村"],
"isMultiWalk": false,
"category": "Elementary"
}
TOO_MANY_MEMBERS
: メンバー数が多すぎる
{
"error": "TOO_MANY_MEMBERS"
}
エントリーを取り消します
パスパラメータ
id
:string
- 取り消すエントリーのID
body: application/json
{}
取り消しました. ※レスポンスボディはありません
全エントリーを取得します
[
{
"id": "39440930485098",
"teamName": "ニカ.reverse()",
"members": ["木下竹千代", "織田幸村"],
"isMultiWalk": false,
"category": "Elementary"
}
]
各部門の本選、予選対戦表を取得します
パスパラメータ
matchType
:"primary"|"final"
- 部門名
[
{
// 試合ID
"id": "43945095",
// 試合するチームのID
"teams": [
{
"id": "30495883404",
"teamName": "ニカ.reverse()",
"isMultiWalk": false,
"category": "Elementary"
},
{
"id": "93454093",
"teamName": "カニ.reverse()",
"isMultiWalk": false,
"category": "Elementary"
}
],
// 対戦の種類
"matchType": "primary",
// チームごとの得点 (teamsと同じ順で入る)
"points": [2, 5],
"courseIndex": 1,
// チームごとのゴール時間(秒)
"time": [50, 61],
// 勝利チームのID
"winnerID": "93454093"
}
]
UNKNOWN_CATEGORY
: 存在しないカテゴリUNKNOWN_MATCH_TYPE
: 存在しない対戦種類
各部門の本選、予選対戦表を生成します ※ 既に生成済みの場合は上書きされます ※ オープン部門の予選対戦表は生成できません(エラーになります)
パスパラメータ
matchType
:"final"|"primary"
- 部門名
category
:"elementary"|"open"
- カテゴリ
{}
[
{
// 試合ID
"id": "43945095",
// 試合するチームのID
"teams": {
// コート左側チーム
"left": {
"id": "30495883404",
"teamName": "ニカ.reverse()",
"isMultiWalk": false,
"category": "Elementary"
},
// コート右側チーム
"right": {
"id": "93454093",
"teamName": "カニ.reverse()",
"isMultiWalk": false,
"category": "Elementary"
}
},
// 対戦の種類
"matchType": "primary",
// 対戦結果
"results": {
// 左チームの結果
"left": {
"teamID": "30495883404",
"points": 0,
"time": 300
},
// 右チームの結果
"right": {
"teamID": "93454093",
"points": 7,
"time": 60
}
},
// コース番号(0始まり)
"courseIndex": 1,
// 勝利チームのID
"winnerID": "93454093"
}
]
UNKNOWN_CATEGORY
: 存在しないカテゴリUNKNOWN_MATCH_TYPE
: 存在しない対戦種類
指定した試合の結果を入力します.
パスパラメータ
- id:
string
- 試合ID
body: application/json
{
"results": {
"left": {
"teamID": "8e28115e-7fa4-4359-8a68-02d1c9f7b8f6",
"points": 0,
"time": 300
},
"right": {
"teamID": "31dface0-a745-43f1-8bd6-375e0082f5b1",
"points": 7,
"time": 60
}
}
}
更新しました
{
"id": "8ce4ea11-acd8-4c2d-a13c-09eb24d091fd",
"teams": {
"left": {
"id": "8e28115e-7fa4-4359-8a68-02d1c9f7b8f6",
"teamName": "チーム0",
"isMultiWalk": true,
"category": "Open"
},
"right": {
"id": "31dface0-a745-43f1-8bd6-375e0082f5b1",
"teamName": "チーム1",
"isMultiWalk": true,
"category": "Elementary"
}
},
"matchType": "primary",
"courseIndex": 0,
"results": {
"left": {
"teamID": "8e28115e-7fa4-4359-8a68-02d1c9f7b8f6",
"points": 0,
"time": 300
},
"right": {
"teamID": "31dface0-a745-43f1-8bd6-375e0082f5b1",
"points": 7,
"time": 60
}
}
}