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

Đồ án tốt nghiệp "Xây dựng ứng dụng học tiếng Anh thông minh - EnglishLearn" được thực hiện bởi sinh viên Nguyễn Phú Thịnh (lớp D17HTTT1, mã sinh viên B17DCCN578), dưới sự hướng dẫn của TS. Đào Thị Thúy Quỳnh tại Khoa Công nghệ Thông tin 1, Học viện Công nghệ Bưu chính Viễn thông (tháng 12/2021).

Nghiên cứu xuất phát từ thực tiễn tiếng Anh là ngôn ngữ phổ biến toàn cầu, đóng vai trò then chốt trong quá trình hội nhập quốc tế, tìm kiếm việc làm, thăng tiến sự nghiệp và du học. Tuy nhiên, phương pháp học truyền thống qua sách vở và bài tập trên lớp thường mang tính hàn lâm, khô khan và dễ gây nhồi nhét kiến thức. Mặc dù thị trường đã có nhiều công cụ số hỗ trợ, tác giả chỉ ra các hạn chế cụ thể ở những ứng dụng hiện hành:

  • Duolingo: Người học không thể chủ động lựa chọn chủ đề từ vựng mong muốn do phải hoàn thành tuần tự tất cả bài học trong một Unit mới được mở khóa Unit tiếp theo.
  • Memrise: Nguồn tài nguyên chủ yếu tập trung vào kỹ năng phát âm và giao tiếp qua video, chưa bao quát đồng đều các mảng kiến thức khác.
  • Từ điển TFlat: Yêu cầu người dùng trả phí mua tài khoản VIP để sử dụng các tính năng nâng cao và loại bỏ quảng cáo gây gián đoạn.
  • Busuu: Phiên bản miễn phí bị giới hạn ở 20 bài học; muốn tiếp cận toàn bộ hơn 150 chủ đề và hơn 3.000 từ vựng cần phải nâng cấp tài khoản.

Bên cạnh đó, các ứng dụng sẵn có thường hoạt động đơn lẻ theo từng phân hệ riêng biệt (chỉ chuyên ngữ pháp, chỉ luyện nói hoặc chỉ ghi nhớ từ vựng), khiến người học gặp trở ngại khi muốn tra cứu từ điển, học ngữ pháp và làm bài tập củng cố lý thuyết trên cùng một nền tảng.

Mục tiêu nghiên cứu:

  1. Nghiên cứu và làm chủ lý thuyết nền tảng lập trình web hiện đại (HTML5, CSS3, JavaScript), cùng các kỹ thuật xây dựng ứng dụng web phân tầng.
  2. Nắm vững kiến trúc nền tảng NodeJS, cơ chế xây dựng dịch vụ RESTful API và mô hình MVC (Model - View - Controller).
  3. Khảo sát, so sánh và đánh giá các hệ quản trị cơ sở dữ liệu quan hệ (SQL) và phi quan hệ (NoSQL), trọng tâm là MongoDB.
  4. Phân tích, thiết kế và hiện thực hóa thành công sản phẩm phần mềm web EnglishLearn hoàn chỉnh, tích hợp đa dạng chức năng hỗ trợ học và ôn luyện tiếng Anh miễn phí, không quảng cáo, có tính ứng dụng thực tiễn cao.

Đố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ế kiến trúc hệ thống và xây dựng ứng dụng web học tiếng Anh thông minh.
  • Phạm vi không gian: Nghiên cứu và triển khai thử nghiệm tại Khoa Công nghệ Thông tin 1, Học viện Công nghệ Bưu chính Viễn thông.
  • Phạm vi thời gian: Quá trình đào tạo đại học khóa 2017 – 2022, hoàn thành nghiệm thu vào tháng 12/2021.
  • Phạm vi đối tượng người dùng: Người học tiếng Anh ở các trình độ khác nhau có nhu cầu tra cứu từ điển, học từ vựng TOEIC, flashcard, câu giao tiếp, tra cứu ngữ pháp, động từ bất quy tắc, luyện tập trắc nghiệm và dịch thuật đa phương thức.

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

Khóa luận áp dụng các nền tảng công nghệ web hiện đại, kiến trúc dịch vụ và phương pháp phân tích thiết kế hệ thống hướng đối tượng:

  • Nền tảng NodeJS & Express Framework: NodeJS chạy trên môi trường V8 JavaScript Runtime của Chromium, vận hành theo mô hình đơn luồng (single-thread) kết hợp cơ chế hướng sự kiện bất đồng bộ (non-blocking I/O). Cơ chế này giúp máy chủ xử lý hàng chục nghìn kết nối đồng thời mà không bị khóa (lock up). Framework Express được xây dựng trên NodeJS để quản trị hệ thống định tuyến (routing), xử lý middleware và cung cấp giao diện lập trình ứng dụng RESTful API theo mô hình MVC.
  • Hệ quản trị cơ sở dữ liệu MongoDB & Cloud Atlas: Cơ sở dữ liệu NoSQL hướng tài liệu (document-oriented), lưu trữ dữ liệu dưới định dạng JSON/BSON linh hoạt thay vì cấu trúc bảng cố định. MongoDB tự động đánh chỉ mục trường _id, lưu đệm (cache) bản ghi trên bộ nhớ RAM để tăng tốc độ truy vấn, hỗ trợ khả năng mở rộng theo chiều ngang (Horizontal Scalability) qua các cụm Node (Cluster) và vận hành theo mô hình BASE (Basically Available, Soft state, Eventual consistency).
  • Thư viện giao diện ReactJS: Thư viện mã nguồn mở do Facebook phát triển phục vụ tầng hiển thị (View). ReactJS áp dụng cơ chế Virtual DOM (DOM ảo) lưu cấu trúc dữ liệu trên bộ nhớ để so sánh sự thay đổi và chỉ cập nhật những thành phần thực sự thay đổi trên DOM thực của trình duyệt. Cú pháp mở rộng JSX kết hợp giữa HTML và JavaScript giúp module hóa giao diện thành các Component độc lập, có thể tái sử dụng.
  • Phương pháp phân tích và thiết kế hệ thống: Ứng dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng biểu đồ usecase tổng quát, biểu đồ usecase chi tiết, kịch bản luồng sự kiện chuẩn và ngoại lệ, biểu đồ lớp phân tích (analysis class diagram), biểu đồ tuần tự (sequence diagram) và biểu đồ lớp thiết kế (design class diagram).

Dưới đây là bảng tổng hợp so sánh giữa cơ sở dữ liệu SQL và NoSQL do tác giả hệ thống hóa trong khóa luận:

Tham số so sánh Cơ sở dữ liệu quan hệ (SQL) Cơ sở dữ liệu phi quan hệ (NoSQL)
Định nghĩa RDBMS / Cơ sở dữ liệu quan hệ Cơ sở dữ liệu không quan hệ hoặc phân tán
Mục đích thiết kế Phân tích và truy vấn dữ liệu chi tiết cho hệ thống OLAP Phù hợp cho sự phát triển của các ứng dụng web/mobile hiện đại
Ngôn ngữ truy vấn Structured Query Language (SQL) Không dùng ngôn ngữ truy vấn chuẩn hóa chung
Cấu trúc lưu trữ Dựa trên bảng (Table) gồm hàng và cột Tài liệu (Document), Cặp khóa - giá trị (Key-Value), Đồ thị
Lược đồ (Schema) Lược đồ định sẵn nghiêm ngặt Lược đồ động, linh hoạt cho dữ liệu phi cấu trúc
Khả năng mở rộng Mở rộng theo chiều dọc (Vertical Scalability) Mở rộng theo chiều ngang (Horizontal Scalability)
Hệ thống tiêu biểu Oracle, PostgreSQL, MySQL, MS-SQL MongoDB, Redis, Neo4j, Cassandra, HBase
Mô hình giao dịch Tuân thủ nghiêm ngặt tính chất ACID Mô hình BASE (Tính sẵn sàng cao, nhất quán cuối cùng)
Hiệu năng truy vấn Giảm khi dữ liệu lớn và phải thực hiện nhiều phép JOIN Tốc độ truy vấn và ghi (insert) cao, có thể nhanh gấp 100 lần MySQL

Thiết kế và triển khai hệ thống

1. Phân tích yêu cầu và tác nhân hệ thống

  • Tác nhân (Actor): Người dùng (User) — truy cập ứng dụng có thể có hoặc không cần đăng ký tài khoản.
  • Yêu cầu chất lượng hệ thống:
    • Tính hiệu quả: Tốc độ tìm kiếm nhanh, chính xác, khả năng tích hợp đa chức năng đồng bộ.
    • Tính tương thích: Hoạt động trơn tru trên mọi trình duyệt web tiêu chuẩn và các hệ điều hành khác nhau.
    • Tính tiện dụng: Thiết kế giao diện tương thích đa màn hình (Responsive UI) cho máy tính (PC), máy tính bảng (Tablet) và điện thoại thông minh (Smartphone).

2. Danh mục Use case chức năng

Hệ thống EnglishLearn được phân tích thành 12 usecase nghiệp vụ chính:

  1. Đăng ký: Người dùng tạo tài khoản mới bằng họ tên (fullname), email và mật khẩu (password).
  2. Đăng nhập: Xác thực người dùng bằng email và mật khẩu để cấp quyền truy cập hệ thống.
  3. Tra từ điển: Tra cứu từ vựng tiếng Anh theo từ khóa, lọc theo chủ đề, cấp độ, loại từ, chuyên ngành và hỗ trợ nghe phát âm trực tiếp.
  4. Học từ vựng TOEIC: Hiển thị kho từ vựng chuyên biệt cho kỳ thi TOEIC kèm phiên âm, hình ảnh, câu ví dụ và âm thanh phát âm.
  5. Học câu giao tiếp: Cung cấp hơn 1.000 cụm từ giao tiếp thường nhật, phân loại theo chủ đề và tích hợp phát âm mẫu.
  6. Học từ vựng Flashcard: Học từ vựng qua thẻ ghi nhớ tương tác hai mặt, chế độ thư viện ảnh, tính năng ẩn/hiện nghĩa và phát âm.
  7. Tra ngữ pháp: Tổng hợp cấu trúc, quy tắc sử dụng và ví dụ minh họa của các thì trong tiếng Anh.
  8. Tra cứu bảng động từ bất quy tắc: Tra cứu danh mục động từ bất quy tắc, hỗ trợ lọc trường hợp đặc biệt ($V_1 = V_2 = V_3$ hoặc $V_2 = V_3$) và phát âm.
  9. Luyện tập: Hệ thống bài kiểm tra trắc nghiệm ("Hãy chọn từ đúng"), tự động chấm điểm, thống kê số câu đúng, sai và chuỗi trả lời đúng liên tiếp.
  10. Lưu từ yêu thích: Đánh dấu (icon trái tim) để tạo danh sách từ vựng cá nhân phục vụ ôn tập nhanh.
  11. Translate (Dịch thuật đa phương thức): Dịch thuật văn bản song ngữ và nhận dạng ký tự quang học qua hình ảnh (OCR) để dịch nội dung trực tiếp từ tệp ảnh tải lên.
  12. Đóng góp: Cho phép người dùng gửi thêm từ vựng hoặc câu giao tiếp mới vào hệ thống dữ liệu.

3. Thiết kế Cơ sở dữ liệu MongoDB

Cơ sở dữ liệu của EnglishLearn được thiết kế gồm 8 Collection hướng tài liệu với các trường thuộc tính logic và liên kết tham chiếu (ObjectId):

Tên Collection Các trường dữ liệu chính Mô tả chức năng
User _id, name, username, point, level, accountId (ref Account), favouriteList (ref FavouriteList) Lưu thông tin định danh, điểm số, cấp độ của người dùng
Account _id, email, password, authType, createdAt Quản lý thông tin xác thực tài khoản và phương thức đăng nhập
FavouriteList _id, word (mảng ref Word), sentence (mảng ref Sentence) Lưu danh sách từ và câu giao tiếp người dùng đã đánh dấu yêu thích
Word _id, word, mean, type, level, phonetic, picture, synonyms (mảng), antonyms (mảng), topic (ref Topic), specialty (ref Specialty), example (mảng ref Example), isChecked Lưu trữ dữ liệu từ vựng, phiên âm, từ loại, hình ảnh, từ đồng nghĩa/trái nghĩa
Sentence _id, sentence, mean, note, isChecked, topic (ref Topic) Lưu trữ các mẫu câu giao tiếp tiếng Anh kèm nghĩa và ghi chú
Topic _id, key, title, iconUrl Quản lý danh mục các chủ đề bài học
Specialty _id, key, title, iconUrl Quản lý danh mục các chuyên ngành từ vựng
Example _id, sentence, note Lưu trữ các câu ví dụ minh họa ngữ cảnh cho từ vựng

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

Chương 1: Giới thiệu về ứng dụng học tiếng Anh

Chương 1 mở đầu bằng việc phân tích nhu cầu cấp thiết của việc học tiếng Anh trong kỷ nguyên số hóa và toàn cầu hóa. Tác giả tiến hành khảo sát thực trạng 4 ứng dụng phổ biến trên thị trường gồm Duolingo, Memrise, TFlat và Busuu, chỉ rõ các điểm nghẽn về tính năng giới hạn, học phí hoặc quảng cáo.

Từ đó, chương đề xuất mục tiêu xây dựng giải pháp web EnglishLearn tích hợp toàn diện. Nội dung tiếp theo trình bày cơ sở lý thuyết công nghệ: phân tích môi trường thực thi NodeJS (cơ chế single-thread, non-blocking I/O dựa trên V8 Engine), cấu trúc và tính năng của Express Framework (router, MVC, middleware, RESTful API), hệ quản trị MongoDB (mô hình tài liệu JSON, ưu/nhược điểm, bảng so sánh đối sánh chi tiết giữa SQL và NoSQL), và thư viện giao diện ReactJS (kiến trúc Component, Virtual DOM, JSX, Server-side rendering).

Chương 2: Phân tích và thiết kế hệ thống ứng dụng học tiếng Anh thông minh - EnglishLearn

Chương 2 tập trung vào quy trình kỹ thuật phần mềm chi tiết:

  • Trình bày mô tả tổng quan hệ thống, phân tích các yêu cầu chất lượng (hiệu năng tìm kiếm, độ tương thích đa nền tảng, giao diện responsive) và tác nhân người dùng.
  • Xây dựng sơ đồ Use case tổng quát cùng 11 sơ đồ Use case phân rã chi tiết cho từng nghiệp vụ.
  • Thiết lập bảng kịch bản luồng sự kiện chuẩn và luồng ngoại lệ cho 12 usecase (xử lý tình huống email không hợp lệ, đăng nhập sai thông tin, từ khóa tìm kiếm không tồn tại, chọn đáp án sai trong bài test trắc nghiệm, lỗi chính tả khi dịch, trùng lặp từ khi đóng góp dữ liệu).
  • Xây dựng biểu đồ lớp phân tích (Analysis Class Diagram), thiết kế cấu trúc 8 Collection dữ liệu MongoDB, biểu đồ tuần tự (Sequence Diagram) mô tả tương tác giữa Boundary - Controller - Model cho các chức năng tra từ điển, học câu giao tiếp, tra ngữ pháp, luyện tập, dịch thuật và đóng góp.
  • Tổng hợp biểu đồ lớp thiết kế (Design Class Diagram) phản ánh đầy đủ quan hệ kế thừa, liên kết giữa các đối tượng trong mã nguồn.

Chương 3: Cài đặt và thử nghiệm

Chương 3 trình bày các bước thiết lập môi trường triển khai thực tế và kết quả thử nghiệm giao diện:

  • Cài đặt môi trường runtime NodeJS Server kết nối cơ sở dữ liệu đám mây MongoDB Atlas.
  • Triển khai và kiểm thử các màn hình giao diện người dùng chính:
    1. Giao diện tra từ điển: Cho phép nhập từ khóa, hiển thị nghĩa, phiên âm, từ loại, ví dụ và tích hợp icon loa phát âm audio trực tiếp.
    2. Giao diện học câu giao tiếp: Hiển thị danh mục 1.000+ cụm từ phân loại theo chủ đề cuộc sống hàng ngày.
    3. Giao diện từ vựng Flashcard: Thiết kế trực quan dạng thẻ lật tương tác kèm hình ảnh minh họa và chế độ ẩn/hiện nghĩa.
    4. Giao diện học ngữ pháp: Trình bày cấu trúc, cách sử dụng và bảng ghi chú chi tiết các thì tiếng Anh.
    5. Giao diện Luyện tập: Hệ thống bài thi trắc nghiệm ghép từ, hiển thị phản hồi màu sắc (đáp án đúng màu xanh kèm âm thanh, đáp án sai màu đỏ) và tổng kết kết quả làm bài.
    6. Giao diện Translate: Tích hợp hai chế độ dịch văn bản song ngữ và dịch ký tự từ ảnh scan (OCR).
    7. Giao diện Đóng góp: Form biểu mẫu tiếp nhận dữ liệu từ vựng và câu giao tiếp mới do người dùng đóng góp.

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

  • Kết quả đạt được:
    • Xây dựng thành công ứng dụng web EnglishLearn hoàn chỉnh theo kiến trúc Client - Server tách biệt, sử dụng công nghệ ReactJS ở Frontend và NodeJS/Express kết hợp MongoDB Atlas ở Backend.
    • Tích hợp thành công kho dữ liệu phong phú gồm hơn 1.000 cụm từ giao tiếp, bộ từ vựng luyện thi TOEIC, thư viện Flashcard hình ảnh, bảng ngữ pháp các thì và bảng động từ bất quy tắc có phát âm chuẩn.
    • Xây dựng module dịch thuật song ngữ văn bản và quét nhận dạng hình ảnh trực tiếp trên trình duyệt.
    • Xây dựng hệ thống bài kiểm tra trắc nghiệm tương tác thời gian thực, có cơ chế tính điểm, đếm chuỗi câu đúng liên tiếp và phản hồi âm thanh.
  • Đóng góp của khóa luận:
    • Khắc phục các hạn chế của các ứng dụng thương mại hiện nay bằng việc cung cấp một nền tảng học tiếng Anh tổng hợp, hoàn toàn miễn phí, không chứa quảng cáo và không phân chia cấp bậc tài khoản.
    • Cung cấp một tài liệu kỹ thuật hoàn chỉnh về quy trình phân tích và thiết kế hệ thống phần mềm web full-stack bằng ngôn ngữ UML, kết hợp cơ sở dữ liệu NoSQL hướng tài liệu từ giai đoạn khảo sát nhu cầu đến triển khai thử nghiệm giao diện.

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

  • Hạn chế:
    • Cơ sở dữ liệu MongoDB lưu trữ dạng Document Key-Value không có ràng buộc toàn vẹn khóa ngoại như RDBMS, dễ dẫn đến dư thừa dữ liệu (lặp lại khóa giữa các document).
    • Cơ chế ghi dữ liệu từ RAM xuống ổ cứng của MongoDB theo chu kỳ định kỳ (60 giây) tiềm ẩn nguy cơ mất dữ liệu tạm thời nếu máy chủ gặp sự cố mất nguồn đột ngột.
    • Phạm vi đề tài tập trung vào phía người học (Client-side), chưa xây dựng phân hệ quản trị nâng cao (Admin Dashboard) để duyệt và kiểm duyệt dữ liệu đóng góp từ người dùng trước khi cập nhật vào cơ sở dữ liệu chính.
  • Hướng nghiên cứu tiếp:
    • Bổ sung cơ chế xác thực đa luồng, hoàn thiện phân quyền quản trị viên (Admin) để kiểm duyệt nội dung đóng góp tự động.
    • Mở rộng thêm các chủ đề từ vựng chuyên ngành sâu, tích hợp thêm nhiều dạng bài tập tương tác (ghép câu, luyện nghe audio điền từ).
    • Tối ưu hóa thuật toán nhận dạng ký tự từ ảnh scan để nâng cao độ chính xác khi dịch hình ảnh chất lượng thấp.

Giá trị tham khảo

Đồ án tốt nghiệp là tài liệu tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ thông tin, Hệ thống thông tin, Kỹ thuật phần mềm: Nắm bắt quy trình xây dựng ứng dụng web hiện đại full-stack JavaScript (ReactJS, NodeJS, Express, MongoDB Atlas).
  • Người nghiên cứu phân tích thiết kế hệ thống: Tham khảo mẫu chuẩn xây dựng tài liệu thiết kế phần mềm bằng UML (biểu đồ usecase, đặc tả kịch bản ngoại lệ, biểu đồ tuần tự, biểu đồ lớp phân tích/thiết kế và ánh xạ sang cấu trúc NoSQL Schema).
  • Lập trình viên phát triển ứng dụng giáo dục: Tham khảo mô hình tích hợp đa chức năng học tập (tra từ điển, flashcard, bài tập trắc nghiệm tính điểm, nhận dạng hình ảnh dịch thuật) trên nền tảng web responsive.

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

1. Ứng dụng EnglishLearn sử dụng những công nghệ và kiến trúc nào để phát triển?
Ứng dụng được xây dựng theo kiến trúc phân tầng web service RESTful API: Frontend sử dụng thư viện ReactJS kết hợp HTML5, CSS3 và JSX; Backend sử dụng nền tảng NodeJS trên môi trường V8 Runtime cùng Framework Express theo mô hình MVC; Cơ sở dữ liệu sử dụng hệ quản trị NoSQL MongoDB (lưu trữ JSON Document) lưu trữ trên dịch vụ đám mây MongoDB Atlas.

2. Cơ sở dữ liệu của hệ thống bao gồm những collection nào?
Cơ sở dữ liệu gồm 8 collection chính: User (thông tin người dùng), Account (tài khoản đăng nhập), FavouriteList (danh sách từ/câu yêu thích), Word (kho từ vựng), Sentence (câu giao tiếp), Topic (chủ đề), Specialty (chuyên ngành), và Example (câu ví dụ minh họa).

3. Chức năng dịch thuật (Translate) của EnglishLearn có điểm gì nổi bật?
Chức năng Translate hỗ trợ hai phương thức dịch thuật: dịch đoạn văn bản song ngữ thông thường và dịch nội dung từ hình ảnh (người dùng tải tệp ảnh lên, hệ thống thực hiện quét nhận dạng văn bản gốc và dịch sang ngôn ngữ đích được lựa chọn).

4. Khóa luận chỉ ra những điểm hạn chế nào của cơ sở dữ liệu MongoDB trong quá trình vận hành?
MongoDB không có các ràng buộc quan hệ chặt chẽ (như Foreign Key hay JOIN trong RDBMS), dẫn đến nguy cơ dư thừa dữ liệu và lặp lại key. Đồng thời, cơ chế lưu đệm RAM và ghi xuống đĩa sau mỗi 60 giây có thể gây rủi ro mất dữ liệu nếu xảy ra sự cố phần cứng hoặc mất điện đột ngột.

5. Mô đun luyện tập (Practice) đánh giá kết quả học tập của người dùng như thế nào?
Người dùng chọn gói từ vựng theo chủ đề để làm bài tập trắc nghiệm chọn từ đúng. Khi trả lời, hệ thống đổi màu xanh kèm âm thanh cho đáp án đúng, đổi màu đỏ cho đáp án sai. Sau khi hoàn thành toàn bộ gói câu hỏi, hệ thống tự động kết xuất bảng tổng kết gồm: tổng số câu làm đúng, số câu trả lời đúng liên tiếp, và số câu làm sai.


Kết luận

Đồ án tốt nghiệp "Xây dựng ứng dụng học tiếng Anh thông minh - EnglishLearn" của sinh viên Nguyễn Phú Thịnh đã giải quyết trọn vẹn bài toán tích hợp đa chức năng học tập tiếng Anh trên một nền tảng web duy nhất. Bằng việc kết hợp hiệu quả hệ sinh thái công nghệ JavaScript hiện đại gồm ReactJS, NodeJS, Express và cơ sở dữ liệu MongoDB, tác giả đã hiện thực hóa thành công sản phẩm phần mềm có giao diện trực quan, tương thích đa thiết bị và cung cấp kho học liệu phong phú hoàn toàn miễn phí. Công trình thể hiện quy trình phân tích thiết kế hệ thống bài bản theo chuẩn UML, là nguồn 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 khối ngành kỹ thuật phần mềm và hệ thống thông tin.