đặt vấn đề, các yêu cầu giao tiếp bên ngoài, các yêu cầu phi chức năng, chức năng chính của hệ thống và sơ đồ usecase. Yêu cầu cho ứng dụng Mô tả chi tiết bài toán Đề tài “Phát triển ứng dụng thi trắc nghiệm trực tuyến dùng kiến trúc Microservices” đáp ứng những yêu cầu sau: Admin: có quyền cao nhất trong hệ thống, quản lý toàn bộ thông tin tài khoản người dùng và bài thi. Người dùng khách: người dùng chưa đăng ký tài khoản trong hệ thống o Xem bài thi: xem các bài thi. o Đăng ký tài khoản.
Thành viên: người đã đăng ký tài khoản thành công trên hệ thống o Đăng nhập. o Tạo bài thi. o Tạo phòng thi. o Mời người khác vào phòng.
o Tham gia thi cùng nhiều người. o Xem thống kê điểm thi. o Xuất thống kê điểm thi ra file excel. o Xem lịch sử thi.
o Xem thông tin bài thi. Với những tính năng thời gian thực của hệ thống, việc dùng WebSocket sẽ khá phức tạp và tốn thời gian cài đặt lâu. Thế nên những thư việc hỗ trợ các tính năng thời gian thực như Socket.IO sẽ trở nên cần thiết. Tuy nhiên để sử dụng Socket.IO chúng ta cần một server chạy trên Node.js bởi vì thư viện này chỉ hỗ trợ server trên nền tảng này.
Mặt khác, để quản lý hệ thống đề thi, điểm thi và người dùng một cách chặt chẽ vào bảo mật, ta cần sự hỗ trợ mạnh mẽ từ các Framework tương thích tốt với cơ sở dữ liệu quan hệ. Nguyễn Công Danh 4 SV thực hiện: Nguyễn Lâm Hoàng Anh Đề tài: Phát triển hệ thống thi trắc nghiệm trực tuyến áp dụng kiến trúc Microservices Tiếp cận giải quyết vấn đề 1. Mô tả tổng quan 1. Bối cảnh sản phẩm Vào lúc đại dịch Covid-19 bùng phát, việc thi cử kiểm tra đã được chuyển sang hình thức trực tuyến, tuy giờ đại dịch đã gần như qua đi nhưng nhu cầu chuyển đổi việc giáo dục, thi cử sang hình thức trực tuyến vẫn là xu hướng của rất nhiều trung tâm giáo dục.
Để việc giáo dục và kiểm tra thú vị hơn, tôi sẽ xây dựng một hệ thống thi trực tuyến với hai chế độ: bình thường và cạnh tranh (nhiều người cùng làm một câu hỏi cùng lúc và chỉ tính điểm cho người trả lời đúng đầu tiên). Các chức năng của sản phẩm Đối với Admin - Đăng nhập. - Xem danh sách các tài khoản: Admin có thể xem danh sách toàn bộ người dùng trong hệ thống và tạo tài khoản cho thành viên. - Xem danh sách tất cả bài thi theo chủ đề.
- Xem thống kê điểm thi và xuất thống kê ra file. - Thêm, sửa thông tin của các chủ đề. Đối với người dùng chưa đăng ký: - Đăng ký. - Xem các bài thi ở chế độ công khai.
Đối với người dùng đã đăng ký: - Đăng nhập. - Tạo bài thi: tạo bài thi theo chủ đề và tạo bộ câu hỏi cho bài thi. - Tạo phòng thi: tạo và chọn chế độ cho phòng thi với bài thi và cung cấp mã phòng thi cho người khác để họ có thể tham gia thực hiện bài thi cùng nhau. Phòng thi sẽ có hai chế độ: bình thường và cạnh tranh.
- Tham gia phòng thi: nhập mã phòng thi để tham gia phòng. - Thực hiện bài thi: người dùng sẽ cùng tham gia lựa chọn đáp án cho cùng một câu hỏi, ở chế độ cạnh tranh thì chỉ có người trả lời đúng nhanh nhất mới được tính điểm cho câu hỏi đó. - Xem kết quả thi: xem kết quả vừa thi và kết quả thi cũ cũng như xuất kết quả ra file. Nguyễn Công Danh 5 SV thực hiện: Nguyễn Lâm Hoàng Anh Đề tài: Phát triển hệ thống thi trắc nghiệm trực tuyến áp dụng kiến trúc Microservices 1.
Đặc điểm người sử dụng Bảng 1.1 Đặc điểm người dùng Nhóm Mức độ Đặc người sử Các chức năng Vai trò quan trưng dụng trọng Admin Là người Quản lý tất cả người dùng, Admin Rất quan trịu trách bài thi và chủ đề trọng nhiệm quản lý toàn bộ hệ thống Người Là người - Đăng ký Guest Quan dùng dùng - Xem bài thi trọng khách chưa đăng ký toàn khoản thành viên trong hệ thống Người Là người - Quản lý bài thi Member Quan dùng đã đăng - Quản lý thông tin cá nhân trọng thành viên ký tài - Tạo phòng thi khoản - Tham gia phòng thi trong hệ - Mời người khác vào phòng thống - Thực hiện bài thi - Xem thống kê thông tin điểm thi - Xuất thống kê điểm thi ra file excel - Xem lịch sử thi 1. Môi trường vận hành Phần cứng: o Máy tính có kết nối Internet. o CPU: Intel Core i3. Nguyễn Công Danh 6 SV thực hiện: Nguyễn Lâm Hoàng Anh Đề tài: Phát triển hệ thống thi trắc nghiệm trực tuyến áp dụng kiến trúc Microservices o Độ phân giải màn hình: 1366x768.
Hệ điều hành và phần mềm: o Hệ điều hành: Window 10. o Trình duyệt web: Google Chrome, Microsoft Edge. o Phần mềm API: Postman. Các ràng buộc về thực thi và thiết kế Thực thi: o Cần phải có Internet với tốc độ ổn định và có thể hoạt động liên tục trong suốt quá trình làm việc.
o Máy phải đặt trong môi trường, nhiệt độ tốt để hoạt động. Thiết kế: o Sử dụng mô hình: Microservices, Client-Server. o Ngôn ngữ lập trình: Javascript, C#. o Các thư việc: ReactJS, SocketIO.
o Các công cụ hỗ trợ: Docker, Kubernetes, RabbitMQ. o Hệ quản trị cở sở dữ liệu: MongoDB, PostgreSQL. o Giao diện đơn giản, thân thiện với người dùng. Các yêu cầu bên ngoài 1.1 Giao diện người dùng: Giao diện nền web: ReactJS.
Giao diện thân thiện với người dùng. Bố cục gọn gàng, dễ dùng, không rối mắt. Client: giao tiếp với người dùng qua màn hình và các thiết bị nhập xuất (bàn phím, chuột). Sử dụng ngôn ngữ dễ hiểu, phù hợp với người dùng.2 Giao tiếp phần mềm: Máy tính phải có trình duyệt web và kết nối Internet.
Cở sở dữ liệu: MongoDB, PostgreSQL. Hệ điều hành: Window 10.3 Giao tiếp truyền thông tin: Trình duyệt web: Google Chrome, Microsoft Edge, FireFox (hỗ trợ tốt nhất cho Google Chrome). Chuẩn truyền thông tin: dùng giao thức để truyền và nhận dữ liệu giữa máy chủ và các máy client. Nguyễn Công Danh 7 SV thực hiện: Nguyễn Lâm Hoàng Anh Đề tài: Phát triển hệ thống thi trắc nghiệm trực tuyến áp dụng kiến trúc Microservices 1.
Các yêu cầu chức năng của hệ thống Hình 1-1 Sơ đồ use case của hệ thống thi trắc nghiệm trực tuyến GVHD: TS. Nguyễn Công Danh 8 SV thực hiện: Nguyễn Lâm Hoàng Anh Đề tài: Phát triển hệ thống thi trắc nghiệm trực tuyến áp dụng kiến trúc Microservices Sơ đồ use case ở hình 1.1 sẽ được mô tả cụ thể bằng các bảng sau đây: 1.2 Usecase đăng ký Mã yêu cầu UC-1 Tên yêu cầu Đăng ký Mức độ ưu tiên Cao Mô tả Người dùng muốn đăng ký tài khoản để sử dụng hệ thống Đối tượng sử Người dùng khách dụng Tiền điều kiện Không Các thao tác xử 1. Người dùng truy cập vào trang web. Người dùng nhấn nút “Sign up”.
Người dùng nhập đầy đủ thông tin đăng ký và nhấn nút “Sign up”. Hệ thống kiểm tra và xử lý đăng ký 5. Thông báo thành công hay thất bại. Kết thúc sự kiện Kết quả Người dùng đăng ký tài khoản thành công 1.
Đăng nhập Bảng 1.3 Usecase đăng nhập Mã yêu cầu UC-2 Tên yêu cầu Đăng nhập Mức độ ưu tiên Cao Mô tả Người dùng muốn đăng nhập để sử dụng hệ thống Đối tượng sử Người dùng thành viên, Admin dụng Tiền điều kiện Tài khoản của người dùng đã được tạo Các thao tác xử 1. Người dùng truy cập vào trang web. Người dùng nhấn nút “Sign in”. Người dùng nhập đầy đủ thông tin đăng nhập và nhấn nút “Sign in”.
Hệ thống kiểm tra và xử lý đăng nhập 5. Thông báo thành công hay thất bại. Kết thúc sự kiện Kết quả Người dùng đăng nhập thành công và hệ thống trả về token dùng để xác thực người dùng GVHD: TS. Nguyễn Công Danh 9 SV thực hiện: Nguyễn Lâm Hoàng Anh Đề tài: Phát triển hệ thống thi trắc nghiệm trực tuyến áp dụng kiến trúc Microservices 1.
Tạo bài thi Bảng 1.4 Usecase tạo bài thi Mã yêu cầu UC-3 Tên yêu cầu Tạo bài thi Mức độ ưu tiên Cao Mô tả Người dùng muốn tạo bài thi để nhiều người cùng tham gia Đối tượng sử Người dùng thành viên dụng Tiền điều kiện Người dùng đã đăng nhập thành công Các thao tác xử 1. Người dùng truy cập vào trang web. Người dùng nhấn nút “Create exam”. Người dùng nhập tên bài thi và chọn chủ đề, sau đó nhấn nút “Create exam”.
Hệ thống kiểm tra và xử lý tạo bài thi 5. Thông báo thành công hay thất bại. Kết quả Người dùng tạo bài thi thành công 1. Sửa bài thi Bảng 1.5 Usecase sửa bài thi Mã yêu cầu UC-4 Tên yêu cầu Sửa bài thi Mức độ ưu tiên Cao Mô tả Người dùng muốn sửa bài thi Đối tượng sử Người dùng thành viên dụng Tiền điều kiện Người dùng đã đăng nhập thành công Các thao tác xử 1.
Người dùng truy cập vào trang web. Người dùng chọn bài thi muốn sửa. Người dùng sửa thông tin của bài thi và nhấn nút “Save”. Hệ thống kiểm tra và xử lý sửa bài thi.
Thông báo thành công hay thất bại. Kết quả Người dùng sửa bài thi thành công 1. Xóa bài thi Bảng 1.6 Usecase xóa bài thi Mã yêu cầu UC-5 Tên yêu cầu Xóa bài thi GVHD: TS. Nguyễn Công Danh 10 SV thực hiện: Nguyễn Lâm Hoàng Anh Đề tài: Phát triển hệ thống thi trắc nghiệm trực tuyến áp dụng kiến trúc Microservices Mức độ ưu tiên Cao Mô tả Người dùng muốn xóa bài thi Đối tượng sử Người dùng thành viên dụng Tiền điều kiện Người dùng đã đăng nhập thành công Các thao tác xử 1.
Người dùng truy cập vào trang web. Người dùng chọn bài thi muốn xoá. Người dùng nhấn nút “Xoá” 4. Hệ thống kiểm tra và xử lý xoá bài thi.
Thông báo thành công hay thất bại. Kết quả Người dùng xóa bài thi tành công 1. Tạo câu hỏi Bảng 1.7 Usecase tạo câu hỏi Mã yêu cầu UC-6 Tên yêu cầu Tạo câu hỏi Mức độ ưu tiên Cao Mô tả Người dùng muốn tạo câu hỏi cho bài thi Đối tượng sử Người dùng thành viên dụng Tiền điều kiện Người dùng đã đăng nhập thành công và tạo bài thi Các thao tác xử 1. Người dùng truy cập vào trang web.
Người dùng chọn bài thi muốn thêm câu hỏi. Người dùng nhấn biểu tượng thêm câu hỏi. Người dùng nhập thông tin câu hỏi và nhấn nút “Save”. Hệ thống kiểm tra và xử lý thêm câu hỏi.
Thông báo thành công hay thất bại.