---
# System prepended metadata

title: bkdnOJ 2.0 - v.05.27

---

# 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