Skip to content

Commit 50fa247

Browse files
committed
Update README
Signed-off-by: Aoi Kondo <[email protected]>
1 parent 33888cd commit 50fa247

File tree

2 files changed

+67
-72
lines changed

2 files changed

+67
-72
lines changed

readme.md

+67-72
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 動作環境
22
- Docker
3-
- Docker compose v2.18.1
4-
- golang 1.20.2 darwin/amd64
3+
- Docker compose v2.27.1
4+
- go version go1.22.4 linux/amd64
55

66
# 1. 初期設定
77
## 1-1. 必要ソフトウェアのインストール
@@ -12,92 +12,87 @@
1212
gitコマンドやzip形式でのダウンロードなどを使用して、repositoryをダウンロードしてください。
1313

1414
## 1-2. 各種変数の変更
15-
(開発が間に合わなかったので)各種変数を以下のように手動で変更してください
15+
各種変数を以下のように変更してください
1616
`/docker/nginx/conf.d``server name:``localhost`を使用するサーバのIPアドレスに変更。
1717
`/frontend/pages/index.tsx`の変数`domain``localhost`から使用するサーバのIPアドレスに変更。  
1818

1919
# 2. 起動方法
20-
## 2-1. 問題セットの設定
21-
```$ go run ./cmd/cli/main.go init```
22-
設定する問題の数を聞かれるので、問題数を設定します。
23-
この操作により、設定ファイルが/judgelight/settings以下に作成されます。
20+
## 2-1. ソフトウェアの実行
21+
dockerとバックエンド用のgoプログラムを以下のコマンドで走らせます。
22+
```$ cd cmd/backend && go run main.go```
23+
```$ docker compose up```
24+
(それぞれ別プロセスのターミナル)で実行してください。
25+
26+
## 2-2. 問題セットの設定
27+
```$ cd cmd/cli/ && go run main.go set f setting.yaml```
28+
この操作により、`setting.yaml`に記述した設定事項がデータベースに記録されます.
2429
その後、/judgelight/settingsディレクトリ内のファイルを変更し、問題の設定を行います。
2530
問題の設定についての詳細は「問題設定について」をご覧ください。
2631

27-
問題の設定後、以下のコマンドを実行しDockerに問題内容を反映させます。
28-
```$ go run ./cmd/cli/main.go set```
32+
# 問題設定について
33+
設定ファイルとしてYAMLファイルを採用しています.YAMLファイルにて設定できる項目は以下の通りです.
34+
```
35+
contest_infomation: //コンテスト情報を設定できます
36+
title: "Contest Title" //コンテストのタイトルを設定できます
37+
start_time: "2023-01-01 00:00:00" //コンテストの開始時間を設定できます
38+
end_time: "2023-01-01 00:00:00" //コンテストの終了時刻を設定できます
2939
30-
## 2-2. ソフトウェアの実行
31-
その後、dockerとバックエンド用のgoプログラムを以下のコマンドで走らせます。
32-
```$ go run ./cmd/backend/main.go```
33-
```$ docker compose up```
34-
(それぞれ別プロセスのターミナル)で実行してください。
40+
problem: //問題情報を設定できます
41+
- number: 1 //第一問目に関する設定です
42+
title: "Problem Title" //問題のタイトルを設定できます
43+
score: 100 //問題の得点を設定できます
44+
limit_execute_time: 10 //実行制限時間を設定できます
45+
limit_execute_memory: 256 //実行メモリの制限を設定できます
46+
description: "Problem Description" //問題文を設定できます
47+
input_description: "Input Description" //入力に関する説明を設定できます
48+
output_description: "Output Description" //出力に関する説明を設定できます
3549
36-
# 問題の設定方法
37-
## settings.yamlの設定
38-
Webページに表示する問題の数を`/settings/settings.yaml`内で指定する必要があります。
39-
六行目の`number-of-problem`の値を設定したい問題数に応じて変更してください。
40-
なお、その他の設定項目は将来的に実装予定の項目であり、変更する必要はありません。(変更してもプログラムには何の影響も及ぼしません)
50+
initial_code: |- //ページに表示されるコードを設定できます
51+
#include<stdio.h>
52+
int main(void){
53+
int a,b;
54+
scanf("%d %d",&a,&b);
55+
printf("%d\n",a+b);
56+
return 0;
57+
}
4158
42-
## 問題設定ディレクトリについて
43-
本プログラムは、`/settings`以下のディレクトリ/ファイルを変更することにより、問題を設定することができるようになっています。
44-
ここでは、例として`/settings/example`内のディレクトリを参考に説明します。
59+
testcases: //テストケースを設定できます
60+
- input: |-
61+
1 2
62+
output: |-
63+
3
4564
46-
`example`は、以下のようなディレクトリ構成になっています。
47-
```
48-
.
49-
├── 1
50-
│   ├── examplecase
51-
│   │   └── 1
52-
│   │   ├── input.txt
53-
│   │   └── output.txt
54-
│   ├── problem.txt
55-
│   └── testcase
56-
│   └── 1
57-
│   ├── input.txt
58-
│   └── output.txt
59-
└── 2
60-
├── examplecase
61-
│   ├── 1
62-
│   │   ├── input.txt
63-
│   │   └── output.txt
64-
│   ├── 2
65-
│   │   ├── input.txt
66-
│   │   └── output.txt
67-
│   └── 3
68-
│   ├── input.txt
69-
│   └── output.txt
70-
├── problem.txt
71-
└── testcase
72-
├── 1
73-
│   ├── input.txt
74-
│   └── output.txt
75-
├── 2
76-
│   ├── input.txt
77-
│   └── output.txt
78-
└── 3
79-
├── input.txt
80-
└── output.txt
65+
- input: |-
66+
5 6
67+
output: |-
68+
11
69+
70+
secretcases: //非公開のテストケースを設定できます
71+
- input: |-
72+
2 2
73+
output: |-
74+
4
75+
76+
- input: |-
77+
0 10
78+
output: |-
79+
10
80+
81+
- input: |-
82+
22 2
83+
output: |-
84+
24
8185
```
82-
上記において、`./1`は問題番号1番に関するディレクトリであり、`./2`は問題番号2番に関するディレクトリです。
83-
それぞれに存在する`problem.txt`は各問題の問題文を格納しています。(txtファイルの内容がそのまま改行含めてWebページに表示されます)
84-
各問題以下に存在する`examplecase``testcase`ディレクトリは、テストケースを格納するディレクトリです。このテストケースはいくらでも増やすことができ、`./2`のように、3個以上設定することも可能です。
86+
8587

8688
## examplecaseとtestcaseの違い
87-
`examplecase`内に設定した入力と出力の対応は、Webページに表示されます。
88-
`testcase`内に設定した入力と出力の対応は、Webページには表示されず、秘匿されます。
89+
`testcase`内に設定した入力と出力の対応は、Webページに表示されます。
90+
`secretcase`内に設定した入力と出力の対応は、Webページには表示されず、秘匿されます。
8991
どちらもdocker内でAC/WAの判定に使用されることは違いはありません。**全てのテストケースが**ACで通った場合のみ、ACとなります。
9092

9193
# 結果の確認方法
92-
結果は、全てサーバ内に保存され、`/result`の中にcsv形式で書き込まれます。
93-
ファイル名は、画面上部で入力した`学籍番号.csv`となり、`ACした問題番号 , AC`の形で保存されます。
94-
これらは全てACした場合にのみ書き込まれるため、万が一全ての提出ファイルがWAの場合はそもそもファイル自体が作成されないので、ご注意ください。
95-
96-
# F&Q
97-
- プログラムが全てCEとなる
98-
→Webページ上部に存在する学籍番号入力欄に、学籍番号を入力してください。
99-
- 提出したプログラムがたまにCEになる
100-
→Dockerの処理の都合上、一人のユーザが連投するとCEを吐き出すようになっています。ジャッジ中はsubmitを連打しないようにお願いします。
94+
結果は、全てサーバ内に保存されます.結果を出力するときは以下のコマンドを入力してください.
95+
```$ cd cmd/cli && go run main.go total -f <出力したいEXCELファイルのパス>```
10196

10297
# License
103-
MIT (c) 2023 [@admidori](https://github.com/admidori)
98+
MIT (c) 2023-2024 [@admidori](https://github.com/admidori)

test/set/problem.yaml setting.yaml

File renamed without changes.

0 commit comments

Comments
 (0)