Quá trình kết nối
sequenceDiagram
participant N as Người dùng
participant C as Máy con
participant S as Máy chủ
participant U as Giao diện
N->>C: Mở link tới máy chủ
C->>S: Gởi yêu cầu kết nối
Note over C, S: Gởi yêu cầu Get đến /
S->>+U: Thêm vào danh sách
Note right of U: Máy con sẽ được thêm vào danh sách các máy đã kết nối
U-->>-S: Đã hiển thị xong
S-->>C: Gởi trả trang web
Note over S, C: Hiển thị view Test
C-->>N: Hiển thị trang web
Quá trình đăng nhập
sequenceDiagram
participant N as Người dùng
participant C as Máy con
participant S as Máy chủ
participant U as Giao diện
N->>C: Nhấn nút Bắt đầu
Note over N, C: Nhập tên, lớp, SBD
C->>S: Gởi yêu cầu kết nối
Note over C, S: Gởi yêu cầu Post đến /begin
alt Bắt đầu rồi
S-->>C: Trả về "ok"
C-->>N: Bắt đầu làm bài
else Chưa bắt đầu
S-->>+C: Trả về "waitting"
loop Mỗi 1 giây
C->>-S: Đã bắt đầu chưa?
alt Bắt đầu rồi
S-->>C: Trả về "ok"
C-->>N: Bắt đầu làm bài
else Chưa bắt đầu
S-->>C: Trả về "waitting"
C-->>N: Hiển thị trạng thái chờ
end
end
end
S-->>C: Xác nhận kết nối
C-->>N: Hiển thị trang web
Quá trình làm bài
sequenceDiagram
participant N as Người dùng
participant C as Máy con
participant S as Máy chủ
participant U as Giao diện
N->>C: Chọn 1 đáp án
C->>S: Gởi toàn bộ lựa chọn
Note over C, S: Gởi yêu cầu Post đến /update
S->>U: Cập nhật dữ liệu làm bài
U-->>S: OK
S-->>C: Xác nhận cập nhật
Quá trình kết thúc
sequenceDiagram
participant N as Người dùng
participant C as Máy con
participant S as Máy chủ
participant U as Giao diện
N->>C: Hết giờ làm bài
C->>S: Gởi yêu cầu xem điểm
alt Cho xem điểm
S-->>C: Trả về "ok"
C-->>N: Cho xem điểm
Note over C, N: Có đáp án thì cho xem luôn
else Không cho xem điểm
S-->>C: Trả về "false"
C-->>N: Hiển thị thông báo
end