Skip to content
Nguyễn Tuấn Dũng edited this page Mar 28, 2020 · 24 revisions

Giới thiệu

Wafter là lớp thứ hai của MIRAI - một hệ thống nhận, phân công chấm và trả bài trong thời gian thực.

Node.js CI

[Hestia] -> [Wafter] -> {[Kon], ...}

  • Phiên bản hiện tại: 1.15.0.75
  • Phiên bản xem trước: 1.20

Cảnh báo: Wafter vẫn đang trong giai đoạn thử nghiệm, chưa được kiểm định đầy đủ để sử dụng trong các kì thi thật.

Mục đích

Wafter đóng vai trò là người giám thị, nhận bài từ thí sinh qua frontend Hestia, dọc phách, gửi bài tới máy chấm Kon, ghép phách và trả về kết quả. Về cơ bản, Wafter không có quyền can thiệp vào quá trình chấm, trong khi Kon không thể biết người nộp bài nên không thể sửa kết quả gửi đi một cách tùy ý. Việc phân vùng như này cho phép hạn chế sự can thiệp của con người vào quá trình chấm bài, đồng thời cho phép mở rộng quy mô kỳ thi một cách tùy ý mà không bị hạn chế về khả năng tính toán của từng máy chấm.

Cấu trúc

Về mặt kĩ thuật, Wafter là:

  • Trung tâm chính của backend
  • Nơi quản lý CSDL, kon, ...
  • Nơi nhận request của frontend (Hestia) thông qua Web API
  • Nơi phân tán khả năng xử lý bài thi qua các Microservices chấm bài (Kon)
  • Nơi thu thập kết quả chấm từ Kon
  • Nơi trả dữ liệu từ database về cho Hestia và hiển thị kết quả

Cài đặt

Chú ý: Wafter đang cố gắng tương thích với phiên bản Themis mới nhất (1.9). Tất cả những phiên bản cũ hơn không được đảm bảo hoạt động.

Dành cho người dùng

Bạn có thể tải trực tiếp bản chương trình thực thi được nén dưới dạng file .zip tại đây.

Dành cho nhà phát triển phần mềm

Bạn có thể tải trực tiếp toàn bộ mã nguồn được phát hành kèm cùng từng phiên bản chương trình thực thi tại đây. Ngoài ra, bạn có thể clone reposity này, qua 3 bước sau:

  1. git clone repo này
  2. npm install để tải về thư viện cần thiết để chạy
  3. npm start để khởi chạy

Về hướng dẫn build, xem tại Building

Hướng dẫn sử dụng (dành cho người dùng)

Chi tiết hướng dẫn sử dụng có thể tìm thấy tại [đây].

Bản quyền

MIT (c) Vườn Ươm A0

Bản quyền (c) 2018 Vườn Ươm A0

Quyền hạn được chính thức cấp, mà không có bất kỳ ràng buộc, cho bất kỳ cá nhân hoặc tổ chức có được bản sao của phần mềm này và các tài liệu liên quan (sẽ được gọi chung từ đây là "Phần mềm"), có quyền tác động không ràng buộc tới Phần mềm, trong đó bao gồm nhưng không giới hạn quyền được sử dụng, sao chép, thay đổi, sát nhập, phát hành, phân phối, đăng ký giấy phép phụ, và/hoặc bán các bản sao của Phần mềm, và cho phép các cá nhân hoặc tổ chức khác được cấp quyền hạn làm như vậy, dựa theo những điều kiện cụ thể sau:

Điều khoản về bản quyền trên và quyền hành này sẽ phải được đính kèm trong tất cả các bản sao hoặc các phần quan trọng của Phần mềm.

PHẦN MỀM ĐƯỢC PHÁT HÀNH NGUYÊN VẸN, MÀ KHÔNG CÓ BẤT KỲ SỰ ĐẢM BẢO DƯỚI BẤT KỲ HÌNH THỨC NÀO, DIỄN TẢ HOẶC HÀM Ý, TRONG ĐÓ BAO GỒM NHƯNG KHÔNG GIỚI HẠN TỚI SỰ ĐẢM BẢO VỀ KHẢ NĂNG THƯƠNG MẠI HOẶC LỢI ÍCH TỪ MỘT MỤC ĐÍCH CỤ THỂ VÀ KHÔNG VI PHẠM. TRONG BẤT KỲ HOÀN CẢNH NÀO, CÁC TÁC GIẢ VÀ CÁC CÁ NHÂN HOẶC TỔ CHỨC NẮM GIỮ BẢN QUYỀN SẼ KHÔNG CHỊU TRÁCH NHIỆM VỀ BẤT KỲ CÁO BUỘC, THIỆT HẠI HOẶC CÁC NGHĨA VỤ NÀO, DÙ TRONG TRƯỜNG HỢP VI PHẠM ĐIỀU KHOẢN HỢP ĐỒNG, VI PHẠM PHÁP LÝ HOẶC CÁC HÌNH THỨC VI PHẠM KHÁC PHÁT SINH TỪ VIỆC CÓ HOẶC KHÔNG CÓ SỰ LIÊN QUAN VỚI PHẦN MỀM HOẶC VIỆC SỬ DỤNG PHẦN MỀM VỚI BẤT KỲ MỤC ĐÍCH NÀO.

Copyrights (c) 2018 Vườn Ươm A0

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Clone this wiki locally