Bối cảnh và vấn đề nghiên cứu
Trong xu thế toàn cầu hóa và hội nhập kinh tế quốc tế, ngoại ngữ đóng vai trò là phương tiện giao tiếp, kết nối văn hóa và thúc đẩy hợp tác đa phương diện giữa các quốc gia. Trong số các ngôn ngữ trên thế giới, tiếng Anh được đánh giá là ngôn ngữ phổ biến, được sử dụng rộng rãi trong các cơ quan, tổ chức đa quốc gia và là một trong những tiêu chuẩn bắt buộc đối với sinh viên tốt nghiệp cũng như người đi làm tìm kiếm cơ hội thăng tiến. Xuất phát từ nhu cầu thực tiễn về việc nâng cao năng lực ngoại ngữ và củng cố vốn từ vựng thông qua các giải pháp công nghệ trực tuyến, nhóm tác giả Trần Phương Linh và Võ Ngọc Phong, dưới sự hướng dẫn của TS. Lê Văn Vinh tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (Khoa Đào tạo Chất lượng cao, Ngành Công nghệ Thông tin, Chuyên ngành Công nghệ Phần mềm), đã thực hiện đề tài khóa luận: "Xây dựng website học tiếng Anh sử dụng Mern Stack".
Theo thuyết minh của đề tài, các mục tiêu và nhiệm vụ nghiên cứu cụ thể bao gồm:
- Khảo sát hiện trạng các ứng dụng, website học tiếng Anh phổ biến hiện nay trên thị trường; phân tích ưu điểm, nhược điểm của từng hệ thống để làm cơ sở xây dựng chức năng phù hợp.
- Nghiên cứu cơ sở lý thuyết và kỹ thuật của bộ công nghệ MERN Stack (gồm MongoDB, ExpressJS, ReactJS, NodeJS) kết hợp cùng kiến trúc RESTful API nhằm giải quyết việc cung cấp dịch vụ giao diện và dữ liệu cho hệ thống học tập trực tuyến.
- Giải quyết các vấn đề kỹ thuật phát sinh trong quá trình xây dựng website thực tế, bao gồm việc ứng dụng JSON Web Token (JWT) để nâng cao bảo mật hệ thống và xử lý việc lưu trữ tệp đa phương tiện (chuyển đổi tệp âm thanh và video thành chuỗi Base64 để lưu vào cơ sở dữ liệu thay vì sử dụng Blob).
- Xây dựng hoàn chỉnh trang web học tiếng Anh trực tuyến đáp ứng các nghiệp vụ học tập cho người học, bao gồm học ngữ pháp, từ vựng, phiên âm, luyện nghe, làm bài kiểm tra và trò chơi ôn tập.
- Xây dựng phân hệ quản trị dành cho Người quản trị (Admin) và Người tạo nội dung (Content Creator) để quản lý tài nguyên dữ liệu và người dùng trong hệ thống.
Về đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Các nghiệp vụ và nhu cầu tự học tiếng Anh trực tuyến; bộ công nghệ lập trình web MERN Stack (NodeJS, ExpressJS, MongoDB, ReactJS), kiến trúc RESTful API và cơ chế bảo mật xác thực phân quyền qua JSON Web Token.
- Phạm vi nghiên cứu:
- Phạm vi chức năng: Đề tài giới hạn trong hai phân hệ chính. Phân hệ Quản trị gồm các chức năng quản lý tài khoản, quản lý bài nghe, ngữ pháp, từ vựng, bài tập trắc nghiệm và thống kê hệ thống. Phân hệ Người dùng tập trung vào các chức năng đăng ký, đăng nhập, học phát âm theo bảng phiên âm, học ngữ pháp, học từ vựng (dưới dạng slide và gallery), luyện nghe kèm transcript/trắc nghiệm, làm bài kiểm tra theo định dạng đề thi TOEIC (thời lượng 120 phút), tham gia 3 mini-game ("Hãy chọn từ đúng", "Ghép từ", "Tay nhanh hơn não"), xem bảng xếp hạng và quản lý thông tin cá nhân.
- Thời gian thực hiện: Giao đề tài ngày 07/03/2022 và hoàn thành nộp báo cáo vào ngày 18/06/2022.
Cơ sở lý thuyết và phương pháp
Khóa luận thiết lập nền tảng phát triển dựa trên các công nghệ cốt lõi của hệ sinh thái JavaScript và mô hình phát triển phần mềm hiện đại:
- NodeJS: Môi trường thực thi JavaScript đa nền tảng mã nguồn mở phía máy chủ, xây dựng trên V8 JavaScript Engine của Google Chrome. Khóa luận khai thác đặc tính hướng sự kiện (event-driven), cơ chế vào/ra không chặn (non-blocking I/O) và mô hình đơn luồng (single-thread) để xử lý lượng lớn kết nối đồng thời với mức tiêu hao bộ nhớ thấp.
- ExpressJS: Framework web tối giản chạy trên nền NodeJS, đóng vai trò xây dựng lớp điều hướng (routing), xử lý phần mềm trung gian (middleware) và triển khai các điểm cuối (endpoints) của RESTful API.
- MongoDB: Hệ quản trị cơ sở dữ liệu hướng tài liệu mã nguồn mở thuộc nhóm NoSQL. MongoDB lưu trữ dữ liệu dưới dạng tài liệu (document) JSON/BSON linh hoạt, không bắt buộc lược đồ cố định, hỗ trợ mở rộng ngang (sharding) và tối ưu tốc độ đọc ghi dữ liệu học tập.
- ReactJS: Thư viện JavaScript mã nguồn mở cho phía máy khách (phát triển bởi Facebook) phục vụ xây dựng giao diện người dùng dựa trên thành phần (component-based), luồng dữ liệu một chiều (one-way data binding) và DOM ảo (Virtual DOM) để tăng tốc độ phản hồi và kết xuất trang.
- RESTful API: Kiến trúc giao tiếp chuẩn giữa máy khách (ReactJS) và máy chủ (NodeJS/ExpressJS) thông qua giao thức HTTP với các phương thức CRUD chuẩn:
GET (đọc dữ liệu), POST (tạo mới dữ liệu), PUT (cập nhật dữ liệu), DELETE (xóa dữ liệu).
- JSON Web Token (JWT): Tiêu chuẩn mở dùng để xác thực và phân quyền truy cập. Token bao gồm ba phần: Header (chứa loại token và thuật toán ký như HS256/RSA), Payload (chứa thông tin định danh và quyền hạn của người dùng) và Signature (chữ ký số tạo từ Header, Payload và khóa bí mật). Trong hệ thống, mọi yêu cầu từ người dùng đều phải qua một bộ chặn (Interceptor) để kiểm tra tính hợp lệ của token trước khi máy chủ xử lý.
Phương pháp nghiên cứu thực tế được triển khai qua các bước:
- Phương pháp phân tích - so sánh: Tiến hành khảo sát 5 nền tảng học tiếng Anh trực tuyến tiêu biểu (Duolingo, Elllo, BBC Learning English, Voca.vn, Busuu) nhằm phân tích cấu trúc chức năng, ưu điểm và hạn chế của từng hệ thống.
- Phương pháp mô hình hóa hướng đối tượng và phân tích yêu cầu: Sử dụng ngôn ngữ mô hình hóa UML để xây dựng sơ đồ trường hợp sử dụng (Use Case Diagram), sơ đồ tuần tự (Sequence Diagram), sơ đồ lớp (Class Diagram) và mô hình dữ liệu.
- Phương pháp kỹ thuật phần mềm: Áp dụng quy trình kỹ thuật lập trình web theo kiến trúc phân tách Client-Server, kiểm thử phần mềm bằng phương pháp hộp đen (Black-box testing) trên các chức năng trọng yếu.
- Nguồn dữ liệu: Tài liệu khảo sát chức năng từ các trang web học tiếng Anh; giáo trình phiên âm, ngữ pháp, đề thi trắc nghiệm định dạng TOEIC và danh mục từ vựng tiếng Anh.
Nội dung chính theo từng chương
Bố cục của khóa luận gồm phần mở đầu, 4 chương nội dung chính, phần kết luận và tài liệu tham khảo:
Phần Mở đầu
Trình bày tính cấp thiết của việc xây dựng công cụ học tiếng Anh, nêu rõ mục đích nghiên cứu, cách tiếp cận, đối tượng, phạm vi giới hạn của đề tài và kết quả dự kiến đạt được của hệ thống website.
Chương 1: Cơ sở lý thuyết và công nghệ nền tảng
Chương này tập trung trình bày tổng quan lý thuyết về các công nghệ được lựa chọn trong đề tài. Nội dung phân tích chi tiết định nghĩa, tính năng, ưu điểm và nhược điểm của NodeJS, ExpressJS, MongoDB, kiến trúc RESTful API, ReactJS và cơ chế bảo mật JWT. Nhóm tác giả giải thích rõ lý do kết hợp các công nghệ này thành bộ công nghệ MERN Stack đồng nhất bằng ngôn ngữ JavaScript từ tầng giao diện (Front-end) đến tầng máy chủ (Back-end) và tầng dữ liệu (Database).
Chương 2: Khảo sát hiện trạng và xác định yêu cầu
Tác giả tiến hành phân tích chi tiết 5 website học ngoại ngữ tiêu biểu:
| Tên Website |
Chức năng chính |
Ưu điểm ghi nhận |
Nhược điểm ghi nhận |
| Duolingo |
Học đa ngôn ngữ, lộ trình phân cấp, đặt mục tiêu hàng ngày, bảng xếp hạng, diễn đàn. |
Giao diện thân thiện, kho bài học phong phú từ cơ bản đến nâng cao. |
Phù hợp chủ yếu cho người mất gốc; dễ gây nhàm chán cho người đã có nền tảng. |
| Elllo |
Hơn 1300 bài luyện nghe qua video/audio, script, bài tập trắc nghiệm, tìm kiếm theo chủ đề. |
Bài học có đầy đủ transcript, bài tập đi kèm; cho phép tải về học ngoại tuyến. |
Cấu trúc website phức tạp, chưa sắp xếp theo lộ trình tuần tự, khó tiếp cận cho người mới. |
| BBC Learning English |
Luyện nghe theo video, học ngữ pháp, phát âm, thi kiểm tra trình độ, bài học phân cấp độ. |
Video bài giảng chất lượng cao; số lượng bài học phong phú; giao diện rõ ràng. |
Nội dung chủ yếu phù hợp với người học có trình độ tiếng Anh từ mức khá trở lên. |
| Voca.vn |
Tra cứu từ điển, ghim từ vựng, luyện đề thi thử THPT, kiểm tra trình độ từ vựng theo cấp độ. |
Phương pháp sinh động; có tính năng nhắc nhở tự động; thư viện từ vựng đầu tư tốt. |
Cần trả phí sau các bộ từ miễn phí; chưa tối ưu toàn diện cho cả 4 kỹ năng (thiên về từ vựng). |
| Busuu |
Khóa học kỹ năng (nghe, nói, viết, chính tả), diễn đàn giao lưu quốc tế, thống kê tiến độ học. |
Hỗ trợ đa ngôn ngữ; giao diện trực quan; bài học chia theo lộ trình; tương tác cộng đồng. |
Số lượng bài tập miễn phí bị giới hạn; người dùng phải trả phí để mở khóa toàn bộ tính năng. |
Từ kết quả phân tích hiện trạng, chương 2 xác định 4 tác nhân tương tác với hệ thống:
- Người quản trị (Admin): Nắm quyền hạn cao nhất, thực hiện 7 chức năng: Khóa người dùng, Mở khóa người dùng, Phân quyền người dùng, Xem thống kê hệ thống (số lượng người dùng, ngữ pháp, bài nghe, từ vựng, trắc nghiệm), Thêm người dùng, Chỉnh sửa người dùng, Xem danh sách người dùng.
- Người tạo nội dung (Content Creator): Thực hiện 14 chức năng quản lý nội dung học tập: Xem, thêm, sửa, xóa bài nghe; Xem, thêm, sửa, xóa ngữ pháp; Xem, thêm, sửa, xóa từ vựng; Thêm và chỉnh sửa bài trắc nghiệm kèm theo bài nghe/ngữ pháp.
- Người dùng được xác thực (Authenticated User): Thực hiện 11 chức năng: Đăng nhập, đăng xuất, học bảng phiên âm, học ngữ pháp, học luyện nghe, học từ vựng, tham gia 3 trò chơi, xem bảng xếp hạng trò chơi, làm bài kiểm tra TOEIC (120 phút), đổi mật khẩu, cập nhật thông tin cá nhân.
- Khách vãng lai (Guest): Thực hiện chức năng đăng ký tài khoản mới để tham gia vào hệ thống.
Chương này cũng thiết lập các yêu cầu phi chức năng (tốc độ tải video/audio, thời gian tải lên không quá 1 phút, lưu trữ dữ liệu lớn, bảo mật mật khẩu, cơ chế tìm kiếm chính xác) và mô hình hóa các trường hợp sử dụng bằng lược đồ Use Case chi tiết.
Chương 3: Thiết kế phần mềm
Chương này chuyển đổi các yêu cầu thành mô hình kỹ thuật phần mềm cụ thể:
- Thiết kế lược đồ tuần tự (Sequence Diagram): Biểu diễn luồng tương tác giữa Người dùng/Khách vãng lai/Người quản trị/Người tạo nội dung với giao diện ReactJS, bộ chặn Interceptor, máy chủ ExpressJS và cơ sở dữ liệu MongoDB cho từng chức năng (Đăng ký, Đăng nhập, Học phiên âm, Học ngữ pháp, Học từ vựng, Làm bài kiểm tra, Quản lý bài nghe, v.v.).
- Thiết kế cơ sở dữ liệu: Xây dựng cấu trúc các bảng/tập hợp (collections) trên MongoDB để lưu trữ thông tin tài khoản người dùng, bảng xếp hạng, bài học ngữ pháp, danh mục từ vựng, câu hỏi trắc nghiệm, bài nghe và các liên kết khóa ngoại phục vụ truy vấn.
- Thiết kế giao diện: Xây dựng đặc tả chi tiết màn hình người dùng (Trang chủ, Chi tiết bài nghe, Cấp độ ngữ pháp, Danh sách từ vựng theo chế độ Slide và Gallery, Giao diện 3 trò chơi ôn tập từ vựng, Bảng xếp hạng) và màn hình quản trị (Dashboard thống kê tổng quan, Màn hình CRUD từ vựng, bài nghe, ngữ pháp, bài trắc nghiệm và quản lý người dùng).
Chương 4: Cài đặt và kiểm thử
Chương này trình bày môi trường cài đặt thực tế, danh mục công cụ, thư viện phụ trợ và công nghệ sử dụng trong dự án. Tác giả thực hiện kiểm thử chức năng hệ thống theo phương pháp hộp đen, xây dựng các kịch bản kiểm thử (Test Cases) chi tiết cho các chức năng then chốt bao gồm: kiểm thử đăng nhập (các mã kiểm thử từ TC_SI_01 đến TC_SI_03), kiểm thử đăng ký tài khoản (TC_SU_01 đến TC_SU_05), kiểm thử thêm từ vựng (TC_AW_01 đến TC_AW_03) và kiểm thử thêm người dùng trong trang quản trị (TC_AU_01 đến TC_AU_02).
Thiết kế và triển khai
Hệ thống được thiết kế và triển khai theo mô hình kiến trúc ứng dụng web hiện đại, tách biệt hoàn toàn giữa tầng hiển thị và tầng dịch vụ:
Kiến trúc hệ thống và luồng dữ liệu
Hệ thống hoạt động theo mô hình Client - Server thông qua giao thức truyền thông HTTP/HTTPS:
- Tầng Client (Giao diện): Được xây dựng bằng ReactJS, chịu trách nhiệm kết xuất giao diện đơn trang (Single Page Application - SPA), quản lý trạng thái giao diện và tương tác của người dùng. Các cuộc gọi dữ liệu được gửi thông qua HTTP Client dưới dạng bất đồng bộ đến các API của máy chủ.
- Tầng Server (Xử lý dịch vụ): Được xây dựng trên môi trường NodeJS và framework ExpressJS, đóng vai trò tiếp nhận các yêu cầu HTTP, phân tuyến (routing), xử lý logic nghiệp vụ, xác thực quyền hạn và truy xuất tầng cơ sở dữ liệu.
- Tầng Cơ sở dữ liệu: Hệ quản trị cơ sở dữ liệu MongoDB lưu trữ toàn bộ dữ liệu dưới dạng Document BSON.
Cơ chế xác thực và bảo mật bằng JSON Web Token
Quy trình kiểm soát truy cập và bảo vệ API được thực hiện tuần tự:
- Người dùng gửi thông tin định danh (tên đăng nhập và mật khẩu đã được mã hóa) đến điểm cuối đăng nhập của máy chủ.
- Máy chủ xác thực thông tin tài khoản. Nếu hợp lệ, máy chủ khởi tạo một chuỗi JWT (chứa thông tin định danh người dùng và vai trò phân quyền trong phần Payload, được ký điện tử bằng thuật toán mã hóa và khóa bí mật) rồi trả về cho máy khách.
- Ở phía giao diện máy khách, chuỗi JWT được lưu trữ và đính kèm vào phần tiêu đề (Header) của mọi yêu cầu gửi lên máy chủ.
- Tại máy chủ ExpressJS, một phần mềm trung gian (Interceptor/Middleware) chặn mọi yêu cầu đến các tài nguyên cần bảo vệ để kiểm tra tính toàn vẹn và thời hạn của JWT. Yêu cầu chỉ được chuyển tiếp đến bộ xử lý nghiệp vụ khi JWT hợp lệ; nếu không hợp lệ hoặc thiếu quyền hạn, máy chủ sẽ từ chối truy cập.
Giải pháp kỹ thuật xử lý dữ liệu âm thanh và video
Trong quá trình phát triển ứng dụng web học ngoại ngữ, việc lưu trữ và phát các tệp đa phương tiện (audio phát âm, video bài giảng, đoạn ghi âm luyện nghe) là một yêu cầu kỹ thuật trọng yếu. Khóa luận ghi nhận vấn đề phát sinh: hệ thống gặp trở ngại khi không thể lưu trữ trực tiếp các tệp video và audio bằng kiểu dữ liệu nhị phân Blob trong cơ sở dữ liệu. Nhóm tác giả đã đưa ra giải pháp kỹ thuật là chuyển đổi toàn bộ định dạng video và audio sang chuỗi Base64 (chuỗi ký tự mã hóa an toàn base64url), sau đó lưu trữ trực tiếp chuỗi ký tự này vào các trường dữ liệu của tài liệu MongoDB. Khi người dùng truy cập bài học, chuỗi Base64 được tải về máy khách và giải mã để phát âm thanh/video trực tiếp trên trình duyệt.
Kiểm thử chức năng hệ thống
Khóa luận đã thiết lập các ca kiểm thử hộp đen cụ thể để đánh giá độ chính xác của các chức năng nghiệp vụ:
| Tên chức năng |
Mã kiểm thử |
Dữ liệu/Thao tác kiểm thử |
Kết quả mong đợi |
| Đăng nhập |
TC_SI_01 – TC_SI_03 |
Nhập trường hợp đúng tài khoản/mật khẩu; nhập sai mật khẩu; để trống trường dữ liệu. |
Đăng nhập thành công, lưu token; hiển thị cảnh báo lỗi tương ứng với dữ liệu sai. |
| Đăng ký |
TC_SU_01 – TC_SU_05 |
Nhập đầy đủ thông tin hợp lệ; để trống các trường bắt buộc; nhập email không đúng định dạng; nhập mật khẩu xác nhận không khớp; đăng ký tài khoản đã tồn tại. |
Khởi tạo tài khoản người dùng mới thành công; báo lỗi xác thực form tại từng trường dữ liệu không hợp lệ. |
| Thêm từ vựng |
TC_AW_01 – TC_AW_03 |
Nhập từ mới, nghĩa, phiên âm và đính kèm tệp âm thanh hợp lệ; bỏ trống trường bắt buộc; đính kèm tệp không đúng định dạng. |
Lưu từ vựng vào hệ thống; hiển thị thông báo lỗi khi thiếu thông tin hoặc sai tệp đính kèm. |
| Thêm người dùng |
TC_AU_01 – TC_AU_02 |
Quản trị viên nhập thông tin người dùng mới kèm vai trò; để trống trường hoặc nhập trùng tài khoản. |
Thêm tài khoản vào cơ sở dữ liệu thành công; thông báo lỗi trùng lặp khi thông tin đã tồn tại. |
Kết quả và đóng góp
Sau quá trình nghiên cứu và triển khai từ tháng 03/2022 đến tháng 06/2022, khóa luận đã đạt được các kết quả cụ thể:
- Xây dựng hoàn chỉnh hệ thống website học tiếng Anh trực tuyến: Triển khai thành công hai phân hệ độc lập gồm giao diện học tập phía người dùng và giao diện quản trị hệ thống phía quản trị viên và người tạo nội dung.
- Đáp ứng đầy đủ các module học tập ngoại ngữ:
- Cung cấp module học bảng phiên âm chuẩn quốc tế kèm audio mẫu và video hướng dẫn.
- Cung cấp module học ngữ pháp theo cấp độ kèm ví dụ, video bài giảng và transcript chi tiết.
- Cung cấp module học từ vựng linh hoạt với hai chế độ hiển thị: chế độ xem danh mục (Gallery) và chế độ trình chiếu từng từ (Slide).
- Cung cấp module luyện nghe tích hợp bài tập trắc nghiệm củng cố ngay sau khi nghe.
- Xây dựng 3 trò chơi rèn luyện trí nhớ từ vựng ("Hãy chọn từ đúng", "Ghép từ", "Tay nhanh hơn não") có hệ thống tính điểm và hiển thị bảng xếp hạng thành tích người chơi.
- Tích hợp module thi thử với đề kiểm tra tổng hợp chuẩn hóa theo định dạng đề thi TOEIC với đồng hồ đếm ngược 120 phút.
- Triển khai phân hệ quản lý dữ liệu toàn diện (CRUD): Giúp Người quản trị và Người tạo nội dung dễ dàng thêm mới, chỉnh sửa, xóa và tìm kiếm danh sách bài nghe, từ vựng, ngữ pháp, câu hỏi trắc nghiệm, quản lý và phân quyền tài khoản người dùng, đồng thời theo dõi thống kê số liệu tổng quan của website.
- Đóng góp về mặt kỹ thuật:
- Đưa ra giải pháp kỹ thuật lưu trữ dữ liệu đa phương tiện bằng cách mã hóa Base64 cho tệp âm thanh và video để lưu trực tiếp vào cơ sở dữ liệu MongoDB, giải quyết bài toán phát sinh khi không lưu được Blob.
- Hiện thực hóa quy trình bảo mật phân quyền hoàn chỉnh dựa trên JSON Web Token và Interceptor cho ứng dụng MERN Stack, kiểm soát chặt chẽ luồng vào/ra của dữ liệu người dùng.
Hạn chế và hướng nghiên cứu tiếp
Dựa trên các phân tích và đánh giá trong văn bản khóa luận, hệ thống vẫn tồn tại một số hạn chế kỹ thuật và nghiệp vụ:
- Hạn chế kỹ thuật của cơ sở dữ liệu và xử lý tệp: Do MongoDB có giới hạn kích thước tối đa cho mỗi tài liệu BSON là 16MB, việc chuyển đổi video và audio thành chuỗi Base64 rồi lưu trữ trực tiếp vào cơ sở dữ liệu làm gia tăng dung lượng lưu trữ không cần thiết và có thể gây ảnh hưởng đến hiệu suất đọc/ghi nếu kích thước tệp lớn. Bên cạnh đó, MongoDB không hỗ trợ ràng buộc toàn vẹn chặt chẽ như cơ sở dữ liệu quan hệ và không có các phép kết nối (JOIN) nguyên bản, đòi hỏi phải xử lý logic dữ liệu bằng mã nguồn.
- Hạn chế của môi trường thực thi: NodeJS sử dụng kiến trúc đơn luồng nên gặp hạn chế về hiệu năng khi phải xử lý các tác vụ tính toán nặng, tốn nhiều tài nguyên CPU.
- Hạn chế về tính năng và nội dung: Dữ liệu bài học và ngân hàng câu hỏi kiểm tra vẫn phụ thuộc vào việc nhập liệu thủ công của người tạo nội dung; chưa hỗ trợ tính năng tự động nhận diện giọng nói để chấm điểm phát âm cho người học.
Hướng phát triển tiếp theo được đề xuất:
- Tối ưu hóa giải pháp lưu trữ tệp đa phương tiện: Tách các tệp video và audio dung lượng lớn ra khỏi cơ sở dữ liệu tài liệu NoSQL, chuyển sang các dịch vụ lưu trữ đám mây chuyên dụng hoặc hệ thống lưu trữ phân tán để giảm tải cho MongoDB.
- Mở rộng thêm các tính năng nâng cao: Nghiên cứu tích hợp các giải pháp nhận diện giọng nói (Voice Recognition) để hỗ trợ chấm điểm và sửa lỗi phát âm trực tiếp cho người dùng; phát triển thêm ứng dụng trên nền tảng di động (Mobile App).
Giá trị tham khảo
Báo cáo khóa luận tốt nghiệp này là tài liệu tham khảo hữu ích cho sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và các nhà phát triển web:
- Tham khảo về kiến trúc ứng dụng MERN Stack: Cung cấp tài liệu mẫu về cách tổ chức mã nguồn, kết nối giữa ReactJS ở phía giao diện với NodeJS/ExpressJS ở phía máy chủ và MongoDB ở tầng dữ liệu.
- Tham khảo về cơ chế bảo mật JWT: Tài liệu mô tả rõ ràng quy trình xác thực người dùng, cấu trúc Header - Payload - Signature và cách thức cấu hình Interceptor để kiểm soát quyền truy cập API.
- Tham khảo về quy trình phân tích và thiết kế phần mềm: Toàn bộ hệ thống sơ đồ Use Case, bảng mô tả trường hợp sử dụng (Use Case Specification), sơ đồ tuần tự (Sequence Diagram), sơ đồ lớp và kịch bản kiểm thử (Test Cases) được trình bày bài bản, phù hợp làm mẫu cho các đồ án chuyên ngành và khóa luận tốt nghiệp công nghệ thông tin.
Câu hỏi thường gặp
1. Hệ thống xử lý vấn đề lưu trữ tệp âm thanh và video như thế nào khi gặp sự cố không lưu được bằng Blob?
Nhóm tác giả đã giải quyết vấn đề bằng cách chuyển đổi các tệp đa phương tiện (video và audio) sang định dạng chuỗi mã hóa Base64, sau đó lưu trữ trực tiếp chuỗi ký tự này vào các trường dữ liệu tương ứng trong cơ sở dữ liệu MongoDB.
2. Hệ thống áp dụng cơ chế nào để bảo mật và phân quyền người dùng?
Hệ thống sử dụng tiêu chuẩn JSON Web Token (JWT). Sau khi người dùng đăng nhập thành công, máy chủ tạo một JWT trả về cho máy khách. Mỗi yêu cầu từ người dùng gửi lên máy chủ đều phải đính kèm token này qua một bộ chặn (Interceptor) để kiểm tra tính hợp lệ và phân quyền trước khi thực thi xử lý nghiệp vụ.
3. Khóa luận khảo sát những website học tiếng Anh nào để rút ra yêu cầu chức năng?
Khóa luận đã khảo sát và phân tích hiện trạng của 5 website học ngoại ngữ uy tín gồm: Duolingo, Elllo, BBC Learning English, Voca.vn và Busuu.
4. Hệ thống phân chia thành bao nhiêu nhóm người dùng và quyền hạn của mỗi nhóm là gì?
Hệ thống xác định 4 tác nhân chính: Khách vãng lai (đăng ký tài khoản), Người dùng được xác thực (học ngữ pháp, từ vựng, phát âm, nghe, chơi 3 mini-game, thi thử TOEIC 120 phút), Người tạo nội dung (quản lý CRUD bài nghe, ngữ pháp, từ vựng, câu hỏi trắc nghiệm) và Người quản trị (quyền cao nhất, quản lý tài khoản người dùng, phân quyền, khóa/mở khóa tài khoản và xem thống kê).
5. Các trường hợp kiểm thử (Test Cases) trong đồ án tập trung vào những chức năng nào?
Khóa luận tập trung kiểm thử hộp đen cho 4 chức năng cốt lõi: chức năng Đăng nhập (TC_SI_01 – TC_SI_03), chức năng Đăng ký (TC_SU_01 – TC_SU_05), chức năng Thêm từ vựng (TC_AW_01 – TC_AW_03) và chức năng Thêm người dùng của Quản trị viên (TC_AU_01 – TC_AU_02).
Kết luận
Khóa luận tốt nghiệp "Xây dựng website học tiếng Anh sử dụng Mern Stack" của sinh viên Trần Phương Linh và Võ Ngọc Phong đã hoàn thành đầy đủ các mục tiêu đề ra về việc phân tích, thiết kế và hiện thực hóa một nền tảng học ngoại ngữ trực tuyến. Hệ thống triển khai thành công kiến trúc Client - Server với bộ công nghệ MERN Stack, giải quyết được bài toán xác thực dữ liệu qua JWT và xử lý đa phương tiện bằng chuỗi Base64. Sản phẩm đáp ứng tốt các yêu cầu học tập toàn diện cho người dùng cũng như các nghiệp vụ quản trị nội dung của hệ thống đào tạo trực tuyến. Đồ án là một tài liệu kỹ thuật có giá trị tham khảo thiết thực cho các nghiên cứu và dự án phát triển phần mềm ứng dụng web trong môi trường đại học.