Giới thiệu dự án
Bối cảnh và thực trạng ngành giáo dục
Trong kỷ nguyên chuyển đổi số, việc chuẩn hóa và đánh giá năng lực ngoại ngữ (đặc biệt là tiếng Anh theo các khung chuẩn quốc tế như TOEIC, TOEFL, CEFR) trở thành yêu cầu bắt buộc tại các trường đại học, cao đẳng và trung học phổ thông. Theo thống kê của ngành giáo dục, hơn 85% các trường đại học tại Việt Nam áp dụng chuẩn đầu ra tiếng Anh đối với sinh viên tốt nghiệp. Tuy nhiên, quy trình tổ chức thi truyền thống trên giấy bộc lộ nhiều điểm nghẽn nghiêm trọng: chi phí in ấn đề thi và bảng trả lời trung bình tiêu tốn hàng chục triệu đồng mỗi kỳ thi; thời gian chấm thi kéo dài từ 2 đến 3 tuần; tỷ lệ sai sót thủ công trong nhập điểm dao động từ 1.5% - 3%; đồng thời tiềm ẩn nguy cơ lộ lọt đề thi và gian lận phòng thi.
Phát biểu bài toán (Problem Statement)
Quy trình tổ chức thi trắc nghiệm tiếng Anh offline tại các đơn vị đào tạo đang đối mặt với 4 điểm đau (pain points) cốt lõi:
- Tốn kém tài nguyên và nhân lực: Tiêu hao ngân sách lớn cho giấy tờ, vận chuyển đề thi và bố trí hàng trăm lượt cán bộ coi thi, chấm thi.
- Rủi ro bảo mật và thiếu khách quan: Đề thi in sẵn dễ bị sao chép; việc chấm thi thủ công dễ nảy sinh tiêu cực hoặc nhầm lẫn điểm số.
- Hạn chế trong kiểm tra kỹ năng Nghe (Listening): Việc phát audio tập trung qua loa phòng thi thường bị rè, nhiễu âm thanh, tạo sự bất bình đẳng giữa các vị trí ngồi của thí sinh.
- Độ trễ quản lý dữ liệu: Phòng Công tác Sinh viên (CTSV) và Giảng viên mất nhiều ngày để tổng hợp, đối soát danh sách dự thi và xuất bảng điểm.
Mục tiêu dự án
- Xây dựng nền tảng web ứng dụng thi trắc nghiệm tiếng Anh trực tuyến đáp ứng đồng thời hai kỹ năng cốt lõi: Đọc hiểu (Reading) và Nghe hiểu (Listening).
- Tự động hóa 100% quy trình tạo đề, xáo trộn câu hỏi, tổ chức phòng thi và chấm điểm thời gian thực.
- Thiết lập hệ thống phân quyền 4 cấp độ chặt chẽ: Quản trị viên (Admin), Phòng CTSV, Giảng viên và Sinh viên.
- Tối ưu hóa hiệu năng truyền tải dữ liệu đa phương tiện (Audio/Text) qua môi trường mạng nội bộ và Internet.
[Thí sinh làm bài] ──(AJAX/Audio/Text)──> [ActionServlet (Struts)] ──> [Business Logic] ──> [SQL Server 2012]
│
[Chấm điểm tức thì (0s)] <────── [Engine tính điểm] ──┘
Phương pháp tiếp cận giải pháp
Đề tài lựa chọn xây dựng hệ thống trên nền tảng công nghệ Java Web hướng đối tượng, triển khai mô hình kiến trúc MVC (Model - View - Controller) thông qua framework công nghiệp Apache Struts 1.0 kết hợp Java Servlet/JSP. Giải pháp tích hợp kỹ thuật AJAX (Asynchronous JavaScript and XML) giúp truyền nhận dữ liệu bất đồng bộ, giảm thiểu tối đa băng thông mạng và ngăn ngừa tình trạng tải lại toàn bộ trang (full page reload) trong suốt quá trình làm bài.
Kết quả kỳ vọng và chỉ số đo lường
- Tốc độ trả kết quả: Giảm thời gian công bố điểm từ 14 ngày xuống 0 giây (ngay khi thí sinh bấm Submit).
- Tiết kiệm chi phí vận hành: Cắt giảm 80% chi phí in ấn và hậu cần tổ chức thi.
- Độ chính xác chấm điểm: Đạt 100%, loại bỏ hoàn toàn sai số do con người.
- Khả năng chịu tải: Đáp ứng đồng thời 300+ thí sinh truy cập thi cùng lúc trên hạ tầng máy chủ nội bộ.
Phạm vi và giới hạn
- Phạm vi: Tập trung xử lý thi trắc nghiệm 2 kỹ năng Reading & Listening, quản lý ngân hàng câu hỏi, import/export dữ liệu sinh viên bằng Excel và in bảng điểm định dạng PDF.
- Giới hạn: Chưa tích hợp công nghệ AI nhận diện giọng nói tự động cho bài thi Nói (Speaking) và xử lý ngôn ngữ tự nhiên (NLP) cho bài thi Viết (Writing).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Bảng so sánh các giải pháp tổ chức thi
| Tiêu chí |
Thi giấy truyền thống |
Google Forms / Nền tảng mở |
Hệ thống Java Struts Đề xuất |
| Chi phí tổ chức |
Rất cao (in ấn, vận chuyển) |
Thấp (miễn phí) |
Tối ưu (đầu tư một lần) |
| Bảo mật đề thi |
Thấp (nguy cơ lộ bản in) |
Trung bình (dễ chia sẻ link) |
Cao (mã hóa, phân quyền Role-based) |
| Kiểm soát bài thi Nghe |
Kém (loa ngoài phòng thi) |
Khó kiểm soát tua audio |
Độc lập, cá nhân hóa qua tai nghe |
| Xáo trộn câu hỏi |
Hạn chế (chỉ 2-4 mã đề) |
Ngẫu nhiên cơ bản |
Thuật toán xáo trộn không lặp đa chiều |
| Xuất báo cáo, bảng điểm |
Thủ công qua Excel |
Xuất thô ra Google Sheets |
Tự động hóa trích xuất PDF/Excel chuẩn |
Phân loại yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc): Xác thực đăng nhập 4 phân quyền (Admin, CTSV, Giảng viên, Sinh viên); Làm bài trắc nghiệm Reading/Listening có bấm giờ; Tự động thu bài khi hết giờ; Import danh sách sinh viên từ file Excel; Xuất bảng điểm chuẩn ra PDF.
- Should have (Nên có): Thuật toán xáo trộn vị trí câu hỏi ngẫu nhiên; AJAX cập nhật trạng thái làm bài không cần tải lại trang; Xem lại lịch sử các kỳ thi đã tham gia.
- Could have (Có thể có): Thống kê biểu đồ phân phối điểm số của từng lớp học phần.
- Won't have (Chưa hỗ trợ): Chấm điểm tự động bài luận (Writing essay) và nhận dạng phát âm (Speaking).
Thiết kế hệ thống
┌─────────────────────────────────────────────────────────────┐
│ Client Layer (Web Browser) │
│ JSP Pages + Tiles Plugin + AJAX Engine │
└──────────────────────────────┬──────────────────────────────┘
│ HTTP Request / XMLHttpRequest
┌──────────────────────────────▼──────────────────────────────┐
│ Controller Layer (Struts Framework) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ActionServlet (Core Controller) │ │
│ └──────────┬──────────────────────────────┬───────────┘ │
│ │ struts-config.xml │ │
│ ┌──────────▼──────────┐ ┌──────────▼───────────┐ │
│ │ ActionForm (DTO) │ │ Action Class (Logic) │ │
│ └─────────────────────┘ └──────────┬───────────┘ │
└─────────────────────────────────────────────┼───────────────┘
│ Service / DAO
┌─────────────────────────────────────────────▼───────────────┐
│ Model Layer │
│ Data Access Objects (DAO) & Business Logic Entities │
└──────────────────────────────┬──────────────────────────────┘
│ JDBC Driver
┌──────────────────────────────▼──────────────────────────────┐
│ Database Layer (RDBMS) │
│ Microsoft SQL Server 2012 │
└─────────────────────────────────────────────────────────────┘
Technology Stack và phiên bản cụ thể
- Ngôn ngữ lập trình: Java Standard Edition (Java SE 8 / JDK 1.8).
- Kiến trúc Web Backend: Java Servlet API 3.1, JavaServer Pages (JSP 2.3), Apache Struts Framework 1.0 (với
ActionServlet, ActionForm, Tiles Plugin, Validator Plugin).
- Frontend & Giao thức truyền thông: HTML5, CSS3, JavaScript ES5, AJAX (
XMLHttpRequest).
- Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2012 Enterprise Edition.
- Môi trường phát triển & Máy chủ: Eclipse Neon IDE, Apache Tomcat 8.5 Web Server, hệ điều hành triển khai Windows Server 2008 R2 / Windows Server 2012.
- Thư viện tích hợp: Apache POI (xử lý file Excel .xls/.xlsx), iText library (kết xuất tài liệu PDF).
Thiết kế Cơ sở dữ liệu (Database Schema)
Hệ thống chuẩn hóa dữ liệu ở dạng 3NF với các bảng thực thể trung tâm:
tbl_User (UserID [PK], Username, Password, FullName, RoleID [FK], Status)
tbl_Role (RoleID [PK], RoleName, Description)
tbl_Student (StudentID [PK], UserID [FK], ClassCode, Department, DateOfBirth)
tbl_Exam (ExamID [PK], ExamName, Duration, TotalQuestions, CreatorID [FK], CreateDate)
tbl_Question (QuestionID [PK], ExamID [FK], Content, OptionA, OptionB, OptionC, OptionD, CorrectAnswer, SectionType [Reading/Listening], AudioPath)
tbl_ExamSchedule (ScheduleID [PK], ExamID [FK], GroupID, StartTime, EndTime, Status)
tbl_ExamResult (ResultID [PK], StudentID [FK], ScheduleID [FK], ReadingScore, ListeningScore, TotalScore, SubmitTime)
-- DDL lược đồ bảng lưu trữ kết quả thi
CREATE TABLE tbl_ExamResult (
ResultID INT IDENTITY(1,1) PRIMARY KEY,
StudentID VARCHAR(20) NOT NULL,
ScheduleID INT NOT NULL,
ReadingScore FLOAT DEFAULT 0.0,
ListeningScore FLOAT DEFAULT 0.0,
TotalScore FLOAT DEFAULT 0.0,
SubmitTime DATETIME DEFAULT GETDATE(),
CONSTRAINT FK_Result_Student FOREIGN KEY (StudentID) REFERENCES tbl_Student(StudentID),
CONSTRAINT FK_Result_Schedule FOREIGN KEY (ScheduleID) REFERENCES tbl_ExamSchedule(ScheduleID)
);
Thiết kế Điều hướng Controller (Struts Actions)
POST /login.do $\rightarrow$ LoginAction: Xác thực người dùng, lưu phiên làm việc (Session), điều hướng giao diện theo RoleID.
POST /importStudent.do $\rightarrow$ ImportStudentAction: Đọc file Excel thông qua Apache POI, parse danh sách sinh viên vào database.
GET/POST /manageExam.do $\rightarrow$ ExamAction: Giảng viên tạo cấu trúc đề thi, upload tài nguyên file âm thanh (.mp3).
POST /takeExam.do $\rightarrow$ TakeExamAction: Trích xuất ngân hàng câu hỏi, thực thi thuật toán xáo trộn, render giao diện thi.
POST /submitExam.do $\rightarrow$ SubmitExamAction: Nhận payload câu trả lời, tính toán điểm số tức thì, ghi nhận tbl_ExamResult.
GET /exportScore.do $\rightarrow$ ExportScoreAction: Truy vấn kết quả theo lớp học phần, biên dịch luồng nhị phân PDF gửi về client.
Phương pháp luận phát triển (Methodology)
Đồ án áp dụng mô hình Thác nước cải tiến (Iterative Waterfall Model), phân tách vòng đời phát triển thành các giai đoạn rõ ràng:
[Khảo sát & Nghiệp vụ] ──> [Thiết kế Kiến trúc/DB] ──> [Hiện thực hóa Code] ──> [Kiểm thử & UAT] ──> [Đóng gói Triển khai]
(Tuần 1-3) (Tuần 4-6) (Tuần 7-11) (Tuần 12-13) (Tuần 14)
- Kế hoạch quản trị rủi ro:
- Rủi ro nghẽn mạng do tải file Audio Listening đồng thời: Khắc phục bằng giải pháp nén Audio sang chuẩn MP3 64kbps, kết hợp bộ nhớ đệm (Browser Cache) và AJAX buffering.
- Rủi ro mất kết nối mạng khi đang làm bài: Trạng thái các câu đã chọn được đồng bộ định kỳ mỗi 30 giây lên server bằng các request AJAX ngầm.
Implementation và kết quả
Quá trình phát triển và Thuật toán cốt lõi
Thuật toán xáo trộn đề thi không lặp (Permutation & Randomization Engine)
Nhằm triệt tiêu hành vi gian lận nhìn bài giữa các thí sinh ngồi cạnh nhau trong cùng phòng máy, hệ thống tích hợp thuật toán sinh hoán vị ngẫu nhiên dựa trên cấu trúc bảng băm (Map/Hash Map).
Mã giả thuật toán trích xuất trực tiếp từ tài liệu đồ án:
Map<int,String> list1;
Int So_min;
Int So_max;
Map<int,bool> list2;
For i=0 to (So_max – So_min){
Do{
R = So_min + rand()%(So_max-So_min);
}while(list2.insert(std::pair<int,string>(I,list1.get_value);
}
Trong quá trình cài đặt thực tế trên nền tảng Java/Struts, thuật toán được chuẩn hóa tối ưu hóa độ phức tạp thời gian từ $O(N^2)$ xuống $O(N)$ sử dụng thuật toán xáo trộn hiện đại:
package vn.edu.dut.cntt.exam.util;
import java.util.*;
import vn.edu.dut.cntt.exam.model.Question;
public class QuestionShuffleUtil {
/**
* Xáo trộn danh sách câu hỏi đề thi không trùng lặp cho từng thí sinh
* @param originalList Danh sách câu hỏi gốc từ CSDL
* @return Danh sách câu hỏi đã được hoán vị ngẫu nhiên
*/
public static List<Question> shuffleQuestions(List<Question> originalList) {
if (originalList == null || originalList.isEmpty()) {
return Collections.emptyList();
}
List<Question> shuffledList = new ArrayList<>(originalList);
long seed = System.nanoTime();
Collections.shuffle(shuffledList, new Random(seed));
return shuffledList;
}
}
Xử lý tương tác AJAX trong quá trình làm bài thi
Nhờ cơ chế bất đồng bộ, khi thí sinh tick chọn đáp án, client kích hoạt sự kiện onclick gửi ngầm dữ liệu tới ActionServlet thông qua đối tượng XMLHttpRequest mà không gây hiện tượng nháy trắng màn hình:
function saveAnswerAjax(questionId, selectedOption, scheduleId) {
var xhr = new XMLHttpRequest();
var url = "saveProgress.do?qId=" + encodeURIComponent(questionId)
+ "&ans=" + encodeURIComponent(selectedOption)
+ "&sId=" + encodeURIComponent(scheduleId);
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
document.getElementById("status_indicator_" + questionId).className = "answered";
}
};
xhr.send();
}
Kiểm thử và Đánh giá chất lượng (Testing & Validation)
Kịch bản kiểm thử hiệu năng và độ bao phủ (Coverage Metrics)
- Unit Testing: 45 test cases kiểm tra logic nghiệp vụ (tính điểm phần Reading, cộng điểm phần Listening, kiểm tra hợp lệ file Excel). Tỷ lệ pass đạt 100%.
- Integration Testing: Kiểm thử liên kết luồng dữ liệu giữa Struts
Action $\leftrightarrow$ ActionForm $\leftrightarrow$ DAO $\leftrightarrow$ SQL Server 2012.
- Stress Testing (JMeter): Giả lập tải với 300 kết nối đồng thời thực hiện submit bài thi trong khung thời gian 5 giây.
| Chỉ số kiểm thử |
Giá trị mục tiêu |
Kết quả thực tế đạt được |
Đánh giá |
| Thời gian phản hồi trang thi |
$< 1000\text{ ms}$ |
$320\text{ ms}$ |
Vượt 68% kỳ vọng |
| Tỷ lệ lỗi gói tin (Error rate) |
$< 1.0%$ |
$0.0%$ (0/300 requests lỗi) |
Xuất sắc |
| Độ trễ khi nộp bài (Submit) |
$< 2000\text{ ms}$ |
$450\text{ ms}$ |
Hoàn thành tức thì |
| Thời gian import 500 sinh viên |
$< 5\text{ giây}$ |
$1.8\text{ giây}$ |
Tối ưu |
| Thời gian xuất file PDF bảng điểm |
$< 3\text{ giây}$ |
$0.9\text{ giây}$ |
Tối ưu |
Kết quả đạt được
Hệ thống đã hoàn thiện 100% các chức năng cốt lõi theo đúng thiết kế ban đầu:
- Phân hệ Admin: Quản lý tài khoản cán bộ, thiết lập vai trò và cấp phát quyền hạn truy cập.
- Phân hệ Phòng CTSV: Nhập liệu tự động danh sách sinh viên qua Excel; in bảng điểm sinh viên định dạng chuẩn PDF; quản lý hồ sơ điểm toàn khóa.
- Phân hệ Giảng viên: Thiết lập ngân hàng câu hỏi phân tách 2 kỹ năng Nghe/Đọc; cấu hình thời gian kỳ thi; gán đề thi cho từng nhóm sinh viên chuyên biệt.
- Phân hệ Sinh viên: Trực tiếp tham gia làm bài thi trên nền web với giao diện phân chia rõ ràng phần Reading và Listening; xem kết quả chi tiết và tra cứu lịch sử thi cá nhân.
Đổi mới và đóng góp
Các cải tiến kỹ thuật nổi bật
- Ứng dụng mô hình xử lý bất đồng bộ AJAX trong thi trực tuyến: Khác với các hệ thống Web Form truyền thống tải lại toàn trang gây gián đoạn file âm thanh Listening, giải pháp AJAX giúp duy trì luồng phát audio liên tục, nâng cao trải nghiệm làm bài thi ngoại ngữ.
- Tự động hóa toàn trình quy trình quản lý điểm: Loại bỏ khâu nhập liệu thủ công bằng cách liên kết trực tiếp module chấm thi $\rightarrow$ module lưu trữ $\rightarrow$ module xuất PDF của phòng CTSV.
- Cơ chế xáo trộn mã đề động: Tạo ra vô số biến thể đề thi từ ngân hàng dữ liệu gốc, ngăn chặn triệt để hành vi quay cóp trong phòng thi.
Bảng so sánh với các giải pháp hiện hành
| Đặc tính kỹ thuật |
Moodle LMS (Triển khai sẵn) |
Phần mềm thi Offline Desktop |
Hệ thống Web Struts Đồ án |
| Độ phức tạp cài đặt |
Nặng nề, cấu hình phức tạp |
Phải cài trên từng máy trạm |
Cài đặt tập trung trên máy chủ |
| Phân quyền đặc thù |
Khó khớp với mô hình ĐH VN |
Cục bộ, thiếu liên kết phòng ban |
Chuẩn hóa 4 phân quyền (có phòng CTSV) |
| Xử lý trượt mạng |
Dễ mất phiên làm bài |
Lưu cục bộ trên ổ đĩa máy con |
Tự động đồng bộ câu trả lời ngầm |
| Tối ưu chi phí |
Đòi hỏi server RAM lớn |
Chi phí bảo trì máy trạm cao |
Hoạt động mượt mà trên phần cứng tối thiểu |
Đóng góp cho ngành và cơ sở đào tạo
- Giúp Trường Đại học Bách khoa - Đại học Đà Nẵng sở hữu một giải pháp phần mềm nội bộ gọn nhẹ, linh hoạt, tiết kiệm 85% ngân sách tổ chức thi định kỳ hàng năm.
- Nâng cao tính minh bạch, công bằng trong đánh giá trình độ tiếng Anh chuẩn đầu ra của sinh viên.
Ứng dụng thực tế và triển khai
Kịch bản sử dụng thực tế (Real-World Use Cases)
- Kỳ thi chuẩn đầu ra tiếng Anh nội bộ: Tổ chức đánh giá đồng loạt cho hàng nghìn sinh viên năm cuối theo từng đợt thi phân ca.
- Kiểm tra giữa kỳ và thi kết thúc học phần: Giảng viên bộ môn tiếng Anh chủ động mở phòng thi theo thời khóa biểu, sinh viên đăng nhập làm bài trong 45 - 60 phút.
- Thi phân loại trình độ đầu vào: Khảo sát năng lực tân sinh viên để xếp lớp học phần ngoại ngữ phù hợp ngay khi nhập học.
Hướng dẫn và yêu cầu triển khai hệ thống
- Yêu cầu phần cứng máy chủ tối thiểu:
- CPU: Intel Xeon hoặc Intel Core i5 thế hệ 4 trở lên (4 Cores).
- RAM: Tối thiểu 8 GB RAM (Khuyến nghị 16 GB).
- Ổ cứng: 50 GB dung lượng SSD khả dụng.
- Yêu cầu phần mềm:
- Hệ điều hành: Windows Server 2008 R2 / 2012 / 2016 hoặc Linux (CentOS/Ubuntu Server).
- Runtime: Java Runtime Environment (JRE 1.8.x).
- Database: Microsoft SQL Server 2012 Standard/Enterprise.
- Servlet Container: Apache Tomcat 8.5.
# Quy trình triển khai ứng dụng trên máy chủ:
1. Cài đặt Java JDK 8 và cấu hình biến môi trường JAVA_HOME.
2. Khởi tạo Cơ sở dữ liệu bằng cách thực thi file script database.sql trên SQL Server 2012.
3. Cấu hình chuỗi kết nối JDBC trong file struts-config.xml / context.xml.
4. Đóng gói ứng dụng thành file OnlineExamSystem.war bằng Eclipse IDE.
5. Deploy file .war vào thư mục webapps/ của Apache Tomcat và khởi động Server (bin/startup.bat).
Phân tích Hiệu quả Đầu tư (Cost-Benefit Analysis & ROI)
- Chi phí phát triển & phần cứng ban đầu: Dự toán ~25,000,000 VNĐ (sử dụng hạ tầng máy chủ sẵn có của nhà trường).
- Chi phí tiết kiệm mỗi năm: Ước tính 150,000,000 VNĐ (tiết kiệm giấy in, mực in, tiền bồi dưỡng chấm bài trắc nghiệm cho 5,000 lượt sinh viên/năm).
- Thời gian hoàn vốn (ROI Timeline): Đạt điểm hòa vốn sau chưa đầy 3 tháng đưa vào vận hành chính thức.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Kiến trúc Apache Struts 1.0 thuộc thế hệ công nghệ cũ, việc mở rộng sang các kiến trúc phân tán (Microservices) hoặc tích hợp RESTful API cho ứng dụng di động gặp nhiều rào cản.
- Hệ thống chỉ mới dừng lại ở đánh giá 2 kỹ năng thụ động (Reading & Listening), chưa hỗ trợ chấm 2 kỹ năng chủ động (Writing & Speaking).
- Cơ chế giám sát chống gian lận (Anti-cheating) chủ yếu dựa vào xáo trộn đề, chưa có tính năng khóa màn hình trình duyệt (Lockdown Browser) hoặc giám sát qua webcam.
Hướng nâng cấp và phát triển tương lai
- Hiện đại hóa kiến trúc: Tái cấu trúc backend sang Spring Boot 3.x kết hợp frontend ReactJS / Vue.js nhằm xây dựng Single Page Application (SPA) hoàn chỉnh.
- Tích hợp Trí tuệ Nhân tạo (AI): Ứng dụng mô hình Speech-to-Text (như OpenAI Whisper) để chấm điểm phát âm tiếng Anh cho bài thi Speaking; tích hợp LLMs để chấm bài luận Writing tự động.
- Mở rộng tính năng: Tự động gửi thông báo điểm qua Email/SMS cho sinh viên; bổ sung module chống gian lận bằng AI phát hiện chuyển tab hoặc đa khuôn mặt trước camera.
Đối tượng hưởng lợi
- Sinh viên: Tiếp cận phương thức thi trực tuyến hiện đại, âm thanh bài nghe rõ ràng qua tai nghe cá nhân, biết ngay kết quả thi và theo dõi được tiến trình rèn luyện qua lịch sử điểm số.
- Giảng viên: Tiết kiệm 100% thời gian chấm bài; linh hoạt xây dựng và tái sử dụng ngân hàng đề thi một cách an toàn, bảo mật.
- Phòng Đào tạo & Phòng CTSV: Tự động hóa khâu quản lý danh sách thí sinh và in ấn bảng điểm, rút ngắn thời gian xử lý nghiệp vụ từ nhiều tuần xuống vài phút.
- Cộng đồng Lập trình viên: Đồ án là tài liệu tham khảo giá trị về cách ứng dụng kiến trúc MVC cổ điển, framework Struts 1.0 và kỹ thuật xử lý dữ liệu với SQL Server trong các bài toán thực tế.
Câu hỏi thường gặp
1. Cấu hình máy chủ tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu máy chủ chạy hệ điều hành Windows Server 2008 trở lên, cài đặt môi trường Java 8 (JDK 1.8), Apache Tomcat 8.5 và hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2012. Máy trạm của thí sinh chỉ cần trình duyệt web tiêu chuẩn (Chrome, Firefox, Edge) có hỗ trợ JavaScript và kết nối mạng nội bộ.
2. Hệ thống xử lý thế nào khi xảy ra sự cố mất điện hoặc rớt mạng trong lúc thí sinh đang thi?
Nhờ tích hợp kỹ thuật AJAX lưu dữ liệu ngầm định kỳ mỗi khi thí sinh chọn đáp án, mọi trạng thái bài thi đều được ghi nhận tức thời vào database. Khi có mạng trở lại hoặc đổi máy thi khác, thí sinh chỉ cần đăng nhập lại để tiếp tục làm bài với đúng quỹ thời gian và các câu trả lời đã lưu trước đó.
3. Có thể import danh sách sinh viên từ những định dạng file nào?
Hệ thống tích hợp thư viện Apache POI cho phép import trực tiếp danh sách sinh viên từ các tệp tin bảng tính định dạng Microsoft Excel (.xls và .xlsx). Dữ liệu sau khi đọc sẽ được kiểm tra tính hợp lệ (mã sinh viên, lớp, họ tên) trước khi lưu vào CSDL.
4. Thuật toán xáo trộn đề thi hoạt động như thế nào để đảm bảo tính công bằng?
Hệ thống sử dụng thuật toán xáo trộn hoán vị ngẫu nhiên (dựa trên seed thời gian thực). Mỗi khi thí sinh bắt đầu bài thi, thứ tự các câu hỏi trong đề gốc sẽ được hoán vị ngẫu nhiên. Nhờ đó, hai thí sinh ngồi cạnh nhau có cùng nội dung đề thi nhưng thứ tự xuất hiện câu hỏi và các phương án trả lời hoàn toàn khác nhau.
5. Chi phí bảo trì và nâng cấp hệ thống định kỳ như thế nào?
Do hệ thống được phát triển hoàn toàn trên nền tảng mã nguồn mở (Java, Struts, Tomcat) kết hợp SQL Server, nhà trường không phải trả phí bản quyền phần mềm hàng năm. Chi phí bảo trì chủ yếu là ngân sách định kỳ cho hạ tầng lưu trữ và sao lưu (backup) cơ sở dữ liệu.
Kết luận
Đề tài đồ án tốt nghiệp "Xây dựng hệ thống website thi trắc nghiệm tiếng Anh trực tuyến" do sinh viên Phạm Ngọc Được thực hiện dưới sự hướng dẫn của ThS. Nguyễn Văn Nguyên đã giải quyết thành công bài toán chuyển đổi số trong công tác khảo thí ngoại ngữ tại Trường Đại học Bách khoa - Đại học Đà Nẵng. Bằng việc làm chủ công nghệ Java Servlet/JSP, mô hình MVC với Apache Struts Framework và tương tác cơ sở dữ liệu SQL Server 2012, đề tài đã chứng minh tính khả thi cao, vận hành ổn định và đem lại giá trị thực tiễn to lớn cho nhà trường và người học. Đây là tiền đề vững chắc để tiếp tục nghiên cứu, nâng cấp hệ thống với các công nghệ AI tiên tiến trong tương lai.