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