Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh cuộc Cách mạng Công nghiệp 4.0, các phương thức tiếp cận tri thức và thông tin đã có sự chuyển dịch rõ rệt từ tài liệu in ấn truyền thống sang các nền tảng ứng dụng trực tuyến. Tiếng Anh đóng vai trò là ngôn ngữ giao tiếp quốc tế, là công cụ tiếp cận tri thức, văn hóa và mở rộng cơ hội việc làm. Tuy nhiên, việc tiếp cận ngôn ngữ này qua các tài liệu giáo trình truyền thống thường gặp trở ngại do tính chất thụ động, thiếu tính tương tác và trực quan. Do đó, việc xây dựng các hệ sinh thái phần mềm hỗ trợ học tập trực tuyến tích hợp đa nền tảng (Web và Mobile) trở thành một nhu cầu cấp thiết nhằm nâng cao khả năng tự học, tối ưu thời gian và tạo môi trường thực hành tương tác.

Đồ án tốt nghiệp xác định các mục tiêu nghiên cứu cụ thể sau:

  1. Xây dựng một hệ thống hỗ trợ học tiếng Anh đa nền tảng mang lại sự tiện lợi và tăng cường tính tương tác cho người học.
  2. Tìm hiểu các chức năng chính của một hệ thống hỗ trợ học ngôn ngữ trực tuyến bao gồm: học từ vựng, luyện nghe, làm bài tập trắc nghiệm ngắn (quiz), làm bài kiểm tra đánh giá trình độ (exam), đồng thời xác định phương pháp cấu hình và cài đặt các chức năng này.
  3. Cấu hình và triển khai hoàn chỉnh hệ thống hỗ trợ học tiếng Anh gồm ứng dụng website và ứng dụng di động (mobile app).
  4. Nghiên cứu định hướng ứng dụng học máy (Machine Learning) nhằm phát hiện và ngăn chặn các hành vi spam (spam bình luận, spam bài viết, spam làm bài kiểm tra) trên hệ thống.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình phân tích, thiết kế và xây dựng hệ thống phần mềm hỗ trợ học tiếng Anh; các giải pháp công nghệ lập trình Web, Mobile, cơ sở dữ liệu quan hệ và cơ chế truyền thông thời gian thực.
  • Phạm vi không gian: Đề tài được triển khai thực hiện 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 / Khoa Công nghệ Thông tin).
  • Phạm vi thời gian: Quá trình nghiên cứu và phát triển diễn ra từ ngày 15/03/2021 đến ngày 20/07/2021.

Cơ sở lý thuyết và phương pháp

Khung công nghệ và nền tảng lý thuyết

Đồ án áp dụng các công nghệ và kiến trúc phần mềm tiêu chuẩn trong phát triển ứng dụng phân tán:

  • Phía máy chủ (Back-end): Sử dụng nền tảng .NET Core kết hợp ngôn ngữ C# để xây dựng hệ thống Web API; sử dụng Entity Framework Core làm công cụ ánh xạ đối tượng - quan hệ (ORM) và SignalR để thiết lập kênh truyền thông thời gian thực (Real-time). Kiến trúc xử lý tuân theo mô hình MVC (Model - View - Controller).
  • Phía máy khách web (Front-end): Xây dựng trên nền tảng ReactJS kết hợp HTML, CSS, JavaScript và thư viện giao diện Bootstrap. Ứng dụng khai thác cơ chế DOM ảo (Virtual DOM), cú pháp mở rộng JSX và mô hình quản lý trạng thái tập trung Redux với luồng dữ liệu một chiều.
  • Phía ứng dụng di động (Mobile App): Sử dụng framework React Native đa nền tảng. Hệ thống vận hành dựa trên cơ chế phân tách hai luồng độc lập gồm Main Thread (xử lý giao diện người dùng và tương tác) và JS Thread (thực thi mã JavaScript), kết nối trao đổi dữ liệu thông qua cầu nối (Bridge).
  • Hệ quản trị cơ sở dữ liệu: Sử dụng Microsoft SQL Server 2017 với các thành phần cốt lõi như Database Engine và Full Text Search Service nhằm quản lý và truy vấn dữ liệu quan hệ.

Phương pháp nghiên cứu

Tác giả kết hợp các phương pháp kỹ thuật phần mềm chuẩn mực:

  • Phương pháp phân tích - tổng hợp và khảo sát hiện trạng: Khảo sát các nền tảng học ngoại ngữ trực tuyến tiêu biểu (Duolingo, Busuu) để xác định ưu điểm, hạn chế và trích xuất yêu cầu hệ thống.
  • Phương pháp phân tích và mô hình hóa: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) thông qua công cụ Enterprise Architect 15 và Draw.io để xây dựng sơ đồ Use Case, Sequence Diagram, Class Diagram và Screen Flow.
  • Phương pháp thực nghiệm phát triển phần mềm: Tiến hành lập trình, cấu hình dịch vụ API, tích hợp hệ thống trên môi trường phát triển (Visual Studio 2019, Visual Studio Code, trình giả lập Android Genymotion).
  • Phương pháp kiểm thử phần mềm: Thiết kế và thực thi các kịch bản kiểm thử hộp đen (Black-box Test Cases) trên các luồng chức năng trọng yếu.

Bảng khảo sát và so sánh hệ thống hiện trạng

Tiêu chí phân tích Duolingo Busuu Hệ thống đề tài xây dựng
Bài học theo chủ đề Có hỗ trợ, phân cấp từ dễ đến khó Có hỗ trợ, phân cấp theo khóa Có hỗ trợ theo lộ trình học chi tiết
Học từ vựng qua thẻ (Flashcard) Không hỗ trợ thẻ cá nhân hóa Không hỗ trợ dạng Flashcard Có hỗ trợ Flashcard và ghi chú riêng
Tra cứu từ vựng Hỗ trợ cơ bản Không hỗ trợ chức năng tra cứu Hỗ trợ tra cứu trực tiếp và qua Chatbot
Bài kiểm tra trình độ (Exam/TOEIC) Không có bài thi định dạng chuẩn Không có bài thi kiểm tra chuẩn hóa Có bài thi định dạng tương tự TOEIC
Giới hạn thời gian trả lời Không quy định thời gian câu hỏi Không quy định thời gian làm bài Có kiểm soát thời gian làm bài
Diễn đàn & Nhắn tin thời gian thực Có diễn đàn thảo luận Có cộng đồng sửa bài Có diễn đàn và chat thời gian thực
Đăng nhập mạng xã hội Hỗ trợ Facebook, Google Hỗ trợ Facebook, Google Hỗ trợ tài khoản mạng xã hội

Thiết kế và triển khai

Kiến trúc tổng thể hệ thống

Hệ thống được tổ chức theo kiến trúc phân tầng kết hợp dịch vụ Web API. Phía máy chủ ASP.NET Core tiếp nhận và xử lý các yêu cầu HTTP từ các ứng dụng máy khách (ReactJS Web App và React Native Mobile App), đồng thời tương tác với cơ sở dữ liệu SQL Server 2017 thông qua Entity Framework Core. Thành phần SignalR chịu trách nhiệm duy trì kết nối WebSocket hai chiều phục vụ các tính năng tương tác thời gian thực như tin nhắn và thông báo.

Thiết kế phân hệ và các lớp người dùng

Hệ thống xác định 3 nhóm người dùng chính:

  1. Người quản trị (Admin): Quản lý tài khoản hệ thống (khóa, mở khóa, phân quyền, đặt lại mật khẩu) và giám sát toàn bộ tài nguyên.
  2. Nhân viên quản lý (Staff): Quản lý nội dung học tập, lộ trình học, bài học, ngân hàng câu hỏi, bài quiz/exam, từ vựng và thực hiện kiểm duyệt tài nguyên do người dùng đóng góp.
  3. Người học (Learner): Đăng ký/đăng nhập, học theo lộ trình, học từ vựng bằng flashcard, tra cứu từ điển, làm bài quiz, làm bài exam định dạng TOEIC, tham gia thảo luận trên diễn đàn, đóng góp bản dịch/ví dụ, tạo bài quiz/exam cá nhân và nhắn tin trao đổi.

Môi trường và quy trình triển khai

  • Môi trường hoạt động: Hệ điều hành Windows 10, công cụ quản lý mã nguồn Git/GitHub, các trình duyệt kiểm thử Opera GX và Cốc Cốc.
  • Quy trình triển khai:
    • Back-end: Clone repository Engrisk, cấu hình chuỗi kết nối cơ sở dữ liệu trong mã nguồn EngriskApi, biên dịch và khởi chạy server trên nền tảng .NET Core SDK.
    • Front-end Web: Cài đặt môi trường thực thi Node.js, clone nhánh FrontEnd, cài đặt các gói phụ thuộc (npm packages), cấu hình địa chỉ Web API endpoint và khởi chạy máy chủ phát triển ReactJS.
    • Mobile App: Clone nhánh DevApp, cài đặt các thư viện liên kết, thiết lập địa chỉ API máy chủ, biên dịch ứng dụng React Native và chạy thử nghiệm trên máy ảo Genymotion Android.

Nội dung chính theo từng chương

Chương 1: Khảo sát hiện trạng và xác định yêu cầu

Chương này tập trung trình bày tính cấp thiết của đề tài trong bối cảnh chuyển đổi số giáo dục. Tác giả tiến hành khảo sát thực nghiệm hai hệ thống học ngoại ngữ trực tuyến quy mô lớn là Duolingo và Busuu; qua đó chỉ ra các mặt hạn chế như thiếu chức năng kiểm tra định dạng chuẩn hóa (TOEIC), thiếu tính năng tra cứu từ vựng tích hợp và chưa tối ưu hóa việc học qua flashcard cá nhân hóa. Từ khảo sát, chương xác định danh mục các yêu cầu chức năng, yêu cầu phi chức năng (đáp ứng 24/7/365, độ trễ phản hồi dưới 2 giây đối với các tác vụ thông thường) và lập bảng cấu hình môi trường phát triển phần mềm.

Chương 2: Cơ sở lý thuyết

Nội dung chương hệ thống hóa toàn bộ kiến thức kỹ thuật được ứng dụng trong đề tài:

  • Trình bày tổng quan về .NET Core: tính chất đa nền tảng (Windows, macOS, Linux), công cụ dòng lệnh CLI, cơ chế nạp hợp dịch và thực thi thông qua .NET Core Runtime.
  • Phân tích kiến trúc ReactJS: cơ chế hoạt động của DOM ảo, cú pháp JSX, cấu trúc thành phần (component-based) và thư viện quản lý trạng thái Redux.
  • Nguyên lý hoạt động của React Native: phân tích cơ chế giao tiếp liên luồng giữa Main Thread và JS Thread qua cầu nối Bridge.
  • Giới thiệu hệ quản trị cơ sở dữ liệu SQL Server 2017: vai trò của Database Engine, cơ chế lập chỉ mục và các dịch vụ tích hợp hỗ trợ xử lý truy vấn cho ứng dụng web.

Chương 3: Phân tích và mô hình hóa yêu cầu

Chương 3 chi tiết hóa 36 ca sử dụng (Use Case) từ UC01 đến UC36, bao quát đầy đủ các tác vụ của Admin, Staff và Learner. Tác giả xây dựng sơ đồ Use Case tổng quát và đặc tả chi tiết các luồng xử lý sự kiện (Basic flow, Alternative flow, Exception) cho các ca sử dụng cốt lõi:

  • UC32 - Quản lý tài khoản: Cho phép quản trị viên duyệt danh sách, phân quyền và khóa/mở khóa tài khoản vi phạm.
  • UC27 - Kiểm duyệt tài nguyên: Quản trị viên/nhân viên phê duyệt hoặc từ chối các nội dung thảo luận, đề thi và dữ liệu đóng góp từ người học trước khi hiển thị công khai.
  • UC12 - Làm Exam & UC13 - Làm Quiz: Xử lý quá trình nhận đề, đếm thời gian, nộp bài, tự động chấm điểm và lưu kết quả vào cơ sở dữ liệu.
  • UC04 - Học theo lộ trình: Điều phối việc học lý thuyết, ngữ pháp và bài tập tương tác theo các kịch bản định sẵn; tự động đưa các câu trả lời sai vào hàng đợi để người học ôn luyện lại.
  • UC24 & UC25 - Quản lý từ vựng và Quản lý lộ trình học: Thực hiện các thao tác thêm, sửa, xóa (CRUD) danh mục dữ liệu đào tạo.

Chương 4: Thiết kế website

Chương 4 mô tả cấu trúc cơ sở dữ liệu quan hệ và thiết kế giao diện thông qua sơ đồ luồng màn hình (Screen Flow):

  • Phân hệ Web người học: Thiết kế chuỗi màn hình danh sách học phần (List Section Screen), học từ vựng (List FlashCard Screen, Vocabulary Learning Progress Screen), làm bài kiểm tra (List Exam Screen, Do Exam Screen), học theo bài giảng (Learn Section Screen) và diễn đàn (Detail Discussion Screen).
  • Phân hệ Mobile App người học: Thiết kế giao diện nhắc nhở học tập (Create Reminder Screen), danh mục bài học (List Section Screen), làm bài trắc nghiệm (List Quiz Screen, Do Quiz Screen).
  • Phân hệ Web quản trị: Thiết kế chuỗi giao diện quản lý lộ trình học (Manage Study Route Screen, Create Study Route Screen), ngân hàng câu hỏi (Manage Bank Question Screen, Create Match Word Question Screen), quản lý kỳ thi (Manage Quiz/Exam Screen) và kiểm duyệt nội dung (Censorship Quiz/Exam Screen).

Chương 5: Cài đặt và kiểm thử

Chương này cung cấp các hướng dẫn chi tiết từng bước (step-by-step) về việc thiết lập môi trường lập trình, clone source code, cấu hình chuỗi kết nối và biên dịch hệ thống. Đồng thời, tác giả xây dựng và thực thi các bảng kịch bản kiểm thử (Test Cases) để đánh giá độ chính xác của các chức năng phần mềm:

  • Kiểm thử chức năng làm bài kiểm tra (Làm exam).
  • Kiểm thử chức năng học theo lộ trình định sẵn.
  • Kiểm thử chức năng xác thực người dùng (Đăng nhập).
  • Kiểm thử chức năng tương tác cộng đồng (Thích bình luận trên diễn đàn).

Chương 6: Kết luận và hướng phát triển

Tổng kết các kết quả đạt được về mặt sản phẩm phần mềm (hệ thống web, ứng dụng di động và API máy chủ hoạt động đồng bộ) và chỉ ra các hạn chế còn tồn đọng trong quá trình thực hiện đồ án.

Chương 7: Tài liệu tham khảo

Liệt kê các tài liệu kỹ thuật, tài liệu hướng dẫn phát triển của Microsoft (.NET Core, SQL Server) và Facebook (ReactJS, React Native) được sử dụng làm cơ sở triển khai đồ án.


Kết quả và đóng góp

Kết quả kỹ thuật đạt được

  • Hoàn thiện hệ thống đa nền tảng: Xây dựng thành công ứng dụng web bằng ReactJS, ứng dụng di động bằng React Native và hệ thống máy chủ dịch vụ Web API bằng ASP.NET Core kết nối cơ sở dữ liệu SQL Server 2017.
  • Triển khai đầy đủ các module chức năng học tập:
    • Phân hệ học từ vựng hỗ trợ cơ chế ghi nhớ qua Flashcard và cho phép người học cá nhân hóa thẻ nhớ.
    • Phân hệ kiểm tra hỗ trợ hai hình thức: Quiz luyện tập nhanh theo chủ đề (có cơ chế lặp lại câu hỏi sai) và Exam mô phỏng cấu trúc bài thi TOEIC có tính giờ và chấm điểm tự động.
    • Phân hệ tương tác cộng đồng gồm diễn đàn bài viết, bình luận, tra cứu từ vựng trực tiếp/chatbot và nhắn tin thời gian thực tích hợp công nghệ SignalR.
    • Phân hệ quản trị và kiểm duyệt phân quyền rõ ràng giữa Admin, Staff và Learner.
  • Kiểm thử chức năng: Toàn bộ các ca kiểm thử chính (làm exam, học theo lộ trình, đăng nhập, tương tác bình luận) đều được thực thi và xác nhận hoạt động đúng theo đặc tả thiết kế.

Đóng góp thực tiễn của đề tài

  • Khắc phục một số nhược điểm của các ứng dụng học ngoại ngữ phổ biến tại thời điểm khảo sát (như thiếu bài kiểm tra chuẩn hóa TOEIC hoặc thiếu công cụ học flashcard tùy biến).
  • Đưa ra mô hình tích hợp đồng bộ giữa ứng dụng Web và Mobile dùng chung một nền tảng Back-end Web API, giúp đồng nhất dữ liệu học tập và tiến độ của người dùng trên nhiều thiết bị.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đề tài

  • Thời gian và phạm vi triển khai: Do đồ án được hoàn thành trong khung thời gian 4 tháng (từ tháng 3/2021 đến tháng 7/2021) bởi nhóm 2 sinh viên, hệ thống chủ yếu được thử nghiệm trên môi trường phát triển cục bộ và thiết bị giả lập (Genymotion), chưa được triển khai và đo lường tải trên máy chủ thực tế quy mô lớn.
  • Nội dung Machine Learning: Mục tiêu ứng dụng Machine Learning để phát hiện hành vi spam (spam bài viết, spam bình luận, spam thi cử) mới dừng lại ở mức khảo sát lý thuyết và định hướng bài toán, chưa được huấn luyện mô hình và tích hợp hoàn chỉnh vào mã nguồn thực thi của hệ thống.

Hướng phát triển tiếp theo

  • Xây dựng và tích hợp hoàn thiện các thuật toán Machine Learning / Trí tuệ nhân tạo để tự động nhận diện và ngăn chặn các hành vi spam nội dung trên diễn đàn và chống gian lận trong làm bài kiểm tra.
  • Mở rộng ngân hàng câu hỏi, đa dạng hóa các dạng bài tập luyện nghe, phát âm và phát triển thêm các bộ đề thi chứng chỉ quốc tế khác ngoài TOEIC.
  • Tối ưu hóa hiệu năng truyền tải dữ liệu, cấu hình triển khai hệ thống lên nền tảng đám mây (Cloud) để phục vụ người dùng thực tế.

Giá trị tham khảo

Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo thiết thực cho các đối tượng sau:

  • Sinh viên ngành Công nghệ Thông tin và Kỹ thuật Phần mềm: Có thể sử dụng đồ án làm tài liệu tham khảo mẫu về quy trình xây dựng một hệ thống full-stack hoàn chỉnh từ khâu phân tích yêu cầu, đặc tả Use Case, thiết kế cơ sở dữ liệu, thiết kế luồng màn hình đến lập trình và kiểm thử.
  • Các nhóm phát triển đề tài về hệ thống E-Learning / EdTech: Cung cấp mô hình tham chiếu chi tiết về cách tổ chức kiến trúc phần mềm kết hợp giữa ASP.NET Core Web API, cơ sở dữ liệu SQL Server, ReactJS cho Web và React Native cho Mobile App, cũng như giải pháp truyền thông thời gian thực với SignalR.

Câu hỏi thường gặp

1. Hệ thống hỗ trợ những nhóm người dùng nào và quyền hạn của từng nhóm ra sao?

Hệ thống phân chia thành 3 lớp người dùng:

  • Người quản trị (Admin): Quản lý toàn bộ tài khoản người dùng (khóa, mở khóa, phân quyền, đặt lại mật khẩu) và cấu hình hệ thống.
  • Nhân viên (Staff): Quản lý nội dung lộ trình học, bài học, ngân hàng câu hỏi, đề thi (quiz/exam), cập nhật từ vựng và kiểm duyệt các bài viết, bình luận, đề thi do người học chia sẻ.
  • Người học (Learner): Thực hiện học theo lộ trình, học từ vựng bằng flashcard, tra cứu từ điển, làm bài quiz/exam, đóng góp dữ liệu và tham gia diễn đàn thảo luận.

2. Sự khác biệt giữa hai chức năng "Làm Quiz" và "Làm Exam" trong hệ thống là gì?

  • Làm Quiz (UC13): Là hình thức luyện tập nhanh các câu hỏi theo chủ đề vừa học. Hệ thống kiểm tra và thông báo đúng/sai ngay lập tức sau mỗi câu trả lời, đồng thời có cơ chế tự động đưa các câu hỏi trả lời sai vào hàng đợi để lặp lại cho đến khi người học hoàn thành chính xác toàn bộ câu hỏi.
  • Làm Exam (UC12): Là hình thức kiểm tra đánh giá trình độ mô phỏng cấu trúc bài thi chuẩn hóa (như TOEIC). Bài thi có giới hạn thời gian làm bài, người học chọn đáp án cho toàn bộ đề thi, nộp bài để hệ thống chấm điểm tổng và lưu trữ kết quả vào cơ sở dữ liệu.

3. Công nghệ nào được sử dụng để phát triển ứng dụng di động và cơ chế hoạt động của nó như thế nào?

Ứng dụng di động được xây dựng bằng framework React Native. Cơ chế vận hành của ứng dụng dựa trên việc phân tách hai luồng độc lập: Main Thread phụ trách kết xuất giao diện người dùng (UI) và nhận tương tác, trong khi JS Thread phụ trách thực thi mã nguồn JavaScript. Hai luồng này tương tác và truyền nhận dữ liệu qua lại thông qua một cầu nối (Bridge) mà không phụ thuộc trực tiếp vào nhau.

4. Hệ thống đặt ra các yêu cầu phi chức năng cụ thể nào về hiệu năng và độ sẵn sàng?

Hệ thống quy định độ sẵn sàng đạt 100% (hoạt động 24/7, 365 ngày/năm), mọi hoạt động bảo trì hay nâng cấp đều phải có thông báo trước. Về mặt hiệu năng, thời gian phản hồi của hệ thống đối với các yêu cầu (request) từ người dùng không được vượt quá 2 giây trong điều kiện xử lý thông thường.


Kết luận

Đồ án tốt nghiệp "Xây dựng hệ thống hỗ trợ học tiếng Anh" của sinh viên Nguyễn Thanh Lập và Luyện Ngọc Thanh đã giải quyết bài toán xây dựng nền tảng học tập trực tuyến đa thiết bị thông qua việc kết hợp các công nghệ ASP.NET Core, ReactJS, React Native và SQL Server. Báo cáo đồ án đã phản ánh đầy đủ quy trình kỹ thuật phần mềm từ khảo sát hiện trạng, mô hình hóa 36 ca sử dụng, thiết kế hệ thống dữ liệu, giao diện luồng màn hình đến cài đặt và kiểm thử thực nghiệm. Mặc dù phần ứng dụng học máy phát hiện spam mới dừng ở mức định hướng, sản phẩm đã hoàn thiện các tính năng cốt lõi về học từ vựng qua flashcard, lộ trình học tập, kiểm tra định dạng TOEIC và tương tác cộng đồng thời gian thực, đáp ứng các mục tiêu nghiên cứu đã đề ra.