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

Sự phổ biến của thiết bị di động thông minh và công nghệ không dây trong thập niên 2010 đã mở ra nhiều hướng tiếp cận mới cho bài toán quản lý điểm danh trong môi trường giáo dục. Tại Việt Nam, các phương pháp điểm danh truyền thống như gọi tên trực tiếp, ký tên hay quét thẻ sinh viên vẫn còn tồn tại nhiều hạn chế: tốn thời gian của giáo viên và học viên, khó kiểm soát khi lớp đông, và đặc biệt dễ bị gian lận (mượn thẻ điểm danh thay). Bên cạnh đó, bối cảnh dịch bệnh Covid-19 năm 2020 đòi hỏi giãn cách giữa người với người, làm cho nhu cầu về một giải pháp điểm danh không tiếp xúc trở nên cấp thiết hơn. Sự thành công của ứng dụng Bluezone — ứng dụng phát hiện tiếp xúc gần qua Bluetooth được phát hành giữa năm 2020 — là minh chứng thực tế cho khả năng ứng dụng công nghệ Bluetooth trong bối cảnh Việt Nam.

Từ những quan sát trên, nhóm tác giả gồm Trương Đức Nghĩa (MSSV: 17520804) và Nguyễn Phương Phi (MSSV: 17520890), sinh viên Trường Đại học Công nghệ Thông tin — Đại học Quốc gia TP. Hồ Chí Minh, dưới sự hướng dẫn của ThS. Võ Ngọc Tân, đã lựa chọn thực hiện đề tài "Ứng dụng điểm danh lớp học bằng Bluetooth".

Mục tiêu đề tài:

  1. Tìm hiểu phương thức kết nối Bluetooth và quy trình xác minh thiết bị; phân tích ưu, nhược điểm của phương pháp điểm danh bằng Bluetooth.
  2. Khảo sát các phương pháp điểm danh hiện hành và so sánh để xác định giải pháp phù hợp.
  3. Nghiên cứu hai công nghệ phát triển ứng dụng phổ biến là ASP.NET Core (Back-end) và React gồm ReactJS, React Native (Front-end).
  4. Xây dựng ứng dụng di động điểm danh dành cho sinh viên và giáo viên, kèm website quản lý dành cho quản trị viên.
  5. Ngăn chặn hành vi điểm danh gian lận (điểm danh hộ) thông qua cơ chế xác thực thiết bị và tài khoản.

Đối tượng nghiên cứu: Phương thức kết nối Bluetooth giữa các thiết bị điện thoại di động và quy trình xác minh thiết bị gắn liền với từng học viên.

Phạm vi nghiên cứu: Ứng dụng điểm danh trong môi trường lớp học, hỗ trợ nền tảng Android. Nhóm tự tạo dữ liệu mẫu, không tích hợp dữ liệu thứ ba (cơ sở dữ liệu sinh viên, thời khóa biểu, học phần từ hệ thống nhà trường). Thời gian thực hiện từ 01/03/2021 đến 12/06/2021.


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

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

Khóa luận xây dựng nền tảng lý thuyết xoay quanh ba nhóm công nghệ chính:

Bluetooth và BLE:

  • Bluetooth là chuẩn truyền thông không dây sử dụng sóng vô tuyến UHF trong dải tần 2,4 GHz, hỗ trợ truyền dữ liệu tốc độ 1 Mb/s trong phạm vi 10–100 m.
  • Khóa luận phân biệt hai biến thể: Bluetooth Classic (truyền lượng lớn dữ liệu như hình ảnh, âm thanh, tiêu hao nhiều điện năng) và Bluetooth Low Energy (BLE) (tiêu thụ điện năng thấp hơn, phù hợp với các ứng dụng không yêu cầu luồng dữ liệu lớn, thiết bị có thể chạy bằng pin trong nhiều năm).
  • BLE được lựa chọn áp dụng vào ứng dụng điểm danh. Trong kiến trúc BLE, ứng dụng hoạt động theo hai vai trò: Peripheral (thiết bị phát) và Central (thiết bị thu). Mỗi thiết bị sinh viên được sinh ra một UUID (Universally Unique Identifier) khi đăng ký; ứng dụng giáo viên lấy trực tiếp ID của giáo viên làm định danh.
Thông số Bluetooth Classic Bluetooth Low Energy (BLE)
Độ trễ 6 ms 3 ms
Hỗ trợ thoại Có —
Cấu trúc mạng Star Star
Mức tiêu thụ điện < 30 mA < 15 mA

Công nghệ Front-end — React:

  • ReactJS: Thư viện JavaScript mã nguồn mở do Facebook phát hành năm 2013, sử dụng Virtual DOM và thuật toán Diffing/Reconciliation để cập nhật giao diện hiệu quả. Các khái niệm cốt lõi được trình bày gồm JSX, Component (Function Component và Class Component), Props, State, ES6 và Redux.
  • Redux: Thư viện quản lý trạng thái ứng dụng, hoạt động theo nguyên lý: Action → Reducer → Store → View. Redux được sử dụng kết hợp với ReactJS.
  • React Native: Framework đa nền tảng mã nguồn mở của Facebook, cho phép viết ứng dụng di động Android và iOS bằng JavaScript, dùng chung các khái niệm JSX, Component, Props, State, ES6, Redux với ReactJS.

Công nghệ Back-end — ASP.NET Core:

  • Nền tảng mã nguồn mở, miễn phí, đa nền tảng (Windows, Mac OS, Linux) do Microsoft phát triển. Bao gồm MVC framework và Web API, phù hợp xây dựng RESTful services phục vụ các client đa dạng (IOT, ứng dụng di động, trình duyệt).

Phương pháp thực hiện

Khóa luận áp dụng phương pháp thiết kế và xây dựng hệ thống phần mềm, cụ thể:

  • Khảo sát hiện trạng: Phân tích và so sánh các phương pháp điểm danh hiện hành (điểm danh trực tiếp, máy chấm công vân tay/nhận diện khuôn mặt, thẻ sinh viên); tham khảo ứng dụng Bluezone như một case study về triển khai Bluetooth.
  • Phân tích yêu cầu: Xác định yêu cầu chức năng theo ba nhóm actor: Học viên, Giáo viên, Quản trị viên.
  • Thiết kế hệ thống: Xây dựng Use Case Diagram (tổng quát và chi tiết), Activity Diagram, Sequence Diagram và Entity-Relationship Diagram.
  • Lập trình và tích hợp: Phân công Trương Đức Nghĩa phụ trách ASP.NET Core Back-end, cấu hình server và ReactJS; Nguyễn Phương Phi phụ trách React Native, khảo sát hiện trạng và lập trình ứng dụng điểm danh.
  • Kiểm tra, vận hành: Kiểm thử tích hợp và vận hành hệ thống.

Nguồn dữ liệu: Dữ liệu mẫu do nhóm tự tạo; thông tin tham khảo từ ứng dụng Bluezone và các tài liệu kỹ thuật về ReactJS, ASP.NET Core, BLE.

Công nghệ sử dụng: ReactJS (Front-end website), React Native (ứng dụng di động), ASP.NET Core (Web API Back-end), SQL Server 2019 (cơ sở dữ liệu), HTML, CSS, JavaScript.


Thiết kế và triển khai

Kiến trúc hệ thống

Hệ thống bao gồm ba thành phần phân tách rõ ràng:

  • Ứng dụng di động sinh viên (React Native, Android): Cho phép đăng ký tài khoản, đăng ký thiết bị (gắn UUID với tài khoản), điểm danh (cả online lẫn offline qua Bluetooth), xem thời khóa biểu, đăng ký khóa học, quản lý thông tin cá nhân, yêu cầu thay đổi thiết bị.
  • Ứng dụng di động giáo viên (React Native, Android): Đăng nhập, chọn lịch học, bật điểm danh (hoạt động đồng thời ở cả hai vai trò Peripheral và Central trong BLE), xem lịch sử điểm danh, quản lý thông tin cá nhân.
  • Website quản lý (ReactJS, ASP.NET Core Web API, SQL Server 2019): Dành cho quản trị viên và giáo viên. Quản trị viên quản lý toàn bộ tài khoản giáo viên/học viên, khóa học, môn học, phòng học, lịch học và xét duyệt yêu cầu thay đổi thiết bị. Giáo viên có thể xem khóa học, lịch sử điểm danh sinh viên.

Cơ chế chống gian lận điểm danh

Đây là trọng tâm kỹ thuật của đề tài. Mỗi thiết bị smartphone được gắn với đúng một tài khoản sinh viên thông qua UUID được sinh ra khi đăng ký thiết bị. Quá trình điểm danh diễn ra theo hai chế độ:

  1. Giáo viên chủ động điểm danh: Giáo viên bật ứng dụng và quét các thiết bị sinh viên qua Bluetooth; sinh viên chỉ cần bật app, không cần kết nối Internet.
  2. Sinh viên tự điểm danh: Sinh viên quét thiết bị của giáo viên; khi phát hiện thiết bị giáo viên, sinh viên được ghi nhận điểm danh.

Để xóa thiết bị đã đăng ký, sinh viên phải dùng chính thiết bị đó để đăng nhập và nêu lý do, sau đó chờ quản trị viên xét duyệt — cơ chế này ngăn việc thay đổi thiết bị tùy tiện nhằm mục đích gian lận.

Thiết kế cơ sở dữ liệu và Use Case

Hệ thống có 15 bảng đặc tả Use Case chính (đăng nhập, đăng ký, điểm danh giáo viên, điểm danh sinh viên, đăng ký khóa học, đăng ký thiết bị, quản lý khóa học, lịch học, phòng học, môn học, quản lý học viên, xét duyệt thay đổi thiết bị,...) cùng các sơ đồ hoạt động và tuần tự tương ứng (tổng cộng trên 48 sơ đồ hình vẽ được liệt kê trong danh mục). Các mối quan hệ thực thể được mô hình hóa bao gồm: học viên — thiết bị, học viên — môn học, giáo viên — khóa học, lịch học — môn học — lớp học, học viên — thông báo xóa thiết bị.

Kiểm thử

Khóa luận dành một giai đoạn kiểm tra và vận hành kéo dài 1 tháng theo kế hoạch thực hiện đề ra (tổng thời gian dự án: 4 tháng, trong đó xây dựng dữ liệu và API 1 tháng, xây dựng website và ứng dụng 2 tháng, kiểm tra vận hành 1 tháng).


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

Chương 1: Giới thiệu

Chương đặt vấn đề nghiên cứu dựa trên ba lý do chính: xu hướng ứng dụng CNTT trong quản lý thời gian và điểm danh; tính phổ biến của smartphone (mỗi người dùng đều trang bị ít nhất một thiết bị); và yêu cầu giãn cách xã hội do Covid-19 năm 2020. Chương trình bày đối tượng nghiên cứu (phương thức kết nối Bluetooth và xác minh thiết bị), mục tiêu, phương pháp, giới hạn phạm vi (chỉ hỗ trợ Android, dữ liệu tự tạo, không tích hợp hệ thống trường) và bố cục 5 chương của khóa luận.

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

Chương trình bày toàn bộ nền tảng công nghệ được sử dụng. Phần Bluetooth và BLE bao gồm nguyên lý hoạt động, cách "ghép nối" thiết bị, so sánh Bluetooth Classic và BLE (bảng thông số kỹ thuật: độ trễ, tiêu thụ điện, cấu trúc mạng). Phần ReactJS trình bày Virtual DOM, JSX, Component, Props, State, ES6 và Redux với nguyên lý hoạt động Action → Reducer → Store → View. Phần React Native giải thích sự tương đồng với ReactJS trong bối cảnh phát triển ứng dụng native đa nền tảng. Phần ASP.NET Core trình bày kiến trúc framework, khả năng đa nền tảng và cách xây dựng Web API RESTful phục vụ đa loại client.

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

Chương bắt đầu bằng khảo sát ba phương pháp điểm danh hiện hành:

Phương pháp Ưu điểm Nhược điểm
Điểm danh trực tiếp (ký tên/gọi tên) Đơn giản, dễ quản lý lớp nhỏ Tốn thời gian, khó kiểm soát lớp lớn
Máy chấm công vân tay/gương mặt Chính xác, nhanh, chống xâm nhập Chi phí lắp đặt cao, ít trường áp dụng
Thẻ sinh viên Tiện lợi, dễ lắp đặt Dễ gian lận (mượn thẻ), khó kiểm soát lớp lớn

Tiếp theo, chương mô tả vấn đề xác minh thiết bị với học viên (quy trình đăng ký UUID, quy trình xóa thiết bị có xét duyệt), vấn đề điểm danh (hai chế độ: giáo viên quét/sinh viên tự quét). Phần phân tích yêu cầu hệ thống xác định ba nhóm actor với các Use Case tương ứng. Phần thiết kế hệ thống xây dựng 15 bảng đặc tả Use Case, trên 30 sơ đồ Use Case chi tiết, sơ đồ hoạt động cho các luồng chính (đăng ký, đăng nhập, điểm danh, quản lý khóa học, xóa thiết bị,...), sơ đồ tuần tự và mô hình quan hệ cơ sở dữ liệu.

Chương 4: Kết quả xây dựng ứng dụng điểm danh lớp học bằng Bluetooth

Chương trình bày kết quả xây dựng thực tế của ba thành phần hệ thống thông qua ảnh chụp màn hình giao diện:

  • Ứng dụng sinh viên: Màn hình đăng nhập, đăng ký, điểm danh (có mạng và offline), xem thời khóa biểu, danh sách khóa học, lịch sử đăng ký, chọn môn học, thông tin cá nhân, thay đổi thiết bị.
  • Ứng dụng giáo viên: Màn hình đăng nhập, chọn lịch học, chọn khóa học, lịch sử điểm danh, màn hình điểm danh sinh viên (hai bước), thông tin cá nhân giáo viên.
  • Website quản trị: Giao diện đăng nhập, dashboard quản trị viên, giao diện giáo viên, quản lý khóa học, quản lý sinh viên, trang yêu cầu (xét duyệt thiết bị), trang đăng ký khóa học.

Tổng cộng chương trình bày 31 hình chụp màn hình giao diện (Hình 4-1 đến Hình 4-31).

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

Chương tổng kết những gì đã thực hiện được, đánh giá ưu nhược điểm của phương pháp điểm danh bằng Bluetooth đã triển khai, và đề xuất hướng phát triển trong tương lai cho ứng dụng lẫn phương pháp chống gian lận.


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

Kết quả đạt được:

  • Hoàn thành bộ hệ thống gồm ba thành phần: ứng dụng di động dành cho sinh viên (Android), ứng dụng di động dành cho giáo viên (Android) và website quản lý dành cho quản trị viên.
  • Triển khai thành công cơ chế điểm danh bằng BLE với hai chế độ hoạt động: giáo viên chủ động quét thiết bị sinh viên và sinh viên tự quét thiết bị giáo viên. Sinh viên có thể điểm danh khi không có kết nối Internet (chế độ offline qua Bluetooth).
  • Xây dựng cơ chế xác thực thiết bị một-một (mỗi UUID/thiết bị chỉ gắn với một tài khoản sinh viên) và quy trình xét duyệt thay đổi thiết bị qua quản trị viên, góp phần ngăn chặn điểm danh hộ.
  • Tích lũy kiến thức thực tiễn về ASP.NET Core, ReactJS và React Native trong một dự án tích hợp.

Giải pháp và kiến nghị tác giả đề xuất:

  • Áp dụng phương pháp điểm danh bằng Bluetooth thay thế các phương pháp thủ công, giảm thời gian điểm danh và hạn chế gian lận.
  • Duy trì cơ chế xét duyệt thiết bị của quản trị viên như một lớp kiểm soát bổ sung.
  • Hướng phát triển: mở rộng tính năng ứng dụng và hoàn thiện thêm phương pháp chống gian lận.

Đóng góp so với hiện trạng:

  • Đề xuất và triển khai giải pháp kết hợp xác thực UUID thiết bị với tài khoản người dùng trong bối cảnh điểm danh học đường tại Việt Nam.
  • Chứng minh tính khả thi của việc điểm danh trong điều kiện không có Internet nhờ BLE.
  • Cung cấp bộ tài liệu phân tích, thiết kế (Use Case, Activity Diagram, Sequence Diagram, ERD) hoàn chỉnh cho bài toán điểm danh bằng Bluetooth.

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

Hạn chế được tác giả nêu:

  • Ứng dụng chỉ hỗ trợ nền tảng Android, chưa có phiên bản iOS.
  • Nhóm tự tạo dữ liệu mẫu, không tích hợp với cơ sở dữ liệu thực của nhà trường (thời khóa biểu, danh sách sinh viên, học phần, lớp học chính thức).
  • Phạm vi kiểm thử giới hạn trong môi trường và dữ liệu do nhóm tạo ra, chưa được thử nghiệm trong điều kiện vận hành thực tế tại trường học.

Hướng phát triển tiếp theo (theo văn bản):

  • Mở rộng tính năng ứng dụng (application).
  • Hoàn thiện và nâng cao phương pháp chống gian lận trong điểm danh.

Giá trị tham khảo

Khóa luận phù hợp làm tài liệu tham khảo cho:

  • Sinh viên ngành Công nghệ Thông tin thực hiện đồ án tốt nghiệp về phát triển ứng dụng di động, hệ thống quản lý trường học hoặc ứng dụng IoT/Bluetooth; đặc biệt hữu ích cho những ai muốn tìm hiểu cách triển khai BLE trong React Native.
  • Sinh viên học ReactJS, React Native hoặc ASP.NET Core: Chương 2 cung cấp tổng quan các công nghệ này với ví dụ minh họa cụ thể (JSX, Component, Redux, BLE peripheral/central).
  • Nhóm thực hiện đề tài tương tự về điểm danh: Chương 3 cung cấp bộ tài liệu phân tích thiết kế hệ thống tham chiếu (Use Case, Activity, Sequence Diagram, mô hình dữ liệu) cho bài toán điểm danh với ba nhóm actor.
  • Người nghiên cứu về chống gian lận điểm danh: Phần mô tả cơ chế xác thực thiết bị UUID và quy trình xét duyệt thay đổi thiết bị là phần có giá trị tham khảo về mặt giải pháp kỹ thuật.

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

1. Tại sao khóa luận chọn BLE thay vì Bluetooth Classic để triển khai điểm danh?

Bluetooth Classic được thiết kế để truyền lượng dữ liệu lớn (hình ảnh, âm thanh), vì vậy tiêu hao nhiều điện năng và chi phí cao hơn. BLE tiêu thụ dưới 15 mA so với dưới 30 mA của Bluetooth Classic, và không yêu cầu kết nối liên tục — phù hợp với bài toán điểm danh chỉ cần trao đổi lượng dữ liệu nhỏ (UUID/ID định danh) trong phạm vi lớp học.

2. Cơ chế nào ngăn sinh viên nhờ người khác điểm danh hộ?

Hệ thống gắn mỗi thiết bị smartphone với đúng một tài khoản sinh viên thông qua UUID được sinh ra khi đăng ký. Mỗi điện thoại tương ứng với một sinh viên. Để thay đổi thiết bị đã đăng ký, sinh viên phải dùng chính thiết bị đó để đăng nhập, nêu lý do, và chờ quản trị viên xét duyệt — cơ chế này hạn chế việc chuyển nhượng thiết bị nhằm điểm danh gian lận.

3. Sinh viên có thể điểm danh khi không có kết nối Internet không?

Có. Khi không có mạng, sinh viên hoạt động ở vai trò Peripheral (thiết bị phát), chỉ cần bật ứng dụng để phát UUID. Giáo viên sẽ quét và thu nhận tín hiệu BLE từ thiết bị sinh viên để ghi nhận điểm danh. Ngược lại, khi có mạng, sinh viên hoạt động ở vai trò Central (thiết bị thu) và tự quét thiết bị giáo viên để điểm danh.

4. Nền tảng và công nghệ nào được sử dụng để xây dựng từng thành phần của hệ thống?

Ứng dụng di động (cho cả sinh viên lẫn giáo viên) được xây dựng bằng React Native, chỉ hỗ trợ nền tảng Android. Website quản lý sử dụng ReactJS ở Front-end. Back-end được xây dựng bằng ASP.NET Core (Web API), cơ sở dữ liệu dùng SQL Server 2019. Mã nguồn còn sử dụng HTML, CSS, JavaScript.

5. Hệ thống có những nhóm người dùng nào và mỗi nhóm có quyền hạn gì?

Hệ thống có ba nhóm actor: Học viên (đăng ký tài khoản, đăng ký thiết bị, đăng ký khóa học, điểm danh, xem thời khóa biểu, yêu cầu thay đổi thiết bị); Giáo viên (đăng nhập, xem khóa học đang dạy, bật điểm danh, xem lịch sử điểm danh sinh viên); và Quản trị viên (quản lý toàn bộ tài khoản giáo viên/học viên, khóa học, môn học, phòng học, lịch học, và xét duyệt yêu cầu thay đổi thiết bị của học viên).


Kết luận

Khóa luận "Ứng dụng điểm danh lớp học bằng Bluetooth" của Trương Đức Nghĩa và Nguyễn Phương Phi trình bày quá trình nghiên cứu công nghệ BLE, ReactJS, React Native và ASP.NET Core, từ đó xây dựng một hệ thống điểm danh hoàn chỉnh gồm ứng dụng di động Android cho sinh viên và giáo viên, cùng website quản lý dành cho quản trị viên. Điểm kỹ thuật đáng chú ý là cơ chế xác thực thiết bị theo UUID và quy trình xét duyệt thay đổi thiết bị nhằm hạn chế gian lận, cùng với khả năng điểm danh offline qua BLE. Phạm vi hiện tại giới hạn ở nền tảng Android và dữ liệu mẫu tự tạo, song hệ thống cung cấp nền tảng kỹ thuật và tài liệu thiết kế đủ chi tiết để mở rộng trong các nghiên cứu tiếp theo.