Skip to content

Commit 91e95a9

Browse files
committed
2 parents 67abc69 + f5c3fc3 commit 91e95a9

File tree

159 files changed

+7446
-3563
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

159 files changed

+7446
-3563
lines changed

README-EN.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
This is a scoring system used in RoboCupJunior's rescue line & maze competition.
33

44
## Supported rules
5-
* 2022 final rules published by International RoboCupJunior Rescue Technical Committee / [Line](https://junior.robocup.org/wp-content/uploads/2022Rules/2022_RescueLine_Rules_final01.pdf) / [Maze](https://junior.robocup.org/wp-content/uploads/2022Rules/2022_RescueMaze_Rules_final01.pdf)
5+
* 2023 final rules published by International RoboCupJunior Rescue Technical Committee / [Line](https://junior.robocup.org/wp-content/uploads/2023/05/RCJRescueLine2023Rules.pdf) / [Maze](https://junior.robocup.org/wp-content/uploads/2023/05/RCJRescueMaze2023Rules.pdf)
66
* 2023 rules published by Japanese Regional Committee for entry leagues / [Line-Entry](https://drive.google.com/file/d/1IYhlUrF7h3xu1rkToTjPjyYoZ9viGTuY/view) / [Maze-Entry](https://drive.google.com/file/d/1uMUyGcmFgs-j8imhE3vgOHX1gyz4r_J8/view?usp=sharing)
77
## Demo
88
The latest version is running. It is built using Docker image and working under OCI arm instance.
@@ -15,7 +15,7 @@ The latest version is running. It is built using Docker image and working under
1515
* RoboCup Junior 2017 Kanto (Japanese local competition)
1616
* RoboCup Junior Japan Open 2017 Gifu-Nakatsugawa (Japanese national competition)
1717

18-
### 2017 rule
18+
### 2017 rules
1919
* RoboCup 2017 Nagoya Japan
2020
* NEST Robocon 2017
2121
* RoboCup Junior 2018 North-Saitama (Japanese local competition)
@@ -29,11 +29,11 @@ The latest version is running. It is built using Docker image and working under
2929
* RoboCup Junior 2018 Kansai (Japanese local competition)
3030
* RoboCup Junior Japan Open 2018 Wakayama (Japanese national competition)
3131

32-
### 2018 rule
32+
### 2018 rules
3333
* RoboCup 2018 Montreal Canada
3434
* Kansai Summer Open Competition 2018
3535

36-
### 2019 rule
36+
### 2019 rules
3737
* RoboCup Junior 2019 Tokai (Japanese local competition)
3838
* RoboCup Junior 2019 Saitama (Japanese local competition)
3939
* RoboCup Junior 2019 Hiroshima (Japanese local competition)
@@ -45,11 +45,23 @@ The latest version is running. It is built using Docker image and working under
4545
* RoboCup Junior 2020 Osaka-Central (Japanese local competition)
4646
* RoboCup Junior 2020 Kansai (Japanese local competition)
4747

48-
### 2021 rule
48+
### 2021 rules
4949
* RoboCup Junior 2021 Tokai (Japanese local competition)
5050
* RoboCupJunior Japan 2021 Online (Japanese national competition)
5151
* RoboCup2021 WORLDWIDE
5252

53+
### 2022 rules
54+
* RoboCup 2022 Bangkok Thailand
55+
56+
### 2023 rules
57+
* RoboCup Junior 2023 Tokai (Japanese local competition)
58+
* RoboCup Junior 2023 Kansai (Japanese local competition)
59+
* RoboCup Junior 2023 Kanto (Japanese local competition)
60+
* RoboCup Junior 2023 Hiroshima (Japanese local competition)
61+
* RoboCup Junior Japan Open 2023 Nagoya (Japanese national competition)
62+
* Torneo Mexicano de Robótica 2023 (Mexican national competition)
63+
* RoboCup 2023 Bordeaux France
64+
5365
## Usage
5466
### Using Docker(Recomended)
5567
Use the [Official docker image](https://hub.docker.com/repository/docker/ryorobo/rcj-cms) is strongly recommended.

README.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,18 @@ Please refer to the [English version README](https://github.com/rrrobo/rcj-rescu
1111
これは,ロボカップジュニアレスキュー競技で用いられる大会管理システムです.
1212

1313
#### 対応ルール
14-
* International RoboCupJunior Rescue Technical Committee により発行された2022最終ルール / [Line](https://junior.robocup.org/wp-content/uploads/2022Rules/2022_RescueLine_Rules_final01.pdf) / [Maze](https://junior.robocup.org/wp-content/uploads/2022Rules/2022_RescueMaze_Rules_final01.pdf)
14+
* International RoboCupJunior Rescue Committee により発行された2023ルール / [Line](https://junior.robocup.org/wp-content/uploads/2023/05/RCJRescueLine2023Rules.pdf) / [Maze](https://junior.robocup.org/wp-content/uploads/2023/05/RCJRescueMaze2023Rules.pdf)
1515
* 日本のレスキュー技術委員会により発行されたレスキュー・ライン・エントリー2023ルール / [レスキュー・ライン・エントリー](https://drive.google.com/file/d/1IYhlUrF7h3xu1rkToTjPjyYoZ9viGTuY/view) / [レスキュー・メイズ・エントリー](https://drive.google.com/file/d/1uMUyGcmFgs-j8imhE3vgOHX1gyz4r_J8/view?usp=sharing)
16-
* *国際2023ルール(Draft)には、2022年12月末を目処に対応いたします。*
1716
--
1817

1918

2019
[大元のプロジェクト](https://github.com/TechnoX/rcj-rescue-scoring)からフォークして開発を進めています.
2120
主な変更点は以下の通りです.
2221

23-
* Line競技において,ワールドリーグと日本リーグを追加
24-
* Line結果画面において,ワールドリーグと日本リーグの結果を横並びで表示
2522
* ユーザー管理機能を強化
2623
* マップの回転機能を追加
2724
* インタビュー機能を追加
28-
* 国際2022ルールに対応
25+
* 国際2023ルールに対応
2926
* ラインのタイルセットの在庫管理に対応
3027
* 大会データーのバックアップ/リストアに対応
3128
* トラブル発生時のハンドオーバーに対応
@@ -42,6 +39,7 @@ Please refer to the [English version README](https://github.com/rrrobo/rcj-rescu
4239
[https://osaka.rcj.cloud](https://osaka.rcj.cloud)
4340

4441
## 更新情報
42+
* [2023/06/04] 国際2023ルールに対応しました。
4543
* [2022/10/09] レスキュー・メイズ・エントリー 2023ルールに対応しました
4644
* [2022/09/17] レスキュー・ライン・エントリー 2023ルールに対応しました
4745
* [2021/10/02] 2022ルールに暫定対応しました.
@@ -98,6 +96,15 @@ Please refer to the [English version README](https://github.com/rrrobo/rcj-rescu
9896
### 2022年ルール対応版
9997
* RoboCup 2022 Bangkok Thailand
10098

99+
### 2023年ルール対応版
100+
* ロボカップジュニア2023 東海ブロック大会
101+
* ロボカップジュニア2023 関東ブロック大会
102+
* ロボカップジュニア2023 関西ブロック大会
103+
* ロボカップジュニア2023 広島ブロック大会
104+
* ロボカップジュニア ジャパンオープン2023 名古屋
105+
* Torneo Mexicano de Robótica 2023 (メキシコ)
106+
* RoboCup 2023 Bordeaux France
107+
101108
## 使用方法
102109
### Dockerを利用(推奨)
103110
[公式Dockerイメージ](https://hub.docker.com/repository/docker/ryorobo/rcj-cms)を用意しています.本イメージからの利用を推奨します.

app.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ async function bootstrap(){
6565
var homeRoute = require('./routes/home')
6666
var lineRoute = require('./routes/line')
6767
var mazeRoute = require('./routes/maze')
68+
var simulationRoute = require('./routes/simulation')
6869
var loginRoute = require('./routes/login')
6970
var adminRoute = require('./routes/admin')
7071
var localesRoute = require('./routes/locales')
@@ -90,6 +91,7 @@ async function bootstrap(){
9091
var apiFieldsRoute = require('./routes/api/fields')
9192
var apiLineRunsRoute = require('./routes/api/lineRuns')
9293
var apiMazeRunsRoute = require('./routes/api/mazeRuns')
94+
var apiSimulationRunsRoute = require('./routes/api/simRuns')
9395
var apiCompetitionsRoute = require('./routes/api/competitions')
9496
var apiUserRoute = require('./routes/api/users')
9597
var apiSignageRoute = require('./routes/api/signage')
@@ -102,6 +104,7 @@ async function bootstrap(){
102104
var apiReservationRoute = require('./routes/api/reservation')
103105
var apiCabinetRoute = require('./routes/api/cabinet')
104106
var apiSurveyRoute = require('./routes/api/survey')
107+
var apiRankingRoute = require('./routes/api/ranking')
105108

106109

107110
//========================================================================
@@ -182,6 +185,7 @@ async function bootstrap(){
182185
app.use('/api/fields', [apiFieldsRoute.public, pass.ensureLoginApi, apiFieldsRoute.private, pass.ensureAdminApi, apiFieldsRoute.admin])
183186
app.use('/api/runs/line', [apiLineRunsRoute.public, pass.ensureLoginApi, apiLineRunsRoute.private, pass.ensureAdminApi, apiLineRunsRoute.admin])
184187
app.use('/api/runs/maze', [apiMazeRunsRoute.public, pass.ensureLoginApi, apiMazeRunsRoute.private, pass.ensureAdminApi, apiMazeRunsRoute.admin])
188+
app.use('/api/runs/simulation', [apiSimulationRunsRoute.public, pass.ensureLoginApi, apiSimulationRunsRoute.private, pass.ensureAdminApi, apiSimulationRunsRoute.admin])
185189
app.use('/api/competitions', [apiCompetitionsRoute.public, pass.ensureLoginApi, apiCompetitionsRoute.private, pass.ensureAdminApi, apiCompetitionsRoute.admin])
186190
app.use('/api/users', [pass.ensureLoginApi, apiUserRoute.admin, pass.ensureSuperApi , apiUserRoute.super])
187191
app.use('/api/signage', [pass.ensureLoginApi, apiSignageRoute.private, pass.ensureAdminApi, apiSignageRoute.admin])
@@ -194,6 +198,7 @@ async function bootstrap(){
194198
app.use('/api/reservation', [apiReservationRoute.public, pass.ensureLoginApi, apiReservationRoute.private, pass.ensureAdminApi, apiReservationRoute.admin])
195199
app.use('/api/cabinet', [apiCabinetRoute.public, pass.ensureLoginApi, apiCabinetRoute.private, pass.ensureAdminApi, apiCabinetRoute.admin])
196200
app.use('/api/survey', [apiSurveyRoute.public, pass.ensureLoginApi, apiSurveyRoute.private, pass.ensureAdminApi, apiSurveyRoute.admin])
201+
app.use('/api/ranking', [apiRankingRoute.public, pass.ensureLoginApi, apiRankingRoute.private, pass.ensureAdminApi, apiRankingRoute.admin])
197202
app.get('/api/ip', (request, response) => response.send(request.ip))
198203

199204

@@ -215,6 +220,7 @@ async function bootstrap(){
215220

216221
app.use('/line', [lineRoute.public, pass.ensureAuthenticated, lineRoute.private, pass.ensureAdmin, lineRoute.admin])
217222
app.use('/maze', [mazeRoute.public, pass.ensureAuthenticated, mazeRoute.private, pass.ensureAdmin, mazeRoute.admin])
223+
app.use('/simulation', [simulationRoute.public, pass.ensureAuthenticated, simulationRoute.private, pass.ensureAdmin, simulationRoute.admin])
218224
app.use('/signage', [pass.ensureAuthenticated, signageRoute.private, pass.ensureAdmin, signageRoute.admin])
219225
app.use('/admin', pass.ensureAdmin, adminRoute)
220226
bullAdapter.setBasePath('/admin/queues')

helper/authLevels.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@ function authCompetition(user, competitionId, level) {
1717
}
1818
module.exports.authCompetition = authCompetition;
1919

20-
function authViewRun(user, run, level) {
20+
function authViewRun(user, run, level, preparation = false) {
2121
let competitionId;
2222
if (run == null) {
2323
return 0;
2424
}
2525

2626
if (user == null) {
27-
if (run.sign.captain != '') {
27+
if (run.sign.captain != '' || run.status == 6) {
28+
if (preparation) return 0;
2829
return 2;
2930
}
30-
if (run.status == 6) return 2;
3131
return 0;
3232
}
3333

@@ -43,10 +43,10 @@ function authViewRun(user, run, level) {
4343
if (authCompetition(user, competitionId, level)) {
4444
return 1;
4545
}
46-
if (run.sign.captain != '') {
46+
if (run.sign.captain != '' || run.status == 6) {
47+
if (preparation) return 0;
4748
return 2;
4849
}
49-
if (run.status == 6) return 2;
5050
return 0;
5151
}
5252
module.exports.authViewRun = authViewRun;

0 commit comments

Comments
 (0)