# bkdnOJ 2.0 - v.05.27 * **User**: http://1509.ddns.net:3000/ * Tài khoản: `tester02` * Mật khẩu: `alksdjflajslkdfj` * Có thể tạo thêm qua giao diện web * **Staff**: * ~~http://1509.ddns.net:8000/admin/~~ -> http://1509.ddns.net:3000/admin/ * Hoặc: ![](https://i.imgur.com/MSdYYSK.png) * Tài khoản: `admin` * Mật khẩu: `admin` ### Chức năng đã thêm * Trang Admin mới: * Read: list và detail Problem, Submission, Judge. * Create: Thêm mới Problem từ Zip * Edit, Delete: Problem Chức năng sẽ thêm tiếp theo: * Hoàn thiện một vài thao tác khác (edit, delete) chưa có xử lý logic * Phân quyền * Contest ## Admin. Thêm Problem mới từ Zip: Truy cập vào trang quản lý tài nguyên Problem: http://1509.ddns.net:3000/admin/problem/ ![](https://i.imgur.com/N2OVouF.png) Chọn một tệp tin Zip với nút `Choose File` và nhấn `Add (upload File)` để bắt đầu thêm mới. Tệp Zip nhìn chung sẽ có định dạng như sau: * Chứa một file cấu hình để thiết lập Problem. Hệ thống sẽ tìm file có đuôi là `['.ini', '.conf']` để đọc cấu hình. Một zip chỉ nên chứa 1 file này. * File cấu hình sẽ gồm các dòng trống, các dòng comment và các dòng `Key=Value`. Ví dụ: ``` ; Đây là comment code = ProblemA name = Tiêu đề Problem A ; Optional time_limit = 2.5 memory_limit = 250000 allow_submit = 1 icpc=1 ``` Cụ thể, các key-value ở trên sẽ được gán vào trong đối tượng Problem theo bảng như sau: | Các key | Kiểu value |Thuộc tính tương ứng| Mô tả | |-|-|-|-| | `['shortname', 'code', 'codename', 'probid']` | String ký tự chữ, số và `-_`. |`shortname`| Code định danh Problem | |`['name', 'title', 'problem', 'code', 'codename']`|String|`title`|Tiêu đề Problem| |`['time_limit', 'timelimit', 'time', 'tl']`|Số thực|`time_limit`|Giới hạn thời gian đơn vị giây. Nếu không có mặc định là `1.0`| |`['memory_limit', 'memorylimit', 'mem_limit', 'memlimit', 'memory', 'mem', 'ml']`| Số nguyên | `memory_limit`| Giới hạn bộ nhớ đơn vị KB. Mặc định: `262144` (256MB).| |`['short_circuit', 'skip_non_ac', 'icpc']`| Boolean | `short_circuit`| Dừng chấm nếu có test sai. Mặc định `0`. | |`['partial', 'allow_partial', 'ioi']`| Boolean | `partial`| Cho phép ăn điểm từng test đúng. Mặc định `0`. | |`['is_published', 'published', 'public', 'allow_submit']` | Boolean | `is_published` | Cho phép User bình thường nhìn thấy và nộp bài | Ngoài ra, nếu có lỗi sẽ có thông báo lỗi tương ứng cho người quản trị. ![](https://i.imgur.com/Szfbk1T.png) ![](https://i.imgur.com/AuqFvpG.png) * Chứa một file `.pdf` làm đề bài. Hệ thống sẽ tìm những file có tên sau: `['statement.pdf', 'problem.pdf', 'prob.pdf']`, và lựa chọn file được tìm thấy đầu tiên. * Chứa những cặp file `(/a/b/c.in, /a/b/c.out)`, hai file cùng một cặp in/out nếu có chung tiền tố `/a/b/c`. * Các file in là file có đuôi `('.in', '.input', '.inp', '.i', )` * Các file out là file có đuôi ` ('.out', '.output', '.ans', '.a', )` ## Admin. Xóa Problem ## Admin. Xem Submission và Judge