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

Trong xã hội hiện đại, giáo dục đóng vai trò then chốt đối với sự phát triển của mỗi cá nhân và toàn xã hội. Nhu cầu tiếp cận kiến thức, cải thiện kết quả học tập trên lớp cũng như bồi dưỡng kiến thức nâng cao của học sinh, sinh viên ngày càng gia tăng. Song song với đó, đội ngũ gia sư cũng có nhu cầu tìm kiếm các lớp dạy kèm phù hợp với năng lực chuyên môn và thời gian cá nhân. Các trung tâm tư vấn và phát triển giáo dục giữ vai trò cầu nối trung gian nhưng việc vận hành truyền thống bộc lộ nhiều hạn chế về khả năng mở rộng và quản lý. Nhằm giải quyết các bài toán này, đề tài "Xây dựng Website và ứng dụng di động cho trung tâm tư vấn và phát triển giáo dục" được thực hiện bởi sinh viên ngành Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM.

Mục tiêu và nhiệm vụ nghiên cứu

Văn bản xác định các mục tiêu và nhiệm vụ cụ thể bao gồm:

  1. Xây dựng và đáp ứng đầy đủ các hoạt động nghiệp vụ cơ bản của một trung tâm gia sư: tạo lớp học, theo dõi danh sách lớp học, theo dõi thông tin gia sư, gửi yêu cầu nhận lớp, gửi yêu cầu tìm gia sư và đăng ký làm gia sư cho trung tâm.
  2. Nghiên cứu và áp dụng Hệ thống khuyến nghị (Recommendation System) nhằm tính toán, gợi ý các lớp học và gia sư phù hợp nhất cho từng người dùng dựa trên dữ liệu đánh giá và hành vi tương đồng.
  3. Phát triển giao diện người dùng (UI/UX) trực quan, thân thiện, nâng cao trải nghiệm của học viên, phụ huynh và gia sư trên cả nền tảng Website và Di động.
  4. Nghiên cứu và ứng dụng mô hình kiến trúc sạch (Clean Architecture) để chuẩn hóa cấu trúc dự án, phân tách rõ ràng các tầng logic nghiệp vụ, hỗ trợ việc bảo trì và mở rộng hệ thống trong tương lai.

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

  • Đối tượng nghiên cứu:
    • Phụ huynh và học sinh có nhu cầu tìm kiếm lớp học gia sư và nhận tư vấn giáo dục.
    • Gia sư có nhu cầu tìm kiếm lớp dạy thêm đúng chuyên môn.
    • Nhân viên/quản trị viên trung tâm cần công cụ số hóa để quản lý lớp học, hồ sơ gia sư, học viên và các yêu cầu giao dịch.
  • Phạm vi môi trường: Hệ thống triển khai trên hai nền tảng là Website (Web Client và Web Admin) và Ứng dụng di động (hệ điều hành Android).
  • Phạm vi chức năng: Quản lý lớp học, xác thực tài khoản và hồ sơ gia sư; tìm kiếm và lọc lớp dạy/gia sư theo chuyên môn; tư vấn và đăng tin tạo lớp học mới; tích hợp thuật toán gợi ý; mức độ tương đồng về mặt tính năng giữa Website và Mobile đạt từ 80% đến 90%.

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

Khảo sát và đánh giá các mô hình thực tế

Tác giả đã phân loại và đánh giá ba mô hình trung tâm gia sư phổ biến trên thị trường:

  • Mô hình kết nối gia sư và học viên: Đóng vai trò nền tảng cầu nối, hỗ trợ tìm kiếm, đặt lịch học, quản lý hồ sơ và đánh giá gia sư (tiêu biểu như GiaSuBaoChau, daykemtainha).
  • Mô hình học trực tuyến: Cung cấp khóa học online qua Internet, hỗ trợ tương tác trực tiếp qua video call và công cụ trực tuyến.
  • Mô hình kết hợp (Blended): Kết hợp học trực tiếp (offline) và trực tuyến định kỳ, đi kèm tài liệu và bài tập số hóa (tiêu biểu như Hoc247, Topica).

Nhóm nghiên cứu đã khảo sát thực tế 4 hệ thống tại Hà Nội và TP.HCM:

  1. Daykemtainha.vn: Giao diện bắt mắt, có ứng dụng di động nhưng giao diện ứng dụng chưa bắt kịp xu hướng hiện đại.
  2. Giasutrithuc.net (Gia sư Tri Thức): Hoạt động mạnh trên mạng xã hội Facebook, website dạng Landing Page đơn giản.
  3. Giasubaochau.net (Gia sư Bảo Châu): Hệ thống có nhiều chi nhánh, website phục vụ đăng tin lớp học và đăng ký gia sư nhưng trải nghiệm người dùng còn cơ bản.
  4. Trungtamdaykem.com (Gia sư Thăng Long): Giao diện cũ, trùng lặp, bộ lọc tìm kiếm phức tạp và chưa tối ưu, dễ gây nhầm lẫn khi lọc thông tin.

Khung lý thuyết và công nghệ sử dụng

  • Kiến trúc Clean Architecture: Mô hình phân tách 4 lớp độc lập tuân thủ nguyên tắc đảo ngược phụ thuộc (Dependency Inversion) và đóng gói (Encapsulation):
    • Entities: Lớp logic nghiệp vụ cốt lõi của doanh nghiệp.
    • Use Cases: Lớp logic ứng dụng đặc thù cho từng ca sử dụng.
    • Interface Adapters: Chuyển đổi định dạng dữ liệu giữa Use Case và tầng bên ngoài.
    • Frameworks & Drivers: Tầng ngoài cùng chứa giao diện, cơ sở dữ liệu, công cụ.
  • Công nghệ Backend và Cơ sở dữ liệu: ASP.NET Core 7, Entity Framework Core 7 (sử dụng LINQ, hỗ trợ ORM), hệ quản trị cơ sở dữ liệu Microsoft SQL Server (kèm công cụ SSMS, SSIS).
  • Phát triển ứng dụng Android: Sử dụng bộ giải pháp Modern Android Development, ngôn ngữ Kotlin, thư viện Jetpack Compose xây dựng Declarative Native UI, Android Jetpack, Retrofit2, Glide và Firebase.
  • Phát triển giao diện Web: ASP.NET MVC, Razor Pages, HTML, CSS, JavaScript, Bootstrap.

Phương pháp xây dựng hệ thống khuyến nghị (Recommendation System)

Hệ thống sử dụng phương pháp Lọc cộng tác (Collaborative Filtering) nhằm dự đoán mức độ quan tâm của người dùng đối với các lớp học hoặc gia sư:

  • Ma trận đánh giá (Rating Matrix): Khởi tạo ma trận kích thước $m \times n$ (với hàng là danh sách môn học/lớp học và cột là danh sách người dùng). Giá trị trong ma trận là điểm rating của người học đối với môn học tương ứng. Do kích thước dữ liệu thử nghiệm ở mức vừa phải, hệ thống lược bỏ bước phân rã ma trận (Matrix Factorization).
  • Độ đo tương đồng Cosine: Tính toán góc giữa các vector khoảng cách của người dùng so với gốc tọa độ $(0, 0)$. Góc càng nhỏ, giá trị Cosine càng tiến gần 1, thể hiện mức độ tương đồng giữa hai người dùng càng cao.
  • Thuật toán k-Nearest Neighbours (KNN): Ứng dụng công thức khoảng cách Euclid để tìm kiếm $k$ đối tượng lân cận có mức độ tương đồng cao nhất, từ đó tổng hợp và dự đoán điểm đánh giá trung bình cho các lớp học/môn học chưa được người dùng trải nghiệm.

Thiết kế và triển khai

Kiến trúc phân tầng hệ thống

Hệ thống được thiết kế theo cấu trúc tách biệt rõ ràng giữa các nền tảng:

Thành phần Phân tầng kiến trúc Công nghệ / Vai trò
Backend & Web Domain.Shared Chứa các thành phần chung dùng cho toàn hệ thống
Domain Chứa các thực thể (Entities), quy tắc nghiệp vụ và Interfaces
Application.Contracts Định nghĩa các lớp DTO (Data Transfer Object) và Interfaces dịch vụ
Application Triển khai logic Use Case, xử lý nghiệp vụ thông qua DTO
Infrastructure Tương tác cơ sở dữ liệu qua EF Core 7, tích hợp dịch vụ bên thứ ba
WebApi / WebMvc Cung cấp giao diện Web Client (Razor Pages) và API cho Mobile
Mobile App (Android) UI Layer Xây dựng màn hình bằng Jetpack Compose, hiển thị dữ liệu
Domain Layer Cầu nối chứa Use Cases, định nghĩa Business Logic cho ứng dụng
Data Layer Triển khai Repositories, gọi API Backend qua Retrofit2
Recommendation Engine Module độc lập Xây dựng bằng Python, tính toán Collaborative Filtering (KNN / Cosine)

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu được tổ chức trên Microsoft SQL Server với các bảng lưu trữ thông tin thực thể và quan hệ nghiệp vụ, tiêu biểu gồm:

  • TutorMajor: Quản lý thông tin chuyên ngành, bằng cấp, trình độ đào tạo của gia sư.
  • UserSubscribes: Lưu trữ thông tin đăng ký nhận tin, theo dõi giữa người dùng và trung tâm.
  • CourseRequests: Ghi nhận các yêu cầu mở lớp học mới hoặc yêu cầu nhận lớp từ phía gia sư/học viên.
  • ChangeVerificationRequestDetail: Lưu trữ chi tiết các yêu cầu xác thực và phê duyệt thông tin hồ sơ gia sư từ quản trị viên.
  • LearnerDiscovery: Quản lý hành vi khám phá, tìm kiếm và tương tác của học viên phục vụ mô hình gợi ý.
  • Các bảng thực thể mở rộng: Users, Courses, Subjects, Ratings, Payments.

Thiết kế Use Case và Phân quyền

Hệ thống phân định rõ hai nhóm tác nhân chính: Khách hàng (Học viên/Phụ huynh, Gia sư) và Quản lý (Admin):

  • Nhóm Authentication: Đăng ký tài khoản, Đăng nhập, Quên mật khẩu (gửi email xác nhận reset), Đổi mật khẩu, Quản lý thông tin cá nhân (Edit Profile).
  • Nhóm Khách hàng: Xem danh sách lớp mới cần gia sư, xem chi tiết lớp học, đăng ký nhận lớp (Request Course), xem danh sách gia sư, lọc theo môn học, xem chi tiết hồ sơ gia sư, gửi yêu cầu thuê gia sư cụ thể (Request Tutor).
  • Nhóm Quản trị (Admin): Quản lý hồ sơ gia sư (thêm, sửa, xóa, duyệt chứng chỉ), quản lý danh mục môn học (Subjects), quản lý lớp học (Courses), quản lý người dùng, quản lý giao dịch thanh toán và xét duyệt yêu cầu mở lớp.

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

Chương 1. Giới thiệu đề tài

Chương mở đầu phân tích bối cảnh phát triển của ngành giáo dục và sự cần thiết của việc số hóa dịch vụ gia sư. Tác giả chỉ rõ các vấn đề tồn đọng của các website gia sư hiện hành tại Việt Nam: giao diện lỗi thời, trải nghiệm người dùng chưa tốt, bộ lọc tìm kiếm kém hiệu quả và hoàn toàn thiếu vắng hệ thống khuyến nghị thông minh. Từ đó, đề tài xác định mục tiêu xây dựng một giải pháp toàn diện gồm Website và Ứng dụng di động Android có độ tương thích chức năng cao (80–90%), tích hợp Recommendation System dựa trên thuật toán lọc cộng tác.

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

Nội dung chương tập trung giới thiệu các công nghệ và nền tảng lý thuyết được lựa chọn:

  • Nền tảng phát triển Backend với ASP.NET Core 7, Entity Framework Core hỗ trợ ánh xạ ORM và hệ quản trị Microsoft SQL Server.
  • Bộ công cụ phát triển ứng dụng di động Android hiện đại (Modern Android Development) với ngôn ngữ Kotlin và Jetpack Compose.
  • Lý thuyết Clean Architecture của Robert C. Martin với 4 vòng tròn phân tầng (Entities, Use Cases, Interface Adapters, Frameworks & Drivers).
  • Lý thuyết Hệ thống khuyến nghị: So sánh giữa Collaborative Filtering, Content Filtering và Hybrid; chi tiết hóa giải thuật Collaborative Filtering thông qua ma trận đánh giá User – Subject, công thức Cosine xác định độ tương đồng và thuật toán k-Nearest Neighbours (k-NN) dùng khoảng cách Euclid.

Chương 3. Phân tích thiết kế hệ thống

Chương 3 trình bày chi tiết bản vẽ kỹ thuật của hệ thống:

  • Mô tả kiến trúc phân tầng cho hệ thống Web (Domain.Shared, Domain, Application.Contracts, Application, Infrastructure, WebApi/WebMvc) và Mobile (UI Layer, Domain Layer, Data Layer).
  • Xây dựng sơ đồ Use Case tổng quát và sơ đồ Use Case chi tiết cho từng phân hệ (Authentication, Tra cứu lớp học & Gia sư, Quản trị hệ thống).
  • Đặc tả chi tiết các Use Case chính bằng bảng chuẩn hóa (bao gồm: Tên trường hợp, Tác nhân, Sự kiện kích hoạt, Luồng chính, Luồng ngoại lệ, Điều kiện trước và sau).
  • Thiết kế cơ sở dữ liệu quan hệ với các bảng nghiệp vụ: TutorMajor, UserSubscribes, CourseRequests, ChangeVerificationRequestDetail, LearnerDiscovery...

Chương 4. Xây dựng ứng dụng

Chương 4 minh họa kết quả xây dựng giao diện và hiện thực hóa tính năng trên cả hai nền tảng:

  • Phân hệ Web Admin: Giao diện Đăng nhập, Dashboard thống kê, Quản lý người dùng, Quản lý thông tin chi tiết gia sư, Quản lý yêu cầu học trực tiếp, Quản lý thanh toán, Quản lý lớp học, Quản lý môn học và Thông tin tài khoản quản trị.
  • Phân hệ Web Client: Giao diện Trang chủ (Home), Giới thiệu (About Us), Danh sách gia sư, Danh sách lớp học cần gia sư, Chi tiết gia sư/lớp học, Đăng nhập, Tạo lớp học và Trang liên hệ.
  • Phân hệ Ứng dụng Di động Android: Giao diện Home, Chi tiết gia sư (Tutor Detail), Đánh giá gia sư (Tutors Review and Rating), Chi tiết khóa học (Course Detail), Thanh toán (Pay Courses), Gợi ý tìm kiếm (Search Suggestion), Lọc kết quả (Filter Search Result), Danh sách lớp yêu cầu (Requested Courses), Chỉnh sửa hồ sơ cá nhân và gia sư (Edit Profile, Edit Tutor Profile), Chọn môn học (Pick Subjects) và Tạo lớp học (Create Courses).

Chương 5. Kết luận

Chương cuối cùng tổng kết các kết quả nghiên cứu lý thuyết và sản phẩm thực nghiệm đạt được, đồng thời phân tích các ưu điểm, nhược điểm trong quá trình triển khai và vạch ra các hướng hoàn thiện hệ thống trong tương lai.


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

Kết quả kỹ thuật và sản phẩm đạt được

  • Hoàn thiện hệ thống đa nền tảng: Xây dựng thành công hệ sinh thái phần mềm gồm Web Quản trị, Web Khách hàng (sử dụng ASP.NET Core 7, Razor Pages, Bootstrap) và Ứng dụng di động Android Native (sử dụng Kotlin, Jetpack Compose).
  • Độ đồng bộ tính năng cao: Các chức năng nghiệp vụ giữa Website và Mobile đạt mức tương đồng từ 80% đến 90%, đảm bảo trải nghiệm xuyên suốt cho người dùng khi chuyển đổi thiết bị.
  • Tích hợp module AI Khuyến nghị: Hiện thực hóa thành công module Recommendation System bằng Python, ứng dụng giải thuật Collaborative Filtering kết hợp k-NN và khoảng cách Cosine/Euclid để gợi ý lớp học và gia sư phù hợp.
  • Chuẩn hóa kiến trúc mã nguồn: Ứng dụng thành công Clean Architecture trên cả Backend và Android, giúp phân tách độc lập các tầng nghiệp vụ, hạn chế sự phụ thuộc giữa các module và giảm thiểu lỗi trong quá trình phát triển.

Bảng tổng hợp các phân hệ và công nghệ triển khai

Phân hệ Nền tảng / Ngôn ngữ Thư viện & Công nghệ chính Chức năng chính
Backend & Web API C# / .NET 7 ASP.NET Core 7, EF Core 7, SQL Server Xử lý logic nghiệp vụ, ORM, cung cấp RESTful API, quản lý dữ liệu
Web Client & Admin C#, HTML, JS ASP.NET MVC, Razor Pages, Bootstrap Cổng thông tin cho học viên/gia sư và bảng điều khiển quản trị trung tâm
Mobile App Kotlin Jetpack Compose, Retrofit2, Glide, Firebase Tìm kiếm, xem gợi ý, đặt lịch gia sư, quản lý lớp học trên thiết bị di động
Khuyến nghị (AI) Python Ma trận Rating, Cosine Similarity, KNN Tính toán độ tương đồng người dùng, tự động gợi ý lớp học và gia sư

Đóng góp của đề tài

So với các hệ thống gia sư truyền thống được khảo sát tại Việt Nam (như Daykemtainha.vn, Giasubaochau.net, Trungtamdaykem.com), đề tài đã mang lại các cải tiến rõ rệt:

  • Hiện đại hóa giao diện người dùng theo chuẩn Native UI (Jetpack Compose), khắc phục tình trạng giao diện cũ kỹ và khó sử dụng của các nền tảng trước.
  • Bổ sung hệ thống khuyến nghị thông minh hỗ trợ tự động gợi ý lớp học/gia sư dựa trên dữ liệu đánh giá, thay thế cho cơ chế lọc thủ công dễ sai sót.
  • Chuẩn hóa quy trình nghiệp vụ từ khâu đăng ký, xác thực chứng chỉ gia sư, tạo yêu cầu lớp học đến phê duyệt của quản trị viên.

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

Hạn chế của hệ thống

  • Do tập dữ liệu người dùng và đánh giá ban đầu còn hạn chế, hệ thống chưa triển khai kỹ thuật Phân rã ma trận (Matrix Factorization) để tối ưu hóa hiệu năng tính toán trên các tập dữ liệu cực lớn (Big Data).
  • Ứng dụng di động hiện tại chỉ mới được phát triển và tối ưu cho nền tảng Android, chưa có phiên bản dành cho hệ điều hành iOS.

Hướng nghiên cứu và phát triển tiếp

  • Tích hợp thêm các kỹ thuật phân rã ma trận và học sâu (Deep Learning) vào hệ thống khuyến nghị khi quy mô dữ liệu người dùng tăng trưởng.
  • Mở rộng phát triển ứng dụng di động đa nền tảng hoặc phiên bản Native trên iOS để phục vụ toàn diện người dùng.
  • Tích hợp cổng thanh toán trực tuyến chuyên sâu và phát triển thêm các công cụ hỗ trợ phòng học trực tuyến (video call, bảng tương tác) trực tiếp trong hệ sinh thái.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo chuyên môn đối với:

  • Sinh viên ngành Công nghệ thông tin, Công nghệ phần mềm: Là tài liệu tham khảo thực tế về việc áp dụng kiến trúc Clean Architecture trên cả ứng dụng Backend (.NET Core) và ứng dụng di động Android (Modern Android Development với Jetpack Compose).
  • Nhà phát triển và nhóm nghiên cứu phần mềm giáo dục: Cung cấp phương pháp luận chi tiết từ khâu khảo sát thực tế, phân tích Use Case, thiết kế cơ sở dữ liệu quan hệ đến việc tích hợp giải thuật Machine Learning (Collaborative Filtering / k-NN) vào sản phẩm thương mại thực tế.
  • Các phần đáng tham khảo nhất: Hệ thống bảng đặc tả Use Case chi tiết (Chương 3), sơ đồ phân tầng Clean Architecture (Chương 2, Chương 3) và phương pháp xây dựng ma trận đánh giá cho thuật toán gợi ý (Chương 2).

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

1. Khóa luận sử dụng thuật toán nào trong hệ thống khuyến nghị và nguyên lý hoạt động ra sao?

Khóa luận sử dụng phương pháp Lọc cộng tác (Collaborative Filtering) dựa trên thuật toán k-láng giềng gần nhất (k-Nearest Neighbours - KNN) và độ đo tương đồng Cosine. Hệ thống tạo lập ma trận đánh giá giữa người dùng và môn học/lớp học, sau đó sử dụng công thức Cosine và khoảng cách Euclid để tìm ra nhóm người dùng có hành vi/đánh giá tương đồng nhằm dự đoán và gợi ý các lớp học hoặc gia sư phù hợp nhất.

2. Mô hình kiến trúc Clean Architecture được triển khai trên hệ thống Web và Mobile như thế nào?

  • Phía Web/Backend: Được phân chia thành các tầng độc lập gồm Domain.Shared, Domain (chứa thực thể), Application.Contracts (chứa DTO và Interfaces), Application (chứa logic Use Case), Infrastructure (xử lý EF Core và dịch vụ ngoài) và WebApi/WebMvc (tầng giao diện/API).
  • Phía Mobile Android: Cấu trúc gồm 3 tầng chính theo khuyến nghị của Google: UI Layer (Jetpack Compose), Domain Layer (chứa Use Cases đóng vai trò cầu nối logic) và Data Layer (gọi API qua Retrofit2).

3. Những nền tảng thực tế nào đã được nhóm tác giả khảo sát để tìm ra vấn đề tồn đọng?

Nhóm tác giả đã tiến hành khảo sát thực tế 4 hệ thống trung tâm gia sư đang hoạt động tại Hà Nội và TP.HCM gồm: Daykemtainha.vn, Giasutrithuc.net (Gia sư Tri Thức), Giasubaochau.net (Gia sư Bảo Châu) và Trungtamdaykem.com (Gia sư Thăng Long).

4. Công nghệ nào được lựa chọn để phát triển ứng dụng di động Android?

Ứng dụng di động được xây dựng bằng bộ công cụ Modern Android Development với ngôn ngữ lập trình Kotlin, bộ thư viện giao diện Declarative Native UI Jetpack Compose, thư viện Android Jetpack, cùng các thư viện bên thứ ba gồm Retrofit2 (gọi API), Glide (tải và xử lý hình ảnh) và Firebase.

5. Vì sao đồ án không áp dụng kỹ thuật Phân rã ma trận (Matrix Factorization) khi tính toán gợi ý?

Do quy mô dữ liệu thử nghiệm của hệ thống ở giai đoạn hiện tại chưa đạt mức hàng triệu hay trăm triệu bản ghi dữ liệu, ma trận đánh giá còn ở mức vừa phải nên nhóm tác giả quyết định lược bỏ bước phân rã ma trận nhằm đơn giản hóa quá trình xử lý mà vẫn đảm bảo được độ chính xác của thuật toán KNN.


Kết luận

Khóa luận tốt nghiệp "Xây dựng Website và ứng dụng di động cho trung tâm tư vấn và phát triển giáo dục" đã giải quyết trọn vẹn bài toán số hóa quy trình quản lý và kết nối gia sư - học viên thông qua một hệ sinh thái phần mềm hoàn chỉnh. Việc kết hợp nền tảng ASP.NET Core 7, Modern Android Development với thuật toán lọc cộng tác (Collaborative Filtering) giúp nâng cao hiệu quả tìm kiếm và tối ưu hóa trải nghiệm người dùng. Cấu trúc hệ thống tuân thủ chặt chẽ nguyên lý Clean Architecture, tạo nền tảng vững chắc cho tính mở rộng, an toàn và thuận tiện bảo trì trong tương lai.