Bối cảnh và vấn đề nghiên cứu
Hoạt động xây dựng đội ngũ (team building) là một trong những loại hình sinh hoạt tập thể và du lịch thu hút sự tham gia của nhiều cơ quan, đoàn thể và doanh nghiệp nhằm nâng cao tinh thần đoàn kết, trách nhiệm và tính gắn bó của các cá nhân. Bản chất của team building là sự kết hợp các bài tập, trò chơi mô phỏng tình huống thực tiễn để rèn luyện kỹ năng giao tiếp, khả năng làm việc nhóm và giải quyết mâu thuẫn nội bộ. Trong các loại hình team building phổ biến (hội thao, lửa trại, đêm gala, gameshow, sinh hoạt trong nhà, hoạt động ngoài trời và trò chơi lớn), loại hình trò chơi lớn – hay còn gọi là trò chơi chạy trạm – là mô hình có quy mô tổ chức phức tạp nhất và nhu cầu áp dụng thực tế rất cao.
Trò chơi chạy trạm thường được tổ chức tại các không gian rộng lớn như khu du lịch, rừng núi, bờ biển hoặc hải đảo, kết hợp địa hình tự nhiên với cốt truyện, hệ thống mật thư và các trạm thử thách liên hoàn. Tuy nhiên, việc vận hành trò chơi chạy trạm truyền thống bộc lộ nhiều hạn chế về mặt quản lý: đòi hỏi số lượng lớn nhân sự trực trạm để phát mật thư, chấm điểm và giám sát an toàn; chi phí tổ chức tốn kém; việc theo dõi tiến độ và vị trí của các đội chơi phân tán gặp nhiều khó khăn. Do đó, việc ứng dụng công nghệ thông tin để số hóa quy trình tổ chức, đồng thời tích hợp công nghệ thực tế tăng cường (Augmented Reality - AR) nhằm làm mới trải nghiệm giải mật thư và vượt trạm là một nhu cầu thực tiễn cấp thiết.
Mục tiêu nghiên cứu của đề tài được tác giả xác định cụ thể gồm 4 nhiệm vụ:
- Tìm hiểu về các tính năng và cách sử dụng nền tảng Vuforia.
- Xây dựng một ứng dụng web (web app) hỗ trợ trò chơi chạy trạm trên nền tảng ứng dụng web lũy tiến (Progressive Web Apps - PWA) sử dụng công nghệ MEAN Stack kết hợp công nghệ nhận diện của Vuforia.
- Trình bày báo cáo khoa học và hợp lý về toàn bộ nội dung trong đề tài khóa luận tốt nghiệp.
- Đảm bảo khả năng tiếp tục phát triển ứng dụng, hoàn thiện các chức năng để nâng cấp và đưa ra thị trường sử dụng thực tế.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình nghiệp vụ tổ chức và điều hành trò chơi chạy trạm; nền tảng thực tế tăng cường Vuforia Engine (đặc biệt là Vuforia Web Services); kiến trúc phát triển ứng dụng MEAN Stack kết hợp hệ quản trị nội dung không đầu (Headless CMS) Strapi và công nghệ PWA.
- Phạm vi không gian: Nghiên cứu và triển khai ứng dụng phần mềm 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, ngành Công nghệ thông tin), hướng tới các không gian tổ chức trò chơi dã ngoại ngoài trời.
- Phạm vi thời gian: Đề tài được giao thực hiện từ ngày 25/02/2020 và hoàn thành nộp báo cáo vào ngày 01/07/2020.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và nền tảng công nghệ được tác giả sử dụng trong đề tài bao gồm:
- Công nghệ thực tế tăng cường và Vuforia Engine: Thực tế tăng cường (AR) là công nghệ mô phỏng hình ảnh ảo vào không gian thực qua thiết bị điện tử. Vuforia Engine (do Qualcomm phát triển ban đầu) sử dụng công nghệ thị giác máy tính để nhận dạng và theo dõi hình ảnh phẳng hoặc vật thể ba chiều (3D) theo thời gian thực. Các tính năng chính của Vuforia bao gồm: Image Targets, VuMark, Multi Targets, Cylinder Targets, Text Recognition (hỗ trợ 100.000 từ tiếng Anh thông dụng), Object Recognition và Smart Terrain (chuyên biệt cho Unity). Trong khuôn khổ đề tài, tác giả khai thác dịch vụ đám mây Vuforia Web Services để quản lý cơ sở dữ liệu hình ảnh mục tiêu và thực hiện truy vấn nhận diện qua giao diện lập trình ứng dụng (API).
- Ngăn xếp công nghệ MEAN Stack: Mô hình phát triển ứng dụng dựa hoàn toàn trên ngôn ngữ JavaScript và định dạng dữ liệu JSON, bao gồm:
- MongoDB: Hệ quản trị cơ sở dữ liệu phi quan hệ NoSQL hướng tài liệu (document-oriented), lưu trữ dữ liệu dưới dạng BSON, cơ chế ghi đệm trên bộ nhớ RAM giúp tối ưu hóa tốc độ đọc và ghi.
- Express.js: Khung phát triển ứng dụng web trên nền Node.js, cung cấp hệ thống định tuyến (routing), quản lý middleware và xây dựng các dịch vụ RESTful API.
- Angular: Khung giao diện do Google phát triển để xây dựng ứng dụng trang đơn (Single Page Application - SPA) bằng ngôn ngữ TypeScript, hỗ trợ liên kết dữ liệu và các thành phần giao diện động.
- Node.js: Môi trường thực thi JavaScript xây dựng trên nền tảng V8 JavaScript Engine của trình duyệt Google Chrome, hoạt động theo cơ chế đơn luồng điều khiển bởi sự kiện (event-driven) và mô hình vào/ra không chặn (non-blocking I/O).
- Hệ quản trị nội dung Strapi (Headless CMS): Mã nguồn mở viết bằng Node.js, đóng vai trò máy chủ phía sau (backend) của hệ thống. Strapi tự động tạo các điểm cuối REST API từ mô hình dữ liệu, cung cấp các mô-đun quản trị trực quan: Content-Type Builder (xây dựng các tập hợp dữ liệu), API Endpoints, Media Library (quản lý tệp đa phương tiện) và Roles & Permissions (phân quyền người dùng).
- Khái niệm ứng dụng web lũy tiến (Progressive Web Apps - PWA): Tiêu chuẩn kỹ thuật do Google giới thiệu năm 2015, kết hợp ưu điểm của ứng dụng web và ứng dụng di động gốc (native app). Các đặc trưng kỹ thuật cơ bản gồm: thích ứng màn hình (Responsive), trải nghiệm như ứng dụng gốc (App-like feel), hỗ trợ hoạt động ngoại tuyến (Offline support), cơ chế gửi thông báo đẩy (Re-engaging), khả năng tối ưu hóa tìm kiếm (Discoverable), tự động cập nhật khi trực tuyến (Fresh), bảo mật qua giao thức HTTPS (Safe), tính tương thích lũy tiến (Progressive) và khả năng chia sẻ liên kết (Linkable).
Phương pháp nghiên cứu và phát triển kỹ thuật:
- Phương pháp phân tích và tổng hợp lý thuyết: Khảo sát cấu trúc vận hành của trò chơi chạy trạm với ba hình thức di chuyển cơ bản (chạy xoay vòng, chạy cuốn chiếu và chạy phối hợp); nghiên cứu tài liệu kỹ thuật của Vuforia Developer Portal và các thư viện trong hệ sinh thái Node.js.
- Phương pháp phân tích và thiết kế hệ thống hướng đối tượng: Xây dựng sơ đồ phân rã chức năng, xác định các tác nhân (Actor), xây dựng danh mục ca sử dụng (Use-case) và mô hình hóa cấu trúc dữ liệu NoSQL.
- Phương pháp thực nghiệm phần mềm: Cài đặt và tích hợp gói thư viện
vuforia-api từ hệ thống quản lý gói npm; thiết lập khóa cấp phép nhà phát triển (Development License Key) và kho dữ liệu đám mây (Cloud Database) trên cổng Vuforia; xây dựng các giao diện người dùng và kiểm thử tích hợp hệ thống.
Nguồn dữ liệu:
- Dữ liệu cấu hình dự án, danh sách trạm, dữ liệu mật thư, thông tin đội chơi và tài khoản người dùng được lưu trữ cục bộ trong cơ sở dữ liệu MongoDB.
- Dữ liệu hình ảnh mục tiêu (target) phục vụ nhận diện AR được lưu trữ và lập chỉ mục trích xuất đặc trưng trên dịch vụ đám mây Vuforia Cloud Database.
Thiết kế và triển khai
Hệ thống hỗ trợ trò chơi chạy trạm được thiết kế theo mô hình kiến trúc phân tán gồm 5 thành phần chính, tách biệt rõ ràng giữa giao diện người dùng, máy chủ quản lý dữ liệu nghiệp vụ và máy chủ trung gian xử lý nhận diện hình ảnh.
| STT |
Tên thành phần |
Ý nghĩa / Ghi chú |
| 1 |
Front-end Angular |
Giao diện phía người dùng xây dựng theo chuẩn PWA |
| 2 |
Back-end Strapi |
Máy chủ cung cấp API truy xuất cơ sở dữ liệu nghiệp vụ của hệ thống |
| 3 |
Database MongoDB |
Hệ thống cơ sở dữ liệu lưu trữ các đối tượng thông tin |
| 4 |
Back-end Express.js |
Máy chủ trung gian cung cấp API giao tiếp với kho dữ liệu đám mây Vuforia |
| 5 |
Database Vuforia |
Kho cơ sở dữ liệu đám mây lưu trữ dữ liệu mục tiêu nhận diện hình ảnh |
Cơ chế tích hợp công nghệ Vuforia:
Trong đề tài, tác giả không nhúng trực tiếp SDK vào mã nguồn giao diện mà sử dụng gói thư viện vuforia-api trên máy chủ Express.js để khai thác 3 API chính từ Vuforia Web Services:
- Tạo mục tiêu mới (Create target): Tải hình ảnh đặc trưng của trạm từ phía quản trị lên hệ thống.
- Thêm mục tiêu vào cơ sở dữ liệu đám mây (Add target to cloud database): Đồng bộ dữ liệu hình ảnh vào Vuforia Cloud Database đã cấu hình qua License Key.
- Truy vấn nhận diện hình ảnh (Image recognition query): Tiếp nhận hình ảnh do camera của người chơi chụp tại trạm, gửi yêu cầu đối soát lên máy chủ Vuforia để xác thực việc hoàn thành thử thách.
Thiết kế cơ sở dữ liệu MongoDB (quản lý qua Strapi):
Cấu trúc dữ liệu của hệ thống được tổ chức thành 7 tập hợp (collection) phục vụ đầy đủ các chức năng vận hành:
Projects: Lưu trữ thông tin dự án trò chơi (chủ đề, vị trí, thời gian tổ chức, trạng thái bắt đầu hoặc kết thúc).
Stations: Lưu trữ danh sách các trạm thử thách, tọa độ vị trí, mật thư dẫn vào trạm, câu hỏi thử thách và định danh ảnh mục tiêu Vuforia.
Teams: Quản lý danh sách các đội tham gia trò chơi trong từng dự án.
Teamlogs: Ghi nhận nhật ký di chuyển, trạng thái giải mật thư, thời gian hoàn thành từng trạm của từng đội.
Teamdetails: Quản lý danh sách chi tiết các thành viên thuộc mỗi đội.
Users-permissions_user: Lưu trữ thông tin tài khoản người dùng, mật khẩu đã mã hóa và trạng thái kích hoạt tài khoản.
Users-permissions_role: Định nghĩa các vai trò và quyền hạn tương ứng của người dùng trong hệ thống.
Phân rã chức năng và phân quyền hệ thống:
Hệ thống xác định 3 nhóm tác nhân chính tham gia tương tác:
- Người quản trị (Admin): Thực hiện các chức năng đăng nhập, đổi mật khẩu, cập nhật hồ sơ cá nhân, tìm kiếm tài khoản người dùng, xem thông tin tài khoản và thực hiện thao tác khóa hoặc mở khóa tài khoản người dùng.
- Người tổ chức / Người tạo trò chơi (Creator): Quản lý vòng đời dự án (thêm, sửa, xóa dự án); quản lý hệ thống trạm (thêm, sửa, xóa thông tin trạm, mật thư, thử thách); quản lý các đội chơi và phân bổ thành viên; thiết lập lộ trình di chuyển cho từng đội (linh hoạt theo kiểu xoay vòng hoặc cuốn chiếu); kích hoạt bắt đầu hoặc dừng dự án; theo dõi lộ trình di chuyển và giám sát vị trí địa lý của từng thành viên trong đội trên bản đồ.
- Người tham gia trò chơi (Player): Đăng ký, đăng nhập tài khoản; xem danh sách dự án tham gia; thực hiện chu trình vượt trạm trực tiếp trên ứng dụng PWA; theo dõi lộ trình đã hoàn thành của đội mình; xem thông tin danh sách các thành viên trong đội.
Chu trình vận hành trạm của người chơi trên ứng dụng:
Chu trình tham gia trò chơi chính của người chơi được chuẩn hóa qua các bước:
Nhận mật thư số trên ứng dụng -> Giải mật thư để xác định vị trí trạm -> Di chuyển đến địa điểm trạm -> Quét mã định danh tại trạm -> Nhập lời giải mật thư để mở khóa trạm -> Nhận nội dung thử thách -> Thực hiện thử thách và dùng camera quét hình ảnh/vật thể quy định qua API Vuforia -> Hệ thống xác nhận hoàn thành trạm -> Nhận mật thư của trạm tiếp theo -> Lặp lại quy trình cho đến khi hoàn tất trạm cuối cùng và kết thúc trò chơi.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 tập trung phân tích bối cảnh xã hội và nhu cầu ứng dụng công nghệ thông tin vào hoạt động team building. Tác giả phân loại 7 hình thức team building chính gồm: hội thao, lửa trại, đêm gala, gameshow, trong nhà, ngoài trời và trò chơi lớn (trò chơi chạy trạm). Đồ án chỉ rõ trò chơi chạy trạm là loại hình có quy mô lớn nhất, đòi hỏi sự phối hợp liên phòng ban và giúp cải thiện tính gắn kết nội bộ rõ rệt nhất. Tác giả phân tích cơ chế vận hành của 3 phương thức chạy trạm thực tế:
- Chạy trạm xoay vòng: Các đội xuất phát từ trạm trung tâm, tỏa ra các trạm xung quanh và di chuyển cùng chiều (ví dụ 3 đội chạy qua 3 trạm theo các thứ tự lệch nhau: 1-2-3, 2-3-1, 3-1-2).
- Chạy trạm cuốn chiếu: Các đội lần lượt di chuyển tuần tự qua các trạm từ trạm xuất phát đến trạm kết thúc.
- Chạy trạm phối hợp: Kết hợp linh hoạt giữa phương thức xoay vòng và cuốn chiếu tùy theo địa hình và cốt truyện.
Từ việc chỉ ra các bất cập trong khâu điều hành thủ công (tốn kém nhân sự quản lý, khó khăn trong việc theo dõi vị trí và tính điểm), tác giả nêu bật tính cấp thiết của việc xây dựng ứng dụng di động hỗ trợ chạy trạm tích hợp Vuforia, đồng thời xác lập 4 mục tiêu nghiên cứu và bố cục tổng thể của đồ án.
Chương 2: Cơ sở lý thuyết
Chương này cung cấp bức tranh toàn diện về các nền tảng kỹ thuật được lựa chọn. Tác giả trình bày chi tiết về công nghệ thực tế tăng cường, lịch sử phát triển của Vuforia Engine và phân tích sâu các tính năng kỹ thuật: Image Targets, VuMark, Multi Targets, Cylinder Targets, Text Recognition, Object Recognition và Smart Terrain. Đi kèm với đó là các công cụ hỗ trợ nhà phát triển: Vuforia Object Scanner, Target Manager, Calibration Assistant, Licence Manager và Web Services. Tác giả thuyết minh chi tiết các bước thiết lập tài khoản lập trình viên, tạo khóa bản quyền phát triển, khởi tạo cơ sở dữ liệu đám mây trên cổng Vuforia, cơ chế trích xuất điểm ảnh đặc trưng (Features) và danh mục các API của gói vuforia-api trên Node.js.
Tiếp đó, chương 2 phân tích kiến trúc làm việc của MEAN Stack theo mô hình MVC khép kín bằng ngôn ngữ JavaScript; phân tích cơ chế hoạt động của Node.js với mô hình hướng sự kiện và vòng lặp sự kiện (event loop); cấu trúc thành phần của Angular cùng ngôn ngữ TypeScript; ưu thế lưu trữ linh hoạt dạng document của MongoDB so với hệ quản trị cơ sở dữ liệu quan hệ truyền thống; và vai trò định tuyến của Express.js. Chương này cũng phân tích cấu trúc của Headless CMS Strapi cùng các tính năng quản trị dữ liệu, và kết thúc bằng việc phân tích 10 đặc tính kỹ thuật cùng lợi ích trải nghiệm của Progressive Web Apps (PWA) trên thiết bị di động.
Chương 3: Phân tích và thiết kế hệ thống
Chương 3 là phần trọng tâm kỹ thuật của đồ án, bắt đầu bằng việc đặc tả yêu cầu hệ thống cho 3 nhóm đối tượng (người quản trị, người tổ chức và người chơi). Tác giả chi tiết hóa kiến trúc hệ thống 5 thành phần thông qua sơ đồ kiến trúc tổng quan và bảng diễn giải thành phần. Tiếp theo, tác giả xây dựng sơ đồ phân rã chức năng và mô tả chi tiết 33 ca sử dụng (Use-case) cụ thể, đi kèm bảng phân tích thuộc tính chi tiết cho từng tác vụ: từ các chức năng quản trị tài khoản, chức năng tạo lập và quản lý dự án, trạm, đội chơi, thiết lập lộ trình trạm, khởi động/dừng trò chơi, giám sát vị trí thành viên đến quy trình giải mật thư và xác thực trạm.
Về mặt dữ liệu, chương này trình bày lược đồ cơ sở dữ liệu và bảng thuộc tính chi tiết của 7 collection trong MongoDB (Projects, Stations, Teams, Teamlogs, Teamdetails, Users-permissions_user, Users-permissions_role). Phần thiết kế giao diện minh họa chi tiết 38 màn hình giao diện thực tế của ứng dụng PWA, bao gồm giao diện trang chủ, các màn hình đăng ký/đăng nhập, dashboard quản trị người dùng, giao diện quản lý dự án trò chơi, các form tạo và cấu hình trạm/đội chơi, giao diện giám sát lộ trình của ban tổ chức, cùng các màn hình thao tác trực tiếp của người chơi (giao diện nhận mật thư, quét mã vào trạm, nhập mật khẩu trạm, màn hình nhận diện thử thách Vuforia và màn hình tổng kết khi hoàn thành trò chơi).
Chương 4: Kết luận và hướng phát triển
Chương 4 tổng kết các kết quả đạt được sau quá trình nghiên cứu và thực nghiệm: xây dựng thành công ứng dụng web app hoàn chỉnh trên nền tảng PWA đáp ứng các yêu cầu quản lý và vận hành trò chơi chạy trạm, tích hợp được công nghệ nhận diện hình ảnh của Vuforia qua môi trường Node.js. Đồng thời, tác giả trình bày các vấn đề kỹ thuật phát sinh trong quá trình xây dựng hệ thống và đề xuất các định hướng phát triển nhằm hoàn thiện sản phẩm phục vụ thương mại hóa.
Kết quả và đóng góp
Kết quả thực nghiệm chính của đồ án:
- Xây dựng hoàn chỉnh một ứng dụng web lũy tiến (PWA) đa nền tảng, có khả năng hoạt động trên trình duyệt của máy tính và thiết bị di động với trải nghiệm tương đương ứng dụng gốc.
- Hiện thực hóa hệ thống quản lý phân quyền gồm 3 nhóm tác nhân với 33 kịch bản ca sử dụng chi tiết và 38 màn hình giao diện người dùng hoàn chỉnh.
- Thiết lập thành công kiến trúc backend kép: Strapi CMS kết nối cơ sở dữ liệu MongoDB phục vụ quản lý 7 collection dữ liệu nghiệp vụ; Express.js kết nối Vuforia Cloud Database qua gói thư viện
vuforia-api.
- Tích hợp thành công 3 API cốt lõi của Vuforia Web Services phục vụ quy trình tạo mục tiêu, đồng bộ kho đám mây và thực hiện truy vấn nhận diện hình ảnh mục tiêu tại trạm thử thách.
- Cung cấp tính năng giám sát lộ trình trực quan và theo dõi vị trí của các thành viên trong từng đội chơi theo thời gian thực dành cho người tổ chức.
Giải pháp và đóng góp của tác giả:
- Đề xuất giải pháp số hóa toàn diện quy trình tổ chức trò chơi chạy trạm team building, thay thế phương thức quản lý mật thư giấy và nhân sự trực trạm truyền thống bằng hệ thống mật thư điện tử và xác thực tự động qua camera.
- Ứng dụng công nghệ thực tế tăng cường (AR) thông qua Vuforia Web Services vào hoạt động dã ngoại thực tế, giúp tăng tính sinh động, kích thích tư duy giải quyết vấn đề và tinh thần làm việc nhóm của người tham gia.
- Giúp các đơn vị tổ chức sự kiện và doanh nghiệp cắt giảm đáng kể số lượng nhân sự điều hành trạm, giảm chi phí tổ chức và nâng cao tính chính xác trong công tác tính điểm và giám sát lộ trình.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài:
- Do sử dụng phiên bản phát triển miễn phí của Vuforia Web Services, hệ thống bị giới hạn về dung lượng lưu trữ số lượng target trên Cloud Database cũng như tần suất gửi yêu cầu nhận diện API.
- Độ chính xác của tính năng nhận diện hình ảnh phụ thuộc nhiều vào chất lượng camera trên thiết bị di động của người chơi, điều kiện ánh sáng thực tế ngoài trời tại các địa điểm trạm và mức độ phức tạp của các điểm đặc trưng trên hình ảnh mục tiêu.
- Cơ chế PWA và Vuforia Web Services yêu cầu thiết bị phải duy trì kết nối mạng Internet liên tục, điều này tạo ra rào cản nhất định khi tổ chức trò chơi tại các địa hình rừng núi hoặc hải đảo có sóng viễn thông không ổn định.
Hướng phát triển tiếp theo:
- Khắc phục các tồn tại kỹ thuật phát sinh trong quá trình thử nghiệm, tiếp tục tối ưu hóa hiệu năng mã nguồn và giao diện người dùng.
- Hoàn thiện các chức năng nâng cao để chuẩn bị cho việc đóng gói, triển khai và thương mại hóa sản phẩm trên thị trường thực tế.
- Mở rộng việc khai thác các tính năng AR nâng cấp của Vuforia như Object Recognition (nhận diện vật thể 3D thực tế) hoặc nghiên cứu tích hợp Unity để khai thác tính năng tái tạo môi trường Smart Terrain.
- Tối ưu hóa cơ chế lưu trữ đệm ngoại tuyến (Offline Caching) của PWA để cho phép người chơi thực hiện một số thử thách ngay cả khi mất kết nối mạng tạm thời.
Giá trị tham khảo
Tài liệu khóa luận có giá trị tham khảo thiết thực cho các nhóm đối tượng:
- Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Cung cấp tài liệu tham khảo chi tiết về quy trình xây dựng ứng dụng web hiện đại sử dụng ngăn xếp MEAN Stack kết hợp Headless CMS Strapi; phương pháp phát triển ứng dụng di động theo chuẩn PWA; và kỹ thuật tích hợp dịch vụ nhận diện thực tế tăng cường của Vuforia vào môi trường Node.js.
- Các đơn vị tổ chức sự kiện, du lịch và nhà phát triển ứng dụng trò chơi thực tế: Tham khảo mô hình phân tích nghiệp vụ trò chơi team building, giải pháp phân chia lộ trình (xoay vòng, cuốn chiếu) và phương pháp giám sát vị trí đội nhóm trực tuyến.
- Các phần nội dung đáng tham khảo nhất trong văn bản: Bảng kiến trúc hệ thống 5 thành phần (Bảng 3.1); hệ thống 33 use-case chi tiết và thiết kế 7 collection trong MongoDB tại Chương 3; quy trình thiết lập và cấu hình dịch vụ đám mây Vuforia Web Services tại Chương 2.
Câu hỏi thường gặp
1. Đồ án khai thác những API nào của Vuforia Web Services và sử dụng thư viện nào trong môi trường Node.js?
Tác giả sử dụng gói thư viện vuforia-api từ npm trong môi trường Node.js (máy chủ Express.js) và khai thác 3 API chính: API tạo mục tiêu mới (tải ảnh trạm lên), API thêm mục tiêu vào cơ sở dữ liệu đám mây (Cloud Database) của Vuforia, và API gửi truy vấn nhận diện hình ảnh để xác thực khi người chơi chụp ảnh vật thể tại trạm.
2. Kiến trúc tổng thể của hệ thống gồm những thành phần nào và vai trò của từng thành phần là gì?
Hệ thống được thiết kế gồm 5 thành phần chính:
- Front-end Angular: Giao diện web app tương tác cho người dùng theo chuẩn PWA.
- Back-end Strapi: Máy chủ cung cấp REST API truy xuất và xử lý dữ liệu nghiệp vụ của hệ thống.
- Database MongoDB: Hệ cơ sở dữ liệu NoSQL lưu trữ thông tin hệ thống.
- Back-end Express.js: Máy chủ trung gian cung cấp API giao tiếp trực tiếp với cơ sở dữ liệu đám mây Vuforia.
- Database Vuforia: Cơ sở dữ liệu đám mây của Vuforia lưu trữ và xử lý các target hình ảnh nhận diện.
3. Ba phương thức di chuyển trong trò chơi chạy trạm được phân tích trong đồ án là gì?
Ba phương thức gồm:
- Chạy trạm xoay vòng: Các đội từ một trạm trung tâm tỏa đi các hướng, thực hiện thử thách tại trạm rồi di chuyển theo cùng một chiều (ví dụ 3 đội chạy theo thứ tự trạm 1-2-3, 2-3-1, 3-1-2).
- Chạy trạm cuốn chiếu: Các đội lần lượt di chuyển tuần tự từ trạm xuất phát (trạm 1) qua trạm 2, trạm 3 cho đến trạm kết thúc.
- Chạy trạm phối hợp: Kết hợp đan xen giữa phương thức chạy xoay vòng và chạy cuốn chiếu.
4. Cơ sở dữ liệu MongoDB của hệ thống gồm những collection nào và được quản lý bằng công cụ gì?
Cơ sở dữ liệu MongoDB được thiết kế và quản trị trực quan thông qua công cụ Content-Type Builder của Headless CMS Strapi, bao gồm 7 collection chính: Projects (dự án trò chơi), Stations (danh sách trạm), Teams (danh sách đội), Teamlogs (nhật ký qua trạm), Teamdetails (thành viên đội), Users-permissions_user (tài khoản người dùng) và Users-permissions_role (vai trò người dùng).
5. Quy trình vượt qua một trạm thử thách của đội chơi trên ứng dụng diễn ra như thế nào?
Quy trình gồm các bước tuần tự: Đội chơi nhận mật thư số trên ứng dụng -> Giải mật thư để xác định vị trí trạm -> Đến trạm và thực hiện quét mã định danh trạm -> Nhập đáp án mật thư để mở khóa trạm -> Nhận nội dung thử thách -> Dùng camera chụp ảnh/quét vật thể theo yêu cầu để hệ thống nhận diện qua API Vuforia -> Sau khi hoàn thành trạm, hệ thống tự động phát mật thư của trạm kế tiếp cho đến khi hoàn tất trò chơi.
Kết luận
Đồ án tốt nghiệp của sinh viên Văn Quốc Uy đã giải quyết thành công bài toán ứng dụng công nghệ thông tin vào hoạt động tổ chức trò chơi chạy trạm team building thông qua việc xây dựng ứng dụng web lũy tiến PWA trên nền tảng MEAN Stack và Strapi CMS. Điểm nhấn kỹ thuật của đề tài là việc tích hợp thành công các API nhận diện hình ảnh của Vuforia Web Services, góp phần tự động hóa quy trình xác thực trạm và theo dõi lộ trình thi đấu theo thời gian thực. Hệ thống cung cấp một giải pháp khả thi giúp tiết giảm nhân lực điều phối, giảm thiểu chi phí tổ chức sự kiện và nâng cao trải nghiệm tương tác thực tế cho người tham gia.