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

Trong bối cảnh công nghệ thông tin và truyền thông số phát triển nhanh chóng, việc quản trị, tra cứu và kiểm soát dữ liệu của cá nhân hoặc tổ chức đòi hỏi các giải pháp xử lý tức thời, chính xác và giảm thiểu thao tác thủ công. Công nghệ mã vạch một chiều truyền thống (Bar code) bộc lộ nhiều hạn chế về dung lượng lưu trữ (chỉ lưu được tối đa khoảng 20 ký tự số), yêu cầu căn chỉnh góc quét nghiêm ngặt theo phương ngang và dễ mất dữ liệu khi bề mặt in bị trầy xước. Sự ra đời của mã vạch ma trận hai chiều (2D matrix-barcode), tiêu biểu là mã QR (Quick Response code), đã giải quyết căn bản các nhược điểm trên nhờ khả năng lưu trữ hàng ngàn ký tự chữ số, đọc đa hướng 360 độ và tích hợp cơ chế tự phục hồi lỗi. Xuất phát từ nhu cầu thực tiễn trong việc quản lý nhân sự, kiểm soát người tham gia sự kiện và điểm danh chuyên cần của học sinh, sinh viên tại các trường học, tác giả Phạm Văn Hoàng Hà đã thực hiện đồ án tốt nghiệp với đề tài "Tìm hiểu QRcode và ứng dụng cho bài toán check-in tự động".

Mục tiêu nghiên cứu của đồ án được xác định rõ:

  1. Nghiên cứu nguyên lý cấu tạo, cấu trúc dữ liệu ma trận và thuật toán mã hóa của mã QR (từ bước tạo chuỗi nhị phân, thuật toán sinh mã sửa lỗi Reed-Solomon đến lựa chọn mẫu mặt nạ).
  2. Tìm hiểu nền tảng công nghệ web phía máy chủ (Server-side) sử dụng ngôn ngữ PHP và hệ quản trị cơ sở dữ liệu quan hệ MySQL.
  3. Phân tích, thiết kế và xây dựng một hệ thống phần mềm web có khả năng tạo mã QR tự động từ thông tin người dùng và phục vụ việc ghi nhận check-in tự động.

Nhiệm vụ nghiên cứu được triển khai theo các nội dung văn bản quy định:

  1. Khảo cứu tổng quan về mã vạch thế hệ mới QR code và các công nghệ phát triển web liên quan (HTML, PHP, MySQL).
  2. Khảo sát nghiệp vụ, phân tích yêu cầu hệ thống, xây dựng các biểu đồ ngữ cảnh, phân rã chức năng, luồng dữ liệu (DFD) và mô hình dữ liệu thực thể liên kết (ERD).
  3. Hiện thực hóa phần mềm, tích hợp thư viện sinh mã QR và kiểm thử các chức năng check-in trên môi trường thực nghiệm.

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

  • Đối tượng nghiên cứu: Cấu trúc dữ liệu mã QR, thuật toán mã hóa nhị phân và sửa lỗi ma trận 2D; kiến trúc hệ thống ứng dụng web động và quy trình điểm danh, check-in tự động.
  • Phạm vi không gian: Đồ án được nghiên cứu và triển khai thử nghiệm tại Khoa Công nghệ thông tin, Trường Đại học Dân lập Hải Phòng.
  • Phạm vi thời gian: Đề tài được giao thực hiện từ ngày 15 tháng 10 năm 2018 và hoàn thành vào ngày 07 tháng 01 năm 2019.

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

Khung lý thuyết và công nghệ được tác giả sử dụng bao gồm:

  • Nguyên lý và tiêu chuẩn mã QR: Định nghĩa mã vạch ma trận hai chiều (Quick Response code). Phân loại QR code tĩnh (thông tin lưu trực tiếp dạng văn bản hoặc liên kết cố định, không thể chỉnh sửa sau khi tạo) và QR code động (liên kết trung gian trỏ về máy chủ, cho phép cập nhật nội dung mà không làm thay đổi hình ảnh mã). Thuật toán biểu diễn dữ liệu ma trận từ phiên bản 1 ($21 \times 21$ điểm ảnh) đến phiên bản 40; 4 chế độ mã hóa (Mode Indicator: kiểu số, kiểu chuỗi ký tự chữ-số, kiểu nhị phân, kiểu Nhật ngữ Kanji); lý thuyết sửa lỗi Reed-Solomon xây dựng trên trường hữu hạn Galois $GF(256)$ với 4 cấp độ sửa lỗi: L (phục hồi 7%), M (phục hồi 15%), Q (phục hồi 25%), và H (phục hồi 30%); cơ chế đánh giá 8 mẫu mặt nạ (Mask Patterns) theo điểm phạt để đảm bảo đầu đọc quét ma trận dễ dàng nhất.
  • Kiến trúc ứng dụng Web Client - Server: Khái niệm World Wide Web (WWW), phân biệt mô hình web tĩnh và web động; cơ chế thông dịch và phân phối trang của các trình chủ webserver (Apache, IIS, Tomcat); cú pháp văn bản siêu liên kết HTML và các thẻ điều hướng, lập biểu mẫu (<form>, <input>, <table>, <select>).
  • Ngôn ngữ kịch bản PHP và CSDL MySQL: Ngôn ngữ lập trình mã nguồn mở phía máy chủ PHP (cơ chế biên dịch trên máy chủ, quản lý biến $, hằng số define, chuỗi, hàm tự định nghĩa, kỹ thuật triệu gọi tệp include/require, cơ chế quản lý trạng thái phiên làm việc thông qua Cookie và Session, cùng hai phương thức truyền tải HTTP GET và POST); Hệ quản trị CSDL quan hệ MySQL (các kiểu dữ liệu số, ngày giờ, chuỗi ký tự char, varchar, text, blob; các câu lệnh truy vấn cấu trúc SELECT, INSERT, UPDATE, DELETE; nhóm hàm tổng hợp AVG, MIN, MAX, COUNT, SUM; các hàm xử lý chuỗi và hàm thời gian hệ thống CURDATE(), CURTIME()).

Phương pháp nghiên cứu thực tế đã áp dụng:

  • Phương pháp phân tích - tổng hợp lý thuyết: Thu thập, đọc hiểu các tài liệu kỹ thuật về chuẩn mã QR quốc tế, cơ chế toán học đa thức trên trường Galois và tài liệu lập trình ứng dụng web PHP/MySQL.
  • Phương pháp phân tích thiết kế hệ thống theo cấu trúc (Structured Design): Sử dụng các công cụ mô hình hóa dữ liệu và quy trình nghiệp vụ gồm biểu đồ ngữ cảnh, biểu đồ phân rã chức năng (BFD), ma trận thực thể - chức năng (CRUD), biểu đồ luồng dữ liệu (DFD) các mức, mô hình thực thể liên kết (ERD) và chuẩn hóa bảng dữ liệu quan hệ.
  • Phương pháp thực nghiệm phần mềm: Cài đặt môi trường máy chủ web cục bộ, tích hợp thư viện mã nguồn mở qrlib.php để lập trình mô-đun sinh mã QR hình ảnh định dạng PNG và xây dựng giao diện điều khiển quy trình check-in.

Nguồn dữ liệu của đề tài: Toàn bộ dữ liệu thành viên (họ tên, số điện thoại, email) được khởi tạo thực nghiệm trực tiếp trong quá trình thiết lập và kiểm thử các chức năng phần mềm.


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

Hệ thống được thiết kế nhằm tin học hóa toàn diện quy trình kiểm soát ra vào và điểm danh thông qua việc mã hóa thông tin người dùng thành mã QR.

Kiến trúc nghiệp vụ

Hệ thống vận hành thông qua sự tương tác giữa Người quản trị, Hệ thống và Thành viên:

  1. Khởi tạo thông tin: Người quản trị nhập dữ liệu cá nhân của thành viên (họ tên, số điện thoại, email) vào biểu mẫu hệ thống. Hệ thống tự động ghi nhận vào cơ sở dữ liệu.
  2. Khởi tạo mã QR: Dựa trên địa chỉ email đã đăng ký, hệ thống tự động sinh ra một mã QR tương ứng, lưu trữ dưới dạng tệp ảnh. Người quản trị tiếp nhận và bàn giao mã QR này cho từng thành viên.
  3. Check-in tự động: Thành viên cung cấp mã QR để quét tại thiết bị thu nhận của hệ thống. Hệ thống giải mã, đối soát định danh email, tự động ghi nhận thông tin và mốc thời gian check-in của thành viên vào bảng dữ liệu nhật ký.

Ma trận thực thể - chức năng

Mối liên hệ giữa các chức năng nghiệp vụ và các thực thể dữ liệu trong hệ thống được thiết lập theo bảng sau (trong đó: C là Create - Tạo mới, R là Read - Đọc dữ liệu):

Chức năng nghiệp vụ Danh sách thành viên (a) Danh sách mã QR (b) Danh sách check-in (c)
1. Khởi tạo thông tin thành viên C
2. Khởi tạo mã QR R C
3. Check-in tự động R R C

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

Hệ thống sử dụng cơ sở dữ liệu quan hệ MySQL gồm 2 bảng dữ liệu chính:

Bảng User (Lưu trữ hồ sơ thành viên)

STT Tên trường Kiểu dữ liệu Ghi chú
1 id int Khóa chính (Mã thành viên)
2 hoten varchar Họ và tên thành viên
3 sdt char Số điện thoại
4 email varchar Địa chỉ email
5 maqr varchar Tên tệp hoặc đường dẫn mã QR

Bảng DichVu (Ghi nhận thông tin nhật ký check-in)

STT Tên trường Kiểu dữ liệu Ghi chú
1 dichvu_id int Khóa chính (Mã dịch vụ check-in)
2 user_email varchar Email của thành viên thực hiện check-in
3 user_id int Khóa ngoại (Liên kết tới trường id bảng User)
4 ngaysudung timestamp Thời gian hệ thống ghi nhận check-in

Hiện thực kỹ thuật và môi trường thử nghiệm

  • Tích hợp thư viện sinh mã: Chương trình liên kết với thư viện qrlib.php (PHP QR Code). Khi quản trị viên tạo mới thành viên, hệ thống xác định đường dẫn lưu trữ tệp ảnh tạm thời qua biến $PNG_WEB_DIR = 'temp/';. Chuỗi mã hóa đầu vào $codeContents được gán trực tiếp bằng địa chỉ email của thành viên. Tên tệp ảnh được đặt theo mã id thành viên với đuôi .png. Cấu hình tạo mã sử dụng cấp độ sửa lỗi Reed-Solomon mức L ($errorCorretionLevel = 'L'), kích cỡ ma trận điểm ảnh $matrixPointSize = 4. Thao tác sinh mã được thực thi thông qua câu lệnh:
QRcode::png($codeContents, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
  • Thông số môi trường thử nghiệm:
    • Thiết bị phần cứng: Máy tính xách tay Asus X550LD, bộ vi xử lý Intel Core i5, bộ nhớ trong RAM 8GB.
    • Hệ điều hành: Microsoft Windows 10 phiên bản 64-bit.
    • Các phân hệ màn hình giao diện đã hoàn thiện: Trang chủ, Quản lý thành viên, Danh sách thành viên, Giao diện sửa thành viên, Giao diện thêm thành viên và Giao diện chức năng quét check-in.

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

CHƯƠNG 1: QRCODE VÀ TÌM HIỂU VỀ LẬP TRÌNH WEB TRÊN PHP/SQL

Chương này cung cấp toàn bộ nền tảng lý thuyết về công nghệ mã vạch 2D và kỹ thuật phát triển ứng dụng web:

  1. Tổng quan về mã QR: Giới thiệu khái niệm mã phản hồi nhanh, so sánh cấu trúc lưu trữ giữa mã vạch 1D truyền thống và mã QR 2D. Phân biệt rõ hai trạng thái hoạt động: QR code động (chuyển hướng qua máy chủ, cho phép chỉnh sửa dữ liệu hiển thị phía sau liên kết) và QR code tĩnh (chứa trực tiếp nội dung văn bản hoặc liên kết cố định, không thể thay đổi sau khi tạo).
  2. Thuật toán chi tiết sinh mã QR: Tác giả trình bày tường minh các bước tính toán toán học để mã hóa chuỗi ký tự mẫu "HELLO WORLD" ở phiên bản 1 (ma trận $21 \times 21$), mức sửa lỗi Q (độ dài yêu cầu 104 bit):
    • Bước 1 (Bộ chỉ chế độ): Xác định chế độ dữ liệu chuỗi ký tự (Alphanumeric), sử dụng chuỗi 4-bit 0010.
    • Bước 2 (Mã hóa độ dài dữ liệu): Đếm chuỗi gồm 11 ký tự (tính cả khoảng trắng), chuyển 11 sang nhị phân 9-bit của phiên bản 1 thu được 000001011. Ghép với bộ chỉ chế độ thành chuỗi 0010000001011.
    • Bước 3 (Mã hóa dữ liệu): Tách chuỗi thành từng cặp (HE, LL, O , WO, RL, D). Lấy giá trị mã ASCII của ký tự thứ nhất nhân với 45 rồi cộng giá trị mã ASCII của ký tự thứ hai, chuyển thành chuỗi nhị phân 11-bit. Ký tự lẻ cuối cùng (D) chuyển thành chuỗi nhị phân 6-bit.
    • Bước 4 (Hoàn thành các bit): Chuỗi thu được có độ dài 59 bit, tiến hành bổ sung 4 bit 0000 vào cuối.
    • Bước 5 (Phân chia khối 8-bit): Tách chuỗi thành các nhóm 8-bit và thêm 2 bit 00 vào cuối nhóm chưa đủ.
    • Bước 6 (Bổ sung từ mã đệm): Chuỗi mới đạt 10 nhóm byte, trong khi phiên bản 1 mức Q cần 13 byte dữ liệu. Tiến hành chèn luân phiên 3 byte đệm đặc biệt gồm 11101100, 00010001 và 11101100.
  3. Thuật toán sinh mã sửa lỗi Reed-Solomon: Chuyển 13 khối dữ liệu nhị phân thành 13 hệ số thập phân ($32, 91, 11, 120, 209, 114, 220, 77, 67, 64, 236, 17, 236$) để thiết lập đa thức thông điệp bậc 25: $$32x^{25} + 91x^{24} + 11x^{23} + \dots + 17x^{14} + 236x^{13}$$ Sử dụng trường Galois $GF(256)$ để thiết lập đa thức bộ tạo bậc $t=12$ gồm 13 số hạng. Thực hiện phép chia đa thức để tìm phần dư, thu được 13 mã sửa lỗi tương ứng: $168, 72, 22, 82, 217, 54, 156, 0, 46, 15, 180, 122, 16$. Nối chuỗi mã sửa lỗi vào sau chuỗi dữ liệu gốc.
  4. Cấu trúc ma trận và lựa chọn mặt nạ: Phân tích 8 mẫu mặt nạ chuẩn để triệt tiêu các đặc điểm gây khó khăn cho đầu đọc; áp dụng mẫu mặt nạ số 0 cho ví dụ mẫu. Bố trí dải thông tin loại gồm 15-bit 011010101011111 xung quanh các mẫu nhận diện vị trí (Finder patterns) và bổ sung các bit dữ liệu chạy zíc zắc từ dưới lên trên qua các cặp cột.
  5. Tổng quan công nghệ web: Phân tích giao thức WWW, cấu trúc thẻ HTML cơ bản; kỹ thuật lập trình PHP (cú pháp, biến, hằng, hàm, Cookie, Session, phương thức GET/POST) và hệ quản trị CSDL MySQL (các kiểu dữ liệu, các truy vấn CRUD, nhóm hàm tổng hợp AVG, MIN, MAX, COUNT, SUM, xử lý chuỗi và thời gian).

CHƯƠNG 2 : PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Chương 2 mô hình hóa toàn bộ quy trình nghiệp vụ của bài toán điểm danh tự động:

  1. Phát biểu bài toán: Xác định yêu cầu tin học hóa việc quản lý ra vào; người quản trị nhập thông tin người dùng (họ tên, email, số điện thoại) để hệ thống tạo mã QR đại diện; người dùng dùng mã để check-in và hệ thống lưu trữ thời gian thực hiện.
  2. Mô hình hóa chức năng và luồng dữ liệu:
    • Xây dựng Biểu đồ ngữ cảnh hệ thống thể hiện mối tương tác 2 chiều giữa Quản trị viên, Thành viên và Phần mềm check-in.
    • Phân rã chức năng hệ thống thành 3 mô-đun chính: Khởi tạo thông tin, Khởi tạo mã QR và Check-in tự động.
    • Thiết lập Ma trận thực thể chức năng (CRUD) kiểm soát các hành vi ghi và đọc dữ liệu giữa 3 chức năng và 3 danh sách hồ sơ.
    • Xây dựng Biểu đồ luồng dữ liệu (DFD) chi tiết cho từng tiến trình nghiệp vụ: thêm thành viên, sinh mã QR và ghi nhận dữ liệu check-in.
  3. Thiết kế cơ sở dữ liệu: Xây dựng mô hình thực thể liên kết (ERD) xác định mối quan hệ 1-1 giữa Thành viên và Mã QR, quan hệ 1-nhiều (1-N) giữa Thành viên và Dịch vụ check-in. Chuyển đổi thành lược đồ CSDL quan hệ gồm 2 bảng User và DichVu với đầy đủ thuộc tính, kiểu dữ liệu, khóa chính và khóa ngoại.

CHƯƠNG 3 : THUẬT TOÁN , ỨNG DỤNG VÀ THỰC NGHIỆM

Chương 3 trình bày việc cài đặt kỹ thuật và kết quả thử nghiệm phần mềm:

  1. Tổng kết thuật toán tạo chuỗi nhị phân: Khái quát hóa lại 6 bước mã hóa nhị phân chuẩn từ dữ liệu thô sang các khối dữ liệu hoàn chỉnh.
  2. Tích hợp ứng dụng thực nghiệm: Trình bày chi tiết đoạn mã nguồn PHP kết nối CSDL và gọi thư viện qrlib.php. Thiết lập các tham số: lưu trữ ảnh tại thư mục temp/, mã hóa nội dung từ biến $email, xuất tệp ảnh định dạng .png theo mã id thành viên, áp dụng cấp độ sửa lỗi Reed-Solomon L (7%) và kích thước điểm ma trận bằng 4.
  3. Môi trường và kết quả giao diện: Công bố thông số phần cứng thử nghiệm (Laptop Asus X550LD, Core i5, RAM 8GB, Windows 10 64-bit). Trình bày kết quả xây dựng 6 giao diện chức năng của hệ thống gồm: Trang chủ, Quản lý thành viên, Danh sách thành viên, Sửa thành viên, Thêm thành viên và Giao diện thực thi chức năng check-in.

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

Kết quả chính đạt được của đồ án:

  • Hệ thống hóa đầy đủ và chính xác cơ sở toán học của thuật toán sinh mã QR, bao gồm quy trình chuyển đổi chế độ dữ liệu, mã hóa cặp ký tự, tính toán đa thức trường Galois $GF(256)$, sinh mã sửa lỗi Reed-Solomon và nguyên tắc áp dụng mặt nạ bit.
  • Xây dựng thành công ứng dụng web check-in tự động hoàn chỉnh trên nền tảng PHP và MySQL, tích hợp hoạt động ổn định với thư viện qrlib.php.
  • Thiết kế cơ sở dữ liệu tinh gọn với 2 bảng quan hệ (User và DichVu), quản lý được thông tin thành viên và tự động ghi nhận chính xác mốc thời gian check-in thông qua trường ngaysudung kiểu timestamp.
  • Hoàn thiện hệ thống giao diện trực quan gồm 6 màn hình chức năng, phục vụ trọn vẹn các tác vụ quản trị hồ sơ và thực thi quét mã điểm danh.

Giải pháp và đóng góp của tác giả:

  • Đề xuất giải pháp sử dụng chính địa chỉ email của từng cá nhân làm dữ liệu gốc để sinh mã QR, đảm bảo tính định danh duy nhất và thuận tiện trong quản lý.
  • Đóng góp so với các nghiên cứu trước: Tác giả đã cụ thể hóa các lý thuyết phức tạp của chuẩn mã ma trận 2D thành tài liệu kỹ thuật có ví dụ số học minh họa từng bước, đồng thời liên kết trực tiếp thuật toán lý thuyết vào một ứng dụng web thực tế có chi phí triển khai thấp, phù hợp ứng dụng cho công tác điểm danh tại các đơn vị giáo dục và doanh nghiệp.

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

Hạn chế của đồ án:

  • Hệ thống mới chỉ được cài đặt và kiểm thử trong môi trường máy chủ cục bộ (localhost) trên một thiết bị máy tính cá nhân (Laptop Asus X550LD), chưa được triển khai thử nghiệm trên môi trường mạng diện rộng hoặc máy chủ Internet thực tế.
  • Mã QR được sử dụng trong chương trình là mã QR tĩnh được tạo cố định theo chuỗi ký tự email, chưa áp dụng cơ chế mã QR động có thời hạn (như mã OTP hoặc token thay đổi theo thời gian thực) để ngăn chặn hành vi chia sẻ ảnh mã điểm danh hộ.
  • Quy mô thử nghiệm dừng lại ở việc kiểm tra tính đúng đắn của các luồng nghiệp vụ trên tập dữ liệu nhỏ; đồ án chưa thực hiện các bài đo tải, đo độ trễ khi có số lượng lớn người dùng thực hiện quét mã check-in đồng thời.

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

  • Triển khai và tối ưu hóa hệ thống trên môi trường máy chủ web trực tuyến (sử dụng Apache hoặc IIS trên hạ tầng Internet công cộng).
  • Mở rộng ứng dụng di động cho phép sử dụng trực tiếp camera của điện thoại thông minh để quét mã QR check-in, thay vì phụ thuộc vào các thiết bị đọc chuyên dụng kết nối máy tính.

Giá trị tham khảo

Đồ án là tài liệu tham khảo có giá trị học thuật và ứng dụng thực tiễn:

  • Đối tượng thụ hưởng: Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang thực hiện đồ án tốt nghiệp, bài tập lớn hoặc các đề tài nghiên cứu liên quan đến phát triển ứng dụng web trên nền tảng PHP/MySQL.
  • Nội dung giá trị: Chương 1 cung cấp tài liệu chi tiết, hiếm có về các bước tính toán toán học của thuật toán mã hóa QR code và mã sửa lỗi Reed-Solomon trên trường Galois $GF(256)$, rất hữu ích cho người học muốn nghiên cứu sâu về xử lý dữ liệu ma trận. Ngoài ra, Chương 2 là tài liệu mẫu rõ ràng về quy trình phân tích thiết kế hệ thống theo cấu trúc (biểu đồ ngữ cảnh, phân rã chức năng, luồng dữ liệu DFD, mô hình ERD và ma trận CRUD) cho các bài toán quản lý thông tin quy mô vừa và nhỏ.

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

1. Hệ thống sử dụng thông tin nào của thành viên để tạo mã QR phục vụ check-in? Hệ thống sử dụng trực tiếp địa chỉ email của thành viên làm dữ liệu đầu vào (biến $codeContents) để truyền vào hàm sinh mã QR. Tệp ảnh mã vạch sau khi tạo được lưu dưới định dạng .png với tên tệp trùng với mã số định danh (id) của thành viên đó trong cơ sở dữ liệu.

2. Thuật toán mã sửa lỗi của mã QR trong đồ án hoạt động trên trường đại số nào và có mấy cấp độ? Thuật toán sử dụng trường hữu hạn Galois gồm 256 yếu tố ($GF(256)$), trong đó các giá trị giao dịch dao động từ 0 đến 255. Chuẩn mã QR có 4 cấp độ sửa lỗi Reed-Solomon gồm: mức L (phục hồi 7% dữ liệu), mức M (15%), mức Q (25%) và mức H (30%). Trong chương trình thực nghiệm, tác giả thiết lập tham số sửa lỗi ở mức L ($errorCorretionLevel = 'L').

3. Thư viện mã nguồn mở nào được tác giả sử dụng trong mã nguồn PHP để tạo mã QR? Tác giả tích hợp thư viện mã nguồn mở qrlib.php (PHP QR Code) và sử dụng hàm thực thi chính: QRcode::png($codeContents, $filename, $errorCorrectionLevel, $matrixPointSize, 2); để tự động tính toán ma trận và kết xuất ảnh mã QR.

4. Cơ sở dữ liệu của hệ thống check-in gồm những bảng nào và mối quan hệ giữa chúng là gì? Cơ sở dữ liệu gồm 2 bảng trong MySQL: bảng User (lưu trữ thông tin thành viên với khóa chính id) và bảng DichVu (lưu nhật ký check-in với khóa chính dichvu_id). Hai bảng được liên kết với nhau qua khóa ngoại user_id trong bảng DichVu tham chiếu tới khóa chính id của bảng User.

5. Môi trường phần cứng và hệ điều hành cụ thể được dùng để kiểm thử ứng dụng là gì? Hệ thống được thử nghiệm trên thiết bị máy tính xách tay Asus X550LD, trang bị vi xử lý Intel Core i5, bộ nhớ RAM 8GB và vận hành trên hệ điều hành Microsoft Windows 10 64-bit.


Kết luận

Đồ án tốt nghiệp của sinh viên Phạm Văn Hoàng Hà đã giải quyết trọn vẹn mục tiêu nghiên cứu lý thuyết về công nghệ mã vạch hai chiều QR code và phương pháp phát triển ứng dụng web trên nền tảng PHP/MySQL. Tác giả đã làm rõ các bước toán học của thuật toán mã hóa nhị phân, bộ mã sửa lỗi Reed-Solomon trên trường Galois $GF(256)$, đồng thời phân tích thiết kế hệ thống thông tin một cách bài bản. Ứng dụng phần mềm thực nghiệm đã tự động hóa thành công quy trình quản lý hồ sơ, tạo mã QR định danh từ email và ghi nhận dữ liệu check-in thời gian thực vào cơ sở dữ liệu. Kết quả nghiên cứu khẳng định tính khả thi của giải pháp trong việc nâng cao hiệu quả quản lý điểm danh tại các đơn vị đào tạo và doanh nghiệp.