Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin ngày càng chi phối sâu rộng các lĩnh vực đời sống và giáo dục, nhu cầu trao đổi, chia sẻ và thảo luận trực tuyến về kiến thức học tập trở thành phương thức thiết yếu đối với người học, đặc biệt là việc nâng cao năng lực tiếng Anh. Đối với sinh viên tại các cơ sở giáo dục đại học hiện nay, chứng chỉ tiếng Anh là điều kiện tiên quyết bắt buộc để hoàn thành chương trình đào tạo và tốt nghiệp. Xuất phát từ yêu cầu thực tiễn đó, đề tài "Xây dựng website luyện thi tiếng anh online" được thực hiện nhằm cung cấp một nền tảng trực tuyến giúp người học, đặc biệt là sinh viên, có môi trường tự học, luyện tập các bộ đề thi sát với thực tế và tự đánh giá năng lực của bản thân một cách khách quan.
Theo đề cương luận văn được phê duyệt, tác giả xác định 4 nhiệm vụ nghiên cứu chính:
- Tìm hiểu về framework Spring Boot và thư viện ReactJS.
- Xây dựng website luyện thi tiếng Anh phía người dùng (Front-End) với ReactJS.
- Xây dựng hệ thống xử lý phía máy chủ (Back-End) với Spring Boot.
- Nắm bắt và làm chủ quy trình, cách thức triển khai các chức năng nghiệp vụ của toàn hệ thống.
Mục tiêu cụ thể của đề tài được phân định rõ theo hai khía cạnh người dùng và quản trị:
- Về phía người dùng: Xây dựng hệ thống website chia sẻ kiến thức với các tính năng cơ bản về làm đề thi trực tuyến, tham gia thảo luận câu hỏi, tìm kiếm đề thi, theo dõi tiến độ và hỗ trợ học tập.
- Về phía quản trị: Xây dựng trung tâm quản lý và giám sát tài nguyên dữ liệu toàn diện, bao gồm thống kê doanh thu, quản lý tài khoản người dùng, quản lý môn học, cấu trúc bài học và kho tài liệu đề thi.
- Về mặt kỹ thuật chuyên ngành: Vận dụng kiến thức công nghệ phần mềm để thiết kế cơ sở dữ liệu có tính toàn vẹn, tối ưu hóa hiệu suất xử lý giao dịch, đảm bảo an toàn bảo mật thông tin cá nhân và tích hợp các công nghệ lập trình hiện đại nhằm hoàn thiện giao diện thân thiện với người dùng.
Đối tượng và phạm vi nghiên cứu của đề tài được xác định cụ thể như sau:
- Đối tượng nghiên cứu: Bao gồm hai nhóm đối tượng chính: (1) Nhóm người dùng cuối có nhu cầu học tập, luyện thi tiếng Anh (các cá nhân, học sinh, sinh viên); (2) Nhóm quản lý hệ thống, bao gồm đội ngũ phát triển kỹ thuật phần mềm chịu trách nhiệm duy trì tính ổn định, bảo mật, hiệu suất của hệ thống và người quản lý sản phẩm phụ trách các quyết định tính năng và trải nghiệm người dùng.
- Phạm vi nghiên cứu: Tập trung nghiên cứu và hiện thực hóa 4 phân hệ chính trong thời gian thực hiện từ ngày 04/03/2024 đến ngày 15/06/2024:
- Trải nghiệm người dùng: Thiết kế giao diện và tối ưu hóa luồng tương tác trong việc tìm kiếm thông tin, xem khóa học và làm bài thi trực tuyến.
- Quản lý hệ thống và dữ liệu: Xây dựng cấu trúc lưu trữ dữ liệu khóa học, ngân hàng đề thi, thông tin khách hàng và bảo mật dữ liệu giao dịch.
- Quản lý kinh doanh và tiếp thị: Tích hợp cơ chế quảng bá, theo dõi doanh số và doanh thu phát sinh từ các khóa học trực tuyến.
- Quản lý kỹ thuật và hiệu năng: Đảm bảo độ ổn định, hiệu năng xử lý đồng thời khi người dùng làm bài thi, đăng ký học và thực hiện thanh toán trực tuyến.
Cơ sở lý thuyết và phương pháp
Đề tài thuộc loại nghiên cứu xây dựng phần mềm và hệ thống ứng dụng trong lĩnh vực công nghệ thông tin, ứng dụng mô hình kiến trúc phân tầng kết hợp hệ thống dịch vụ giao tiếp qua giao thức mạng.
Khung công nghệ và nền tảng lý thuyết được tác giả sử dụng bao gồm:
- Công nghệ phía máy khách (Front-End):
- Thư viện ReactJS: Được Jordan Walke (Facebook) phát triển, ứng dụng để xây dựng ứng dụng trang đơn (Single Page Application - SPA) dựa trên kiến trúc thành phần (Component-based). Khóa luận khai thác cơ chế Virtual DOM (DOM ảo) giúp giảm thiểu số lần render trực tiếp trên cây DOM thật, từ đó tối ưu hóa hiệu năng giao diện; áp dụng cơ chế truyền nhận dữ liệu qua
Props giữa các component cha - con và quản lý trạng thái động cục bộ thông qua State (setState).
- Hệ thống thư viện bổ trợ Front-End: Thư viện Axios (HTTP client hoạt động dựa trên cơ chế JavaScript Promise để gọi API); SCSS (ngôn ngữ tiền xử lý CSS hỗ trợ biến và lồng mã cú pháp); Material-UI (cung cấp hệ thống component giao diện theo chuẩn thiết kế); React Router (điều hướng định tuyến trang và quản lý lịch sử trình duyệt); React Hook Form (quản lý trạng thái và xác thực biểu mẫu dữ liệu qua Hooks); React Helmet (quản lý các thẻ meta và tiêu đề hỗ trợ tối ưu hóa công cụ tìm kiếm - SEO).
- Công nghệ phía máy chủ (Back-End):
- Ngôn ngữ Java: Nền tảng lập trình hướng đối tượng độc lập nền tảng thông qua máy ảo Java (JVM), có độ an toàn và bảo mật cao.
- Framework Spring Boot: Nền tảng phát triển dựa trên Spring Framework với các đặc tính nổi bật như tự động cấu hình (Auto-Configuration), tích hợp sẵn máy chủ độc lập (Embedded Servers như Tomcat), hệ sinh thái Spring phong phú (Spring Data, Spring Security, Spring MVC), công cụ khởi tạo Spring Initializr và khả năng xây dựng các giao diện lập trình ứng dụng RESTful API mạnh mẽ.
- Hệ quản trị cơ sở dữ liệu MySQL: Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở của Oracle, tuân thủ các nguyên tắc toàn vẹn dữ liệu ACID (Atomicity, Consistency, Isolation, Durability), tối ưu hóa khả năng truy vấn dữ liệu tải cao thông qua cơ chế kết nối JDBC.
- Các thư viện và dịch vụ phụ trợ phía máy chủ: Thư viện Jsonwebtoken (chuẩn RFC 7519 định nghĩa cấu trúc mã xác thực JSON Web Token gồm ba phần Header, Payload và Signature được mã hóa HMAC hoặc RSA); Firebase Admin SDK (hỗ trợ xác thực, Realtime Database, Cloud Firestore, Cloud Messaging từ môi trường backend); Google API Services YouTube (kết nối và lấy dữ liệu video bài học trực tuyến); Google API Client Library (kết nối lưu trữ tệp tin trên Google Drive); thư viện Lombok (sử dụng các annotation để tự động sinh getter, setter, constructor, toString nhằm giảm thiểu mã lặp).
- Cổng thanh toán trực tuyến: Tích hợp giải pháp thanh toán điện tử của bên thứ ba VNPAY.
Phương pháp nghiên cứu và thực hiện:
- Phương pháp khảo sát hiện trạng: Phân tích thực tế hai hệ thống luyện thi trực tuyến đang vận hành gồm Study4 (study4.com) và Anh ngữ MsHoa (anhngumshoa.com). Tác giả chỉ ra Study4 có ưu điểm về đề thi ETS phong phú, hỗ trợ ghi chú từ vựng nhưng hệ thống hay gặp lỗi kết nối và một số khóa học chưa đạt chất lượng; trong khi Anh ngữ MsHoa có ưu thế về việc cung cấp bài tập miễn phí nhưng giao diện xử lý dữ liệu còn chậm, trải nghiệm chưa mượt mà.
- Phương pháp mô hình hóa và thiết kế phần mềm: Sử dụng chuẩn mô hình hóa Unified Modeling Language (UML) để xây dựng lược đồ ca sử dụng (Use Case Diagram), 38 bảng đặc tả ca sử dụng chi tiết, lược đồ lớp (Class Diagram), 22 lược đồ hoạt động (Activity Diagram), 36 lược đồ tuần tự (Sequence Diagram) và thiết kế 26 bảng cơ sở dữ liệu quan hệ.
- Phương pháp kiểm thử: Thực hiện kiểm thử chức năng bằng phương pháp kiểm thử hộp đen (Black-box testing), quản lý vòng đời lỗi bằng hệ thống phần mềm Jira và xây dựng kịch bản kiểm thử tự động hóa bằng công cụ Selenium WebDriver.
- Nguồn dữ liệu: Dữ liệu đề thi TOEIC hai kỹ năng (Listening và Reading) chuẩn cấu trúc quốc tế ETS qua các năm, tệp âm thanh nghe (.mp3), tài liệu từ vựng, ngữ pháp và hệ thống bài giảng video trực tuyến.
Thiết kế và triển khai
Hệ thống được thiết kế theo kiến trúc phân tách Client - Server hoàn chỉnh. Phía người dùng là ứng dụng ReactJS SPA tương tác với hệ thống Spring Boot Back-End thông qua các điểm cuối RESTful API, trao đổi dữ liệu hoàn toàn dưới định dạng JSON và bảo mật phiên bằng chuỗi mã hóa JWT. Cấu trúc mã nguồn Back-End được phân tách rõ ràng theo các tầng nghiệp vụ: Controller, Service, DAO, Entity và Enum.
Hệ thống phân chia thành hai nhóm tác tử chính với các ca sử dụng tương ứng:
- Phân hệ người dùng cuối (Khách và Học viên): Bao gồm các chức năng đăng ký tài khoản (kèm cơ chế xác thực qua mã OTP), đăng nhập, đổi mật khẩu, cập nhật thông tin cá nhân; tìm kiếm và xem danh sách khóa học, xem chi tiết khóa học, đăng ký khóa học và thanh toán trực tuyến qua cổng VNPAY; theo dõi khóa học đã mua, học tập qua video bài giảng, ghi chú bài học; tìm kiếm đề thi TOEIC, xem chi tiết đề thi, làm đề thi theo từng phần (part) với tệp âm thanh tương ứng, nộp bài và xem phân tích kết quả chi tiết; tham gia bình luận dưới đề thi; xem danh sách bài viết blog, xem chi tiết và đánh giá số sao bài viết.
- Phân hệ quản trị viên (Admin): Bao gồm bảng điều khiển trung tâm; quản lý người dùng (chuyển đổi trạng thái kích hoạt hoặc khóa tài khoản); quản lý danh mục đề thi; quản lý ngân hàng đề thi (thêm, sửa, đổi trạng thái); quản lý khóa học; quản lý chương học; quản lý bài học chi tiết; quản lý bài viết blog; theo dõi màn hình thống kê doanh thu bán khóa học; theo dõi màn hình thống kê số lượng người tham gia làm đề thi và quản lý hồ sơ cá nhân của quản trị viên.
Cơ sở dữ liệu của hệ thống được xây dựng trên MySQL với 26 bảng dữ liệu có liên kết quan hệ chặt chẽ:
| STT |
Tên bảng dữ liệu |
Mục đích và vai trò lưu trữ trong hệ thống |
| 1 |
users |
Lưu trữ thông tin tài khoản, email, mật khẩu, số điện thoại và vai trò người dùng |
| 2 |
khóa học |
Lưu trữ thông tin tổng quan, tiêu đề, mô tả và giá bán của các khóa học online |
| 3 |
chương học |
Quản lý cấu trúc các chương mục học tập thuộc từng khóa học |
| 4 |
bài học |
Lưu trữ chi tiết nội dung, liên kết video của từng bài học trong chương |
| 5 |
note |
Lưu trữ các đoạn ghi chú cá nhân của học viên trong quá trình xem bài học |
| 6 |
user_course |
Ghi nhận quan hệ đăng ký và sở hữu khóa học của từng tài khoản người dùng |
| 7 |
user_course_progress |
Theo dõi và lưu trữ tỷ lệ hoàn thành, tiến độ học tập của người dùng |
| 8 |
video_watch_history |
Lưu lại lịch sử xem video bài học phục vụ thống kê học tập |
| 9 |
hình ảnh |
Lưu trữ đường dẫn và metadata của các tệp hình ảnh trong hệ sinh thái |
| 10 |
thanh toán |
Ghi nhận chi tiết lịch sử giao dịch thanh toán mua khóa học |
| 11 |
phương thức thanh toán |
Cấu hình các hình thức thanh toán được hệ thống hỗ trợ (VNPAY) |
| 12 |
target |
Lưu trữ thông tin mục tiêu điểm số hoặc lộ trình học tập của người dùng |
| 13 |
comments |
Quản lý nội dung bình luận, trao đổi học thuật tại trang chi tiết đề thi |
| 14 |
reply_comments |
Lưu trữ các phản hồi phụ thuộc thuộc về từng bình luận cụ thể |
| 15 |
exam |
Lưu trữ thông tin định danh, cấu trúc và thời lượng của đề thi TOEIC |
| 16 |
question |
Ngân hàng câu hỏi trắc nghiệm của các bài thi |
| 17 |
exam_detail |
Quản lý chi tiết cấu trúc phân bố câu hỏi theo từng phần trong đề thi |
| 18 |
audio |
Quản lý tệp âm thanh nghe tương ứng cho các phần thi Listening |
| 19 |
category_exam |
Phân loại đề thi theo danh mục chứng chỉ và cấp độ |
| 20 |
topic_exam |
Quản lý các chủ đề chuyên môn của đề thi |
| 21 |
result |
Tổng hợp điểm số, thời gian nộp bài của từng lượt làm bài thi |
| 22 |
result_detail |
Lưu vết chi tiết đáp án chọn của người học đối chiếu với đáp án đúng |
| 23 |
post |
Lưu trữ nội dung các bài viết blog học thuật trên website |
| 24 |
points |
Quản lý điểm tích lũy hoặc thông tin thang điểm đánh giá |
| 25 |
ratings |
Lưu trữ điểm số đánh giá bằng số sao của người dùng đối với bài viết blog |
| 26 |
promotions |
Lưu trữ chính sách giảm giá, thông tin mã khuyến mãi áp dụng cho khóa học |
Quy trình kiểm thử và bảo đảm chất lượng phần mềm được triển khai theo ba giai đoạn:
- Thiết kế và thực thi bảng test case kiểm thử hộp đen: Đánh giá toàn diện các luồng hoạt động chuẩn, luồng thay thế và xử lý lỗi của toàn bộ các ca sử dụng từ phía người dùng đến quản trị viên.
- Quản lý lỗi bằng phần mềm Jira: Thực hiện theo dõi quy trình phát hiện, phân loại mức độ và sửa lỗi phần mềm thông qua các phiếu ghi nhận cụ thể, tiêu biểu như lỗi tại chức năng tạo bình luận và chức năng đăng ký tài khoản.
- Kiểm thử tự động hóa bằng Selenium WebDriver: Xây dựng các đoạn kịch bản mã nguồn tự động hóa việc mở trình duyệt, điều hướng URL, điền dữ liệu biểu mẫu và kiểm tra tính toàn vẹn của kết quả trả về trên giao diện.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 thiết lập nền tảng lý luận và tính cấp thiết của đề tài. Tác giả luận giải việc áp dụng công nghệ số vào giáo dục ngôn ngữ, chỉ ra tiếng Anh là điều kiện chuẩn đầu ra bắt buộc của sinh viên. Chương này định rõ hai đối tượng nghiên cứu cốt lõi (người dùng cuối và nhà quản trị hệ thống); xác định 4 phạm vi nghiên cứu thực tiễn (trải nghiệm người dùng, quản trị dữ liệu và bảo mật, quản trị kinh doanh/marketing, quản lý kỹ thuật); đồng thời công bố kế hoạch làm việc 11 tuần (từ tuần 04/03/2024 đến tuần 19/05/2024) và đề ra các mục tiêu giải pháp cụ thể.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày chi tiết các công nghệ nền tảng cấu thành hệ thống. Phần Front-End phân tích sâu cấu trúc ReactJS, cơ chế hoạt động của Virtual DOM so với DOM thật, cú pháp truyền dữ liệu Props và quản lý trạng thái qua State, cùng các thư viện Axios, SCSS, Material-UI, React Router, React Hook Form, React Helmet. Phần Back-End trình bày kiến trúc Java trên máy ảo JVM, framework Spring Boot và các module thành phần, hệ quản trị MySQL và tính nhất quán ACID. Ngoài ra, chương này làm rõ cách thức vận hành của chuẩn token bảo mật JWT (RFC 7519) gồm 3 phần (header, payload, signature), cơ chế của Firebase Admin SDK, YouTube API, Google Drive API và thư viện rút gọn mã nguồn Lombok.
Chương 3: Khảo sát hiện trạng và mô hình hóa yêu cầu
Chương 3 công bố kết quả khảo sát thực tế trên hai nền tảng Study4 và Anh ngữ MsHoa, đúc rút các yêu cầu cải tiến về tốc độ tải trang, giao diện mượt mà và tính năng hỗ trợ làm bài. Tác giả xác định chi tiết các yêu cầu chức năng (xem khóa học, xem đề thi, làm đề thi, thanh toán, quản lý hệ thống) và yêu cầu phi chức năng (hiệu suất xử lý đồng thời, tính an toàn thông tin giao dịch, khả năng mở rộng kiến trúc và tính sẵn sàng cao). Nội dung trọng tâm của chương là việc xây dựng 2 lược đồ use case tổng thể và hệ thống 38 bảng đặc tả ca sử dụng chi tiết (từ Bảng 3-1 đến Bảng 3-38) bao quát đầy đủ luồng sự kiện cơ bản và luồng thay thế khi có lỗi.
Chương 4: Thiết kế phần mềm
Chương 4 là chương có dung lượng kỹ thuật lớn nhất của luận văn, trình bày toàn diện thiết kế kiến trúc phần mềm:
- Thiết kế hành vi tương tác: Thể hiện thông qua Lược đồ lớp (Hình 4-1), 22 Lược đồ hoạt động (từ Hình 4-2 đến Hình 4-23) và 36 Lược đồ tuần tự (từ Hình 4-24 đến Hình 4-59), chi tiết hóa từng quy trình từ đăng nhập, đổi mật khẩu, tìm kiếm, làm bài, nộp bài, bình luận, thanh toán đến toàn bộ thao tác quản lý thêm, sửa, đổi trạng thái dữ liệu của quản trị viên.
- Thiết kế cơ sở dữ liệu: Trình bày Lược đồ cơ sở dữ liệu tổng thể (Hình 4-60) và đặc tả cấu trúc chi tiết 26 bảng dữ liệu (từ Bảng 4-1 đến Bảng 4-26) với đầy đủ kiểu dữ liệu, khóa chính, khóa ngoại.
- Thiết kế giao diện: Trình bày 26 màn hình giao diện thực tế kèm bảng mô tả chức năng chi tiết (từ Bảng 4-27 đến Bảng 4-52), bao gồm 16 màn hình người dùng (trang chủ, làm đề, video bài học, thanh toán VNPAY, kết quả thi, blog...) và 10 màn hình dành riêng cho quản trị viên (quản lý đề thi, quản lý bài học, thống kê doanh thu, thống kê lượt thi...).
Chương 5: Cài đặt và kiểm thử
Chương 5 tập trung vào công tác triển khai kỹ thuật và đánh giá chất lượng phần mềm. Tác giả giới thiệu môi trường công cụ sử dụng, phương pháp cài đặt ứng dụng và lập Bảng thống kê test case (Bảng 5-1) cho các chức năng theo phương pháp hộp đen. Chương này minh họa trực quan quy trình quản lý và khắc phục lỗi thực tế thông qua các thao tác xử lý lỗi trên phần mềm Jira (từ Hình 5-1 đến Hình 5-9). Cuối cùng, tác giả trình bày đoạn mã nguồn kiểm thử tự động viết bằng Selenium WebDriver (Hình 5-10) và hiển thị kết quả kiểm thử tự động thực tế (Hình 5-11).
Chương 6: Phần kết luận
Chương 6 tổng kết toàn bộ kết quả đạt được của đề tài, tóm lược các kiến thức tích lũy được trong quá trình nghiên cứu về Spring Boot, ReactJS, quy trình phát triển phần mềm và kiểm thử. Đồng thời, tác giả thẳng thắn chỉ ra các mặt hạn chế còn tồn tại của hệ thống và đề ra phương hướng hoàn thiện, phát triển ứng dụng trong các giai đoạn tiếp theo.
Kết quả và đóng góp
Về kết quả kỹ thuật, đề tài đã hoàn thành việc xây dựng một hệ thống website luyện thi tiếng Anh trực tuyến hoàn chỉnh với đầy đủ mã nguồn và cơ sở dữ liệu hoạt động ổn định:
- Hiện thực hóa thành công hai phân hệ chức năng: Phân hệ người dùng hỗ trợ toàn diện chu trình tự học (tìm kiếm khóa học, học qua video, làm bài kiểm tra TOEIC 2 kỹ năng, nhận kết quả và thảo luận) và phân hệ quản trị viên với các công cụ kiểm soát dữ liệu, phân quyền người dùng và bảng biểu thống kê doanh thu, lượt thi.
- Hoàn thành khối lượng thiết kế phần mềm chi tiết với 1 lược đồ lớp, 22 lược đồ hoạt động, 36 lược đồ tuần tự, 38 bảng đặc tả ca sử dụng, hệ thống 26 bảng cơ sở dữ liệu vật lý và 26 màn hình giao diện người dùng.
- Tích hợp thành công các giải pháp công nghệ của bên thứ ba bao gồm: Cổng thanh toán VNPAY phục vụ việc mua khóa học trực tuyến; dịch vụ video Google API YouTube; lưu trữ dữ liệu Google Drive API; hạ tầng Firebase Admin SDK; và cơ chế xác thực phiên làm việc bằng chuỗi token mã hóa JWT.
- Thiết lập quy trình kiểm thử đa diện: Kết hợp kiểm thử chức năng hộp đen, áp dụng công cụ chuyên nghiệp Jira trong quản lý lỗi và xây dựng kịch bản kiểm thử tự động hóa thông qua Selenium WebDriver.
Về mặt giải pháp, tác giả đã khắc phục được những hạn chế về trải nghiệm người dùng từng tồn tại ở các website khảo sát (Study4, MsHoa) bằng cách tinh giản quy trình nộp bài thi, cho phép chuyển phần (part) linh hoạt, hỗ trợ không gian thảo luận trực tiếp dưới mỗi đề thi và bảo vệ quá trình giao dịch bằng xác thực mã OTP và cổng thanh toán trực tuyến an toàn.
Về đóng góp thực tiễn, đồ án cung cấp một nền tảng học tập số hữu ích cho sinh viên ôn luyện chứng chỉ tiếng Anh tốt nghiệp; đồng thời cung cấp tài liệu kỹ thuật hoàn chỉnh về phân tích, thiết kế hệ thống và quy trình triển khai ứng dụng web kết hợp ReactJS và Spring Boot, có thể dùng làm tài liệu tham khảo cho các dự án phát triển phần mềm đào tạo trực tuyến tương tự.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các nội dung được tác giả công bố tại chương kết luận và phạm vi nghiên cứu, đề tài còn một số điểm hạn chế:
- Hệ thống đề thi hiện tại mới tập trung chủ yếu vào định dạng bài thi TOEIC hai kỹ năng (Listening và Reading), chưa mở rộng sang hai kỹ năng Speaking và Writing hoặc các định dạng chứng chỉ quốc tế khác như IELTS.
- Các tính năng phân tích chuyên sâu về hành vi học tập, gợi ý lộ trình ôn tập cá nhân hóa dựa trên kết quả làm bài của từng học viên chưa được hoàn thiện chuyên sâu.
- Cơ chế thống kê doanh thu và báo cáo phân tích kinh doanh mới dừng lại ở các chỉ số cơ bản, chưa tích hợp các biểu đồ phân tích đa chiều hoặc báo cáo tài chính phức tạp.
Các hướng phát triển tiếp theo được tác giả xác định bao gồm:
- Mở rộng ngân hàng câu hỏi và các dạng đề thi mới, bổ sung các bài thi chứng chỉ ngoại ngữ khác nhằm đáp ứng đa dạng nhu cầu của người học.
- Nâng cấp các tính năng hỗ trợ học tập thông minh, xây dựng cơ chế gợi ý bài học tự động dựa trên phân tích các phần câu hỏi mà người dùng làm sai nhiều nhất.
- Nâng cao mức độ bao phủ của hệ thống kiểm thử tự động Selenium và tối ưu hóa hiệu năng máy chủ nhằm đáp ứng số lượng lớn người dùng truy cập đồng thời trong các kỳ thi thử cao điểm.
Giá trị tham khảo
Báo cáo khóa luận tốt nghiệp này mang lại giá trị tham khảo thiết thực cho nhiều nhóm đối tượng:
- Sinh viên chuyên ngành Công nghệ phần mềm và Công nghệ thông tin: Tài liệu là một hình mẫu chuẩn mực về việc xây dựng một khóa luận tốt nghiệp hoàn chỉnh từ bước khảo sát hiện trạng, lập mô hình yêu cầu (Use Case), thiết kế chi tiết hành vi (Activity Diagram, Sequence Diagram), thiết kế cơ sở dữ liệu quan hệ (26 bảng dữ liệu) đến thiết kế giao diện người dùng.
- Lập trình viên và người nghiên cứu phát triển ứng dụng Web: Cung cấp tài liệu tham khảo hữu ích về cách thức tổ chức dự án full-stack kết hợp giữa Spring Boot (Back-End) và ReactJS (Front-End) theo chuẩn kiến trúc RESTful API, cùng kỹ thuật tích hợp các dịch vụ bên thứ ba như JWT, VNPAY, Firebase Admin SDK và YouTube API.
- Đội ngũ kiểm thử phần mềm (Tester/QA): Nội dung Chương 5 là tài liệu thực hành có giá trị về việc thiết kế test case hộp đen, quy trình quản lý và phân loại bug trên Jira, cũng như cách thức viết script kiểm thử tự động hóa bằng Selenium WebDriver.
Câu hỏi thường gặp
1. Khóa luận giải quyết vấn đề bảo mật và xác thực người dùng bằng các kỹ thuật nào?
Hệ thống áp dụng cơ chế xác thực tài khoản hai lớp: khi người dùng đăng ký tài khoản mới, hệ thống kích hoạt giao diện nhập mã OTP để xác minh tính chính xác trước khi lưu trữ; trong quá trình đăng nhập và thực hiện các phiên làm việc, hệ thống sử dụng chuẩn JSON Web Token (JWT - RFC 7519) gồm 3 phần (header, payload, signature) để mã hóa và phân quyền cho người dùng và quản trị viên, đảm bảo các điểm cuối API được bảo vệ an toàn.
2. Giao diện làm đề thi trực tuyến hỗ trợ người học những tính năng gì?
Giao diện làm đề thi TOEIC cho phép hiển thị các câu hỏi trắc nghiệm theo từng phần (part), hỗ trợ nghe tệp âm thanh đồng bộ trực tiếp trên trang, cho phép chuyển đổi nhanh chóng giữa các phần thi thông qua tab điều hướng hoặc nút "Tiếp theo", có thông báo xác nhận khi nộp bài, hiển thị trang phân tích kết quả làm bài chi tiết và cung cấp khu vực thảo luận, bình luận trực tiếp bên dưới đề thi.
3. Hệ thống tích hợp các dịch vụ bên thứ ba nào để hoàn thiện các chức năng nghiệp vụ?
Hệ thống tích hợp cổng thanh toán trực tuyến VNPAY để thực hiện giao dịch mua khóa học; sử dụng Google API Services YouTube để lấy và hiển thị luồng dữ liệu video bài giảng; sử dụng Google API Client Library để tương tác và lưu trữ dữ liệu trên Google Drive; và sử dụng Firebase Admin SDK từ môi trường máy chủ để phục vụ các dịch vụ đám mây.
4. Cơ sở dữ liệu của phần mềm có quy mô bao nhiêu bảng và gồm những nhóm thông tin chính nào?
Cơ sở dữ liệu MySQL của hệ thống bao gồm 26 bảng dữ liệu được chuẩn hóa, chia thành các nhóm chính: người dùng (users), khóa học và bài giảng (khóa học, chương học, bài học, note, user_course, user_course_progress, video_watch_history), đề thi và câu hỏi (exam, question, exam_detail, audio, category_exam, topic_exam, result, result_detail), tương tác người dùng (comments, reply_comments, post, ratings), cùng hệ thống giao dịch thanh toán (thanh toán, phương thức thanh toán, promotions, target, hình ảnh, points).
5. Tác giả đã sử dụng những công cụ và phương pháp nào để kiểm thử phần mềm?
Tác giả đã lập bảng test case kiểm thử hộp đen cho toàn bộ các chức năng giao diện; sử dụng hệ thống Jira để theo dõi, quản lý vòng đời và khắc phục các bug phần mềm phát sinh (minh họa bằng các lỗi ở chức năng tạo bình luận và đăng ký); đồng thời lập trình kịch bản tự động hóa kiểm thử bằng công cụ Selenium WebDriver để tự động chạy và đánh giá kết quả trên trình duyệt.
Kết luận
Đồ án tốt nghiệp "Xây dựng website luyện thi tiếng anh online" của tác giả Trần Đình Hải (Trường Đại học Sư phạm Kỹ thuật TP.HCM) là một công trình nghiên cứu ứng dụng hoàn chỉnh trong lĩnh vực công nghệ phần mềm. Tác giả đã kết hợp thành công hai nền tảng công nghệ phổ biến là ReactJS và Spring Boot, xây dựng được hệ sinh thái website phục vụ hiệu quả nhu cầu tự học, làm bài thi TOEIC trực tuyến và quản lý khóa học. Với hệ thống tài liệu đặc tả chi tiết từ 38 ca sử dụng, 58 lược đồ UML đến cấu trúc 26 bảng cơ sở dữ liệu và quy trình kiểm thử hoàn chỉnh, công trình là tài liệu tham khảo có giá trị học thuật và ứng dụng thực tiễn cao cho sinh viên và các nhà phát triển phần mềm trong lĩnh vực giáo dục trực tuyến.