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

Đề tài khóa luận tốt nghiệp "Xây dựng ứng dụng gửi xe và đặt món canteen, tích hợp thanh toán qua ứng dụng di động" do sinh viên Lê Phạm Huy Cường (MSSV: 17520306) và Lê Ngọc Long (MSSV: 17520710) thực hiện dưới sự hướng dẫn của TS. Cao Thị Nhạn tại Khoa Hệ thống Thông tin, Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh (năm 2021).

Xuất phát từ thực tế tại các trường đại học, tình trạng ùn tắc phương tiện xe máy tại cổng bãi xe thường xuyên diễn ra vào các khung giờ cao điểm, đặc biệt vào đầu buổi học và các đợt thi học kỳ. Thủ tục xử lý sự cố khi sinh viên làm mất thẻ giữ xe truyền thống còn phức tạp, đòi hỏi đối soát giấy tờ đăng ký xe và trích xuất dữ liệu camera giám sát. Song song với đó, tại khu vực nhà ăn (canteen), sinh viên và cán bộ nhân viên phải xếp hàng chờ đợi kéo dài vào giờ ăn trưa để mua phiếu và nhận suất ăn. Trước bối cảnh các công nghệ nhận diện thẻ từ RFID, xử lý ảnh (AI, Machine Learning, Object Detection) và xu hướng thanh toán không dùng tiền mặt phát triển mạnh, việc tin học hóa quy trình quản trị dịch vụ tiện ích nội bộ trở nên cần thiết.

Khảo sát của nhóm tác giả chỉ ra rằng các giải pháp quản lý bãi xe thương mại trên thị trường hiện nay chủ yếu vận hành theo mô hình 2 làn đường riêng biệt (1 làn vào và 1 làn ra) với 4 camera giám sát (2 camera cho mỗi làn). Mô hình này đòi hỏi kinh phí đầu tư thiết bị ban đầu lớn, chưa phù hợp với điều kiện triển khai diện hẹp và ngân sách phục vụ học sinh, sinh viên. Nhóm tác giả đề xuất thiết kế trạm kiểm soát tinh gọn chỉ với 1 làn đường, 2 camera và 1 máy quét thẻ từ RFID nhưng vẫn bảo đảm các tính năng an toàn, đồng thời tích hợp cổng thanh toán ví điện tử MoMo và tận dụng thẻ sinh viên làm phương tiện xác thực, thanh toán.

Mục tiêu nghiên cứu được xác định cụ thể trong văn bản bao gồm:

  1. Tìm hiểu và thực hiện quy trình xây dựng ứng dụng lai (hybrid app) với phương châm "Move faster with a single code base".
  2. Tìm hiểu cách thức tích hợp API xử lý ảnh từ các thư viện mã nguồn mở để nhận diện biển số xe cho hệ thống phần mềm.
  3. Xây dựng hoàn chỉnh hệ thống phần mềm quản lý bãi xe và đặt món canteen, tích hợp thanh toán di động với 4 chức năng cốt lõi:
    • Gửi xe và thanh toán nhanh chóng bằng thẻ sinh viên;
    • Nhận diện biển số xe thông minh bằng camera;
    • Xem thực đơn canteen, đặt trước phần ăn và thanh toán trên ứng dụng;
    • Nạp tiền vào tài khoản ứng dụng thông qua cổng thanh toán trực tuyến.

Đối tượng nghiên cứu là quy trình kiểm soát phương tiện ra vào bãi đỗ, quy trình đặt suất ăn canteen và các giải pháp tích hợp công nghệ phần mềm đa nền tảng. Phạm vi nghiên cứu tập trung vào mô hình bãi giữ xe thử nghiệm 1 làn đường và hệ thống canteen phục vụ sinh viên, nhân viên tại môi trường đại học trong năm 2021.

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

Khóa luận áp dụng các mô hình kỹ thuật và khung lý thuyết trong lĩnh vực kỹ thuật phần mềm và hệ thống thông tin:

  • Kiến trúc Microservices: Hệ thống backend được phân rã thành các dịch vụ độc lập, bao gồm API Gateway (tiếp nhận yêu cầu từ client web/mobile, điều phối đến service nội bộ tương ứng nhằm che giấu kiến trúc backend và tăng cường bảo mật), các Services nghiệp vụ chuyên biệt có cơ sở dữ liệu riêng, và Broker đóng vai trò trung gian trao đổi thông điệp kiêm hàng đợi (Message Queue) để tránh quá tải khi lượng truy cập tăng đột biến.
  • Mô hình Hybrid App: Kết hợp giữa Ionic framework và React Native. Nhóm tận dụng Ionic để xây dựng giao diện người dùng đa nền tảng từ mã nguồn web, đồng thời sử dụng React Native để nhúng container WebView kết nối giao diện Ionic nhằm tương tác với SDK của ví điện tử MoMo (do MoMo chỉ cung cấp thư viện thanh toán cho ứng dụng native).
  • Khung phát triển và cơ sở dữ liệu: Sử dụng LoopBack framework (Node.js/TypeScript) hỗ trợ kiến tạo REST API và OpenAPI-to-GraphQL; cơ sở dữ liệu phân tán NoSQL MongoDB lưu trữ dữ liệu dưới định dạng JSON/BSON linh hoạt, không áp đặt ràng buộc bảng cứng.
  • Dịch vụ nhận diện hình ảnh: Tích hợp API đám mây do Platerecognizer cung cấp để xử lý tách biển số xe từ hình ảnh camera chụp.
  • Dịch vụ tích hợp thanh toán và xác thực: MoMo Payment Platform API với phương thức App-In-App trên môi trường thử nghiệm (Sandbox test); nền tảng Twilio (tài khoản dùng thử) để gửi mã OTP xác thực qua tin nhắn SMS khi đăng nhập.

Phương pháp nghiên cứu và tổ chức phát triển hệ thống được tiến hành qua 3 giai đoạn:

  1. Nghiên cứu thị trường và tìm hiểu công nghệ: Tổ chức 3 buổi họp chuyên đề ghi nhận nội dung trên công cụ Notion (Buổi 1: Lộ trình frontend và lệnh Git; Buổi 2: Nghiên cứu thị trường, so sánh ưu nhược điểm của các sản phẩm tương tự; Buổi 3: Tập huấn Docker và kỹ năng giải quyết vấn đề).
  2. Phân tích chân dung người dùng (User Persona): Phân tích chi tiết hành vi, cảm xúc, rào cản và giải pháp đối với 2 nhóm người dùng mục tiêu: Sinh viên/học sinh (áp lực vội vã đầu giờ học, mệt mỏi vì xếp hàng giờ trưa) và Nhân viên bảo vệ (yêu cầu tập trung cao độ, nguy cơ quá tải giờ cao điểm, khó khăn khi xử lý sự cố hoặc khi mất điện).
  3. Phát triển phần mềm theo Agile rút gọn: Áp dụng chu kỳ phát hành nội bộ 2 tuần (2-week sprint). Quản lý danh mục công việc bằng bảng Kanban trên công cụ Trello với 4 cột trạng thái: TODO, DOING, DONE và BACKLOG.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình kiến trúc phân tầng, phân định rõ ràng giữa các phân hệ phía người dùng (Frontend), phân hệ xử lý nghiệp vụ trung tâm (Backend Microservices), cơ sở dữ liệu và các công cụ hỗ trợ vận hành tự động.

Thành phần Công nghệ / Nền tảng Chức năng kỹ thuật trong hệ thống
Giao diện quản lý bãi xe ReactJS, Redux Xây dựng ứng dụng trang đơn (SPA) tại máy trạm bãi xe; Redux quản lý tập trung trạng thái giao diện
Ứng dụng di động Ionic, React Native Xây dựng ứng dụng di động lai (Hybrid); Ionic xử lý màn hình giao diện, React Native bọc WebView liên kết SDK MoMo
Backend Microservices Node.js, LoopBack framework Triển khai các dịch vụ nghiệp vụ viết bằng TypeScript, cung cấp các chuẩn kết nối REST API và OpenAPI-to-GraphQL
Cơ sở dữ liệu MongoDB Lưu trữ hướng tài liệu NoSQL, lưu cấu trúc JSON linh hoạt, không áp dụng ràng buộc khóa nghiêm ngặt và transaction
Nhận diện biển số Platerecognizer API Nhận diện ký tự biển số xe tự động từ luồng ảnh tĩnh do camera chụp trạm xe gửi lên
Cổng thanh toán Ví điện tử MoMo Tích hợp phương thức thanh toán App-In-App trên môi trường test, xử lý xác thực chữ ký số qua Partner Code, Access Key, Secret Key
Xác thực OTP Twilio API Gửi mã xác thực đăng nhập một lần (OTP) qua tin nhắn SMS tới số điện thoại người dùng
Container hóa & CI/CD Docker, Jenkins Docker đóng gói môi trường dịch vụ độc lập; Jenkins tự động hóa quá trình build/test và thông báo kết quả qua Microsoft Teams
Quản lý mã nguồn & IDE GitLab, Visual Studio Code Kho lưu trữ mã nguồn phân tán kết hợp môi trường phát triển mã nguồn mở

Cơ sở dữ liệu MongoDB của hệ thống được tổ chức thành 9 bảng/collection chính:

  1. User: Lưu trữ thông tin người dùng (Id, Email, Password dạng chuỗi mã hóa, fullName, Rfid, Phone, Bio, Avatar, Roleid, Balance, Vehicleid).
  2. Payment: Ghi nhận dữ liệu thanh toán (Id, Payee, Receiver, Channel, Amount).
  3. Parking: Định danh và vị trí địa lý của bãi đỗ (Id, Lat, Long, thumbnail, Manager).
  4. Role: Phân quyền người dùng (Id, Key gồm giá trị SINHVIEN hoặc BAOVE, Description).
  5. Vehicle: Thông tin phương tiện (Id, Name, Description, Brand, Image[]).
  6. Card: Định danh thẻ từ RFID (Id, Description, Brand).
  7. Userparking: Lưu lịch sử lượt gửi xe (Id, Timein, Timeout, Userid, Status).
  8. Foodcategory: Phân loại danh mục thức ăn (Id, Description, Thumbnail).
  9. Food: Thông tin chi tiết món ăn canteen (Id, Description, Thumbnail[], Category).

Hệ thống backend triển khai 3 microservices cốt lõi cung cấp các API chuyên trách:

Dịch vụ (Service) Endpoint Phương thức Tham số yêu cầu Mã phản hồi Mô tả chức năng
Payment service /balance/:id GET Query: id 200 / 409 Truy xuất số dư tài khoản người dùng
Payment service /add-balance/:id PUT Query: id; Body: amount 200 / 409 Nạp tiền vào tài khoản người dùng
Payment service /subtract-balance/:id PUT Query: id; Body: amount 200 / 409 Trừ tiền trong tài khoản người dùng
Parking service /vehical-move-in/:vehicalId PUT Query: vehicalId 200 / 409 Ghi nhận phương tiện bắt đầu vào bãi
Parking service /vehical-move-out/:vehicalId PUT Query: vehicalId 200 / 409 Ghi nhận phương tiện hợp lệ rời khỏi bãi
Momo service /forwardPayment POST Body: appData, customerNumber, orderId, amount 200 / 500 Chuyển tiếp yêu cầu thanh toán từ ứng dụng sang máy chủ MoMo
Momo service /confirm POST Body: partnerCode, partnerRefId, momoTransId 200 / 500 Hook nhận dữ liệu xác nhận hoàn tất giao dịch từ máy chủ MoMo

Quy trình thanh toán MoMo App-In-App gồm 7 bước:

  • Bước 1: Ứng dụng di động Easy Parking gọi deeplink mở ứng dụng MoMo kèm yêu cầu thanh toán.
  • Bước 2: Người dùng xác nhận thanh toán trên giao diện MoMo; MoMo chuyển hướng quay lại Easy Parking kèm dữ liệu phản hồi (callback).
  • Bước 3: Ứng dụng kiểm tra dữ liệu callback; nếu thành công sẽ gửi thông tin giao dịch lên máy chủ Easy Parking.
  • Bước 4: Máy chủ Easy Parking xác thực dữ liệu và gửi yêu cầu hoàn chỉnh đến máy chủ MoMo để treo tiền tài khoản người dùng.
  • Bước 5: Máy chủ MoMo xử lý và gửi phản hồi trạng thái treo tiền về máy chủ Easy Parking (gọi thêm notifyUrl nếu có cấu hình).
  • Bước 6: Máy chủ Easy Parking nhận kết quả, thông báo cho người dùng và gửi yêu cầu xác nhận commit hoặc rollback đến MoMo tùy kết quả xử lý.
  • Bước 7: Máy chủ MoMo xử lý lệnh xác nhận và trả kết quả hoàn tất về cho máy chủ Easy Parking.

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 nguyên nhân ùn ứ phương tiện tại bãi giữ xe trường học trong khung giờ cao điểm và sự bất tiện khi sinh viên làm thất lạc thẻ xe vật lý. Tác giả cũng chỉ ra thực trạng xếp hàng dài vào giờ nghỉ trưa tại canteen sinh viên. Khảo sát các giải pháp quản lý bãi xe hiện hành cho thấy phần lớn hệ thống thương mại vận hành với 2 làn đường và 4 camera giám sát, gây tốn kém chi phí đầu tư hạ tầng. Từ đó, đề tài xác lập mục tiêu nghiên cứu là xây dựng mô hình bãi giữ xe tiết kiệm chi phí với cấu hình 1 làn đường, 2 camera và 1 máy quét thẻ RFID, tích hợp thanh toán trừ tiền trực tiếp qua thẻ sinh viên và ví điện tử MoMo, kết hợp ứng dụng đặt trước món ăn canteen.

Chương 2: Các công nghệ sử dụng và các giai đoạn thực hiện

Chương này thuyết minh chi tiết các nền tảng công nghệ được lựa chọn: ReactJS, Ionic framework, React Native, LoopBack framework, cơ sở dữ liệu MongoDB, kiến trúc Microservices, CI/CD Jenkins, Docker, GitLab và cổng thanh toán MoMo. Nhóm tác giả trình bày tiến trình thực hiện qua 3 giai đoạn: Giai đoạn 1 gồm 3 buổi họp định hướng và nghiên cứu thị trường ghi chép bằng Notion; Giai đoạn 2 phân tích chân dung người dùng (sinh viên và nhân viên bảo vệ); Giai đoạn 3 lập trình ứng dụng và tổ chức quản lý tác vụ theo chu kỳ 2 tuần trên bảng Kanban của Trello với 4 cột (TODO, DOING, DONE, BACKLOG). Chương cũng liệt kê danh sách các số điện thoại thử nghiệm sandbox của MoMo (hạn mức 30.000 VNĐ) phục vụ kiểm thử giao dịch.

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

Chương 3 trình bày các mô hình phân tích và thiết kế phần mềm hoàn chỉnh. Đối với hệ thống bãi xe, chương đặc tả 5 ca sử dụng chính: Quẹt thẻ đưa xe vào bãi (UC-1), Quẹt thẻ đưa xe ra khỏi bãi, Thanh toán tiền giữ xe, Xác nhận cho xe vào bãi, Xác nhận cho xe ra khỏi bãi; đi kèm sơ đồ hoạt động, sơ đồ tuần tự và sơ đồ lớp. Đối với hệ thống đặt món canteen, tác giả xây dựng sơ đồ ca sử dụng cho các chức năng: Xem món ăn, Thêm món vào giỏ hàng, Thêm vào danh sách yêu thích, Thanh toán món ăn. Toàn bộ thiết kế cơ sở dữ liệu trên MongoDB được mô hình hóa qua 9 bảng dữ liệu. Ngoài ra, chương đặc tả chi tiết các tham số đầu vào, đầu ra của 3 microservices (Payment, Parking, Momo) và quy trình 7 bước xử lý thanh toán MoMo App-In-App.

Chương 4: Ứng dụng triển khai

Chương 4 mô tả kết quả lập trình giao diện và lắp đặt thực nghiệm hệ thống. Về ứng dụng di động, các màn hình chức năng được hiện thực hóa gồm: Đăng nhập số điện thoại và nhập mã xác thực OTP gửi qua Twilio (mã thử nghiệm 4527), giao diện theo dõi số dư tài khoản, giao diện biểu mẫu nạp tiền, giao diện thanh toán MoMo, cùng các màn hình thực đơn canteen, chi tiết món ăn, giỏ hàng, thanh toán đơn hàng và nhận xét đánh giá món ăn. Về phần cứng bãi giữ xe, nhóm triển khai thực nghiệm mô hình gồm đầu đọc thẻ từ RFID, thẻ từ RFID, 2 camera và máy trạm hiển thị màn hình giám sát chuyên dụng cho nhân viên bảo vệ trong cả hai trường hợp phương tiện vào và ra khỏi bãi.

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

Chương tổng kết các hạng mục đã hoàn thành của đồ án bao gồm: xây dựng thành công ứng dụng di động hybrid đa nền tảng, thiết kế hệ thống bãi xe tích hợp camera nhận diện biển số và thẻ RFID, kết nối giải pháp thanh toán ví điện tử MoMo và triển khai backend theo kiến trúc Microservices có tích hợp quy trình CI/CD tự động bằng Docker và Jenkins. Đồng thời, tác giả thẳng thắn chỉ ra các giới hạn hiện thời về quy mô thử nghiệm 1 làn xe, sự phụ thuộc vào API nhận diện đám mây bên ngoài và việc thanh toán mới dừng ở môi trường sandbox, làm cơ sở định hình các hướng nghiên cứu nâng cấp tiếp theo.

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

  • Kết quả kỹ thuật đạt được:
    • Xây dựng hoàn chỉnh ứng dụng di động hybrid bằng Ionic và React Native, hỗ trợ các chức năng đăng nhập xác thực SMS qua Twilio, quản lý số dư, nạp tiền qua ví điện tử MoMo, xem thực đơn, đặt món ăn canteen và đánh giá món ăn;
    • Tích hợp thành công giải pháp nhận diện biển số xe tự động thông qua API Platerecognizer kết hợp trích xuất ảnh từ camera giám sát;
    • Triển khai hệ thống backend theo kiến trúc Microservices với LoopBack framework trên nền Node.js và MongoDB, đóng gói độc lập qua Docker;
    • Thiết lập thành công chu trình CI/CD bằng Jenkins, tự động kiểm thử và thông báo trạng thái bản build về nhóm Microsoft Teams;
    • Triển khai mô hình phần cứng bãi giữ xe thực nghiệm gồm trạm máy tính quản lý, 2 camera giám sát, 1 máy đọc thẻ từ RFID và hệ thống thẻ RFID tương thích thẻ sinh viên.
  • Giải pháp và kiến nghị của nhóm tác giả:
    • Đề xuất giải pháp bãi xe tinh giản 1 làn đường và 1 đầu đọc thẻ nhằm tối ưu hóa chi phí đầu tư trang thiết bị, phù hợp với ngân sách của các cơ sở giáo dục;
    • Kiến nghị tận dụng thẻ sinh viên sẵn có để định danh phương tiện và thanh toán phí gửi xe, tạo dựng hệ sinh thái tiện ích khép kín trong trường đại học;
    • Đưa giải pháp đặt trước suất ăn qua ứng dụng di động vào canteen nhằm giảm áp lực xếp hàng mua phiếu trực tiếp trong giờ nghỉ trưa.
  • Đóng góp so với các hệ thống trước:
    • Giảm thiểu số lượng thiết bị phần cứng so với các bãi xe truyền thống (tiết giảm từ mô hình 2 làn, 4 camera xuống còn 1 làn, 2 camera và 1 máy quét);
    • Kết hợp đồng thời hai phân hệ tiện ích sinh viên (giữ xe và ăn uống canteen) trên một ứng dụng di động và tài khoản số dư thống nhất;
    • Đưa ra giải pháp kỹ thuật kết hợp React Native và Ionic WebView để giải quyết giới hạn tích hợp SDK MoMo native trên nền tảng hybrid app.

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

  • Hạn chế được ghi nhận trong văn bản:
    • Mô hình bãi giữ xe mới được thử nghiệm ở quy mô 1 làn đường duy nhất, chưa kiểm nghiệm khả năng điều phối trên các bãi xe quy mô lớn có nhiều làn xe độc lập;
    • Tính năng nhận diện biển số xe phụ thuộc hoàn toàn vào dịch vụ đám mây bên thứ ba (Platerecognizer API) thông qua Internet, chưa xử lý ngoại tuyến (offline);
    • Tích hợp thanh toán qua ví điện tử MoMo mới chỉ dừng lại ở việc kiểm thử trên môi trường thử nghiệm (Sandbox test) với các tài khoản thử nghiệm nội bộ, chưa đưa vào môi trường sản xuất (Production);
    • Cơ sở dữ liệu NoSQL MongoDB không hỗ trợ tính năng transaction và ràng buộc chặt chẽ như hệ quản trị cơ sở dữ liệu quan hệ (SQL), tiềm ẩn rủi ro sai lệch dữ liệu nếu phát sinh sự cố trong quá trình giao dịch.
  • Hướng phát triển tiếp theo:
    • Nâng cấp phần mềm để hỗ trợ mô hình bãi giữ xe nhiều làn đường phân tách luồng xe vào và ra riêng biệt;
    • Nghiên cứu xây dựng và tích hợp mô hình xử lý ảnh nhận diện biển số cục bộ (chạy trực tiếp trên máy chủ nội bộ) để bảo đảm tính chủ động và tốc độ xử lý khi mất kết nối Internet;
    • Hoàn thiện thủ tục đăng ký đối tác để đưa cổng thanh toán MoMo lên môi trường thực tế và tích hợp thêm các kênh thanh toán điện tử khác;
    • Mở rộng thêm tính năng quản lý vị trí chỗ đỗ xe trong bãi và bổ sung quy trình quản lý bếp tại canteen.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo phù hợp cho sinh viên, giảng viên và các nhóm nghiên cứu thuộc các ngành Hệ thống Thông tin, Kỹ thuật Phần mềm, Khoa học Máy tính và Công nghệ Thông tin đang thực hiện các đề tài đồ án tốt nghiệp hoặc dự án ứng dụng liên quan đến số hóa tiện ích khuôn viên (Smart Campus).

Các nội dung có giá trị tham khảo nổi bật bao gồm:

  • Tài liệu phân tích và thiết kế hệ thống chi tiết: Toàn bộ hệ thống sơ đồ ca sử dụng, sơ đồ hoạt động, sơ đồ tuần tự, sơ đồ lớp và bảng đặc tả cấu trúc 9 collection trên cơ sở dữ liệu NoSQL MongoDB;
  • Phương án tích hợp SDK native vào ứng dụng Hybrid: Giải pháp kỹ thuật dùng React Native WebView làm cầu nối để tích hợp SDK MoMo native vào ứng dụng phát triển bằng framework Ionic;
  • Đặc tả kiến trúc Microservices: Cách phân tách các dịch vụ thanh toán, bãi xe và cổng giao tiếp trung gian bằng LoopBack framework đi kèm bảng thông số chi tiết của các API endpoint;
  • Quy trình triển khai tự động hóa CI/CD: Cấu hình đường ống build và test tự động bằng Jenkins kết hợp container Docker và cơ chế gửi cảnh báo về nhóm làm việc Microsoft Teams.

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

1. Tại sao nhóm tác giả lại kết hợp cả hai framework Ionic và React Native trong cùng một ứng dụng di động?

Theo văn bản khóa luận, Ionic được nhóm lựa chọn nhằm xây dựng giao diện ứng dụng di động đa nền tảng một cách nhanh chóng từ mã nguồn web, tiết kiệm thời gian phát triển giao diện. Tuy nhiên, ví điện tử MoMo chỉ cung cấp thư viện SDK thanh toán hỗ trợ nền tảng ứng dụng native. Do đó, nhóm sử dụng React Native để trực tiếp gọi SDK của MoMo, đồng thời sử dụng một container trong React Native là WebView để liên kết và hiển thị toàn bộ giao diện đã lập trình sẵn bằng Ionic.

2. Mô hình phần cứng của bãi giữ xe trong đồ án có cấu hình như thế nào để tối ưu chi phí?

Khác với các hệ thống giữ xe thương mại phổ biến sử dụng 2 làn đường riêng biệt (1 vào, 1 ra) với 4 camera (2 camera mỗi làn), mô hình của nhóm tác giả được thiết kế rút gọn chỉ có 1 làn đường duy nhất, lắp đặt 2 camera giám sát kết hợp với 1 máy đọc thẻ từ RFID kết nối máy trạm. Cấu hình này giúp giảm đáng kể kinh phí đầu tư ban đầu nhưng vẫn đảm bảo ghi nhận thông tin xe, nhận diện biển số và quẹt thẻ sinh viên kiểm soát an toàn.

3. Hệ thống nhận diện biển số xe bằng công nghệ gì và cơ chế hoạt động ra sao?

Nhóm tác giả sử dụng giải pháp tích hợp API đám mây do Platerecognizer cung cấp. Khi sinh viên quẹt thẻ tại cổng vào hoặc cổng ra, máy trạm bãi xe sẽ điều khiển camera chụp ảnh phương tiện, sau đó gửi ảnh này lên API của Platerecognizer để bóc tách xâu ký tự biển số. Dữ liệu biển số nhận diện được trả về máy chủ để đối chiếu với thông tin biển số trong cơ sở dữ liệu hoặc so khớp giữa thời điểm xe vào và ra.

4. Quy trình thanh toán MoMo App-In-App được nhóm triển khai qua môi trường nào và cấu hình bằng các thông tin gì?

Phương thức tích hợp được triển khai là App-In-App chạy trên môi trường thử nghiệm (môi trường test/sandbox) do MoMo cung cấp miễn phí cùng danh sách số điện thoại test có hạn mức 30.000 VNĐ. Để kết nối API MoMo, hệ thống sử dụng 4 tham số cấu hình định danh: Partner code (định danh tài khoản doanh nghiệp), Access key (quyền truy cập hệ thống MoMo), Secret key (tạo chữ ký điện tử) và Public key (mã hóa dữ liệu).

5. Phương pháp quản trị tiến độ và phân công công việc trong nhóm được thực hiện như thế nào?

Nhóm tác giả (gồm 2 thành viên) chia tiến độ thực hiện theo chu kỳ phát hành nội bộ 2 tuần (sprint 2 tuần). Sau mỗi 2 tuần, nhóm tổ chức họp đánh giá lại các tính năng đã làm và tháo gỡ khó khăn. Công cụ Trello được sử dụng với bảng Kanban gồm 4 cột trạng thái: TODO (việc cần làm trong 2 tuần), DOING (việc đang làm), DONE (việc đã hoàn thành) và BACKLOG (các việc trong kế hoạch nhưng tạm thời chưa thực hiện trong chu kỳ hiện tại).

Kết luận

Khóa luận tốt nghiệp của Lê Phạm Huy Cường và Lê Ngọc Long đã nghiên cứu và triển khai thành công hệ thống tích hợp quản lý bãi đỗ xe và đặt suất ăn canteen trên nền tảng ứng dụng di động. Đề tài kết hợp giải pháp phần cứng bãi xe 1 làn tinh gọn với kiến trúc phần mềm Microservices hiện đại trên nền Node.js (LoopBack) và cơ sở dữ liệu MongoDB, tích hợp nhận diện biển số xe qua Platerecognizer API và thanh toán ví điện tử MoMo. Kết quả nghiên cứu chứng minh tính khả thi kỹ thuật trong việc số hóa các tiện ích học đường, đồng thời cung cấp tài liệu tham khảo chi tiết về phân tích, thiết kế hệ thống và quy trình tự động hóa CI/CD cho sinh viên ngành Hệ thống Thông tin.