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

Khóa luận tốt nghiệp kỹ sư Công nghệ thông tin (chuyên ngành Công nghệ phần mềm) của sinh viên Phạm Văn Nhất (MSSV: 16110407) và Phạm Hoàng Phúc (MSSV: 16110419), dưới sự hướng dẫn của ThS. Nguyễn Trần Thi Văn tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (thực hiện từ ngày 30/03/2020 đến ngày 10/07/2020), tập trung vào đề tài "Xây dựng ứng dụng đặt hàng Online".

Lý do chọn đề tài và bối cảnh thực tiễn

Theo nhóm tác giả, hoạt động thương mại và mua bán đã trải qua nhiều giai đoạn phát triển lịch sử. Trước đây, việc giao thương chủ yếu diễn ra dưới hình thức mua bán trực tiếp do các công cụ hỗ trợ chưa phát triển. Cùng với sự tiến bộ của khoa học công nghệ, thương mại điện tử (TMĐT) đã ra đời và trở thành động lực phát triển trọng yếu của nền kinh tế tại nhiều quốc gia. TMĐT mang lại nhiều lợi ích: giúp doanh nghiệp tiếp cận nguồn thông tin thị trường phong phú, mở rộng tệp khách hàng, giảm thiểu chi phí tiếp thị và giao dịch, đồng thời xây dựng mối quan hệ bạn hàng bền vững.

Đối với người tiêu dùng, phương thức mua sắm trực tuyến với thủ tục đăng ký đơn giản mang lại khả năng chủ động về mặt thời gian và hạn chế các phiền phức trong giao dịch truyền thống. Xuất phát từ nhu cầu thực tế của người dùng và các đơn vị kinh doanh thức ăn nhanh, đề tài được lựa chọn nhằm tối ưu hóa quy trình mua bán thông qua các thao tác trực tiếp trên thiết bị di động.

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

Mục tiêu tổng quát của khóa luận gồm hai nội dung chính:

  1. Mục tiêu nghiên cứu lý thuyết: Tìm hiểu công nghệ lập trình ứng dụng di động Android bằng ngôn ngữ Java, kiến trúc cơ sở dữ liệu thời gian thực Firebase của Google, các giao diện lập trình ứng dụng bản đồ (Google Maps API) và nghiệp vụ mua bán hàng hóa trực tuyến.
  2. Mục tiêu phát triển thực hành: Xây dựng hệ thống gồm 3 ứng dụng di động riêng biệt đáp ứng đầy đủ chu trình vận hành thực tế cho 3 nhóm đối tượng:
    • Ứng dụng dành cho Khách hàng (Người mua hàng): Thực hiện tìm kiếm món ăn, xem thông tin chi tiết, thêm/xóa món ăn khỏi giỏ hàng, đặt hàng, bình luận, đánh giá, yêu thích món ăn và theo dõi trạng thái, tiến trình giao hàng theo thời gian thực.
    • Ứng dụng dành cho Quản lý (Chủ cửa hàng/Admin): Quản lý thực đơn món ăn, quản lý biểu ngữ quảng cáo (banner), quản lý danh sách người giao hàng (shipper) và điều phối, cập nhật trạng thái đơn hàng.
    • Ứng dụng dành cho Người giao hàng (Shipper): Tiếp nhận đơn hàng cần giao, xác định lộ trình đường đi dựa trên bản đồ và cập nhật tình trạng giao hàng.

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

  • Đối tượng nghiên cứu: Ngôn ngữ lập trình Java và nền tảng phát triển Android; hệ quản trị cơ sở dữ liệu NoSQL Firebase Realtime Database; hệ thống giao diện lập trình ứng dụng bản đồ Google Maps API; quy trình nghiệp vụ đặt hàng và điều phối giao nhận món ăn trực tuyến.
  • Phạm vi nghiên cứu:
    • Về công nghệ: Tập trung nghiên cứu và triển khai ứng dụng trên hệ điều hành Android bằng ngôn ngữ Java, kết nối đồng bộ cơ sở dữ liệu với Google Firebase.
    • Về nghiệp vụ: Thiết kế và hiện thực hóa quy trình đặt hàng, xử lý đơn, định tuyến giao hàng giữa 3 tác nhân trong khoảng thời gian từ tháng 03/2020 đến tháng 07/2020.

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

Khóa luận sử dụng các nền tảng lý thuyết và công nghệ kỹ thuật phần mềm di động hiện đại kết hợp phương pháp nghiên cứu thực nghiệm và khảo sát đối chuẩn.

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

  • Ngôn ngữ Java: Ngôn ngữ lập trình hướng đối tượng (OOP) dựa trên lớp, biên dịch mã nguồn thành dạng bytecode để thực thi trên môi trường máy ảo, mang các đặc tính: tính bảo mật cao, độc lập nền tảng, thiết kế mẫu rõ ràng và tốc độ xử lý mạnh mẽ.
  • Hệ điều hành Android: Hệ điều hành mã nguồn mở xây dựng trên nền tảng Linux Kernel dành cho thiết bị di động, hoạt động theo kiến trúc 5 tầng:
    1. Applications (Tầng ứng dụng): Chứa các ứng dụng người dùng và hệ thống.
    2. Application Framework (Tầng khung ứng dụng): Cung cấp các API quản lý vòng đời ứng dụng và giao tiếp hệ thống (Activity Manager, Content Provider, Resource Manager, Notification Manager, View System).
    3. Libraries (Tầng thư viện): Chứa các thư viện lõi hệ thống như Surface Manager, OpenGL phục vụ xử lý đồ họa.
    4. Android Runtime: Môi trường thực thi chứa các thư viện lõi và máy ảo (Dalvik Virtual Machine hoặc ART).
    5. Linux Kernel (Nhân hệ điều hành): Lõi điều khiển phần cứng, tập lệnh và trình điều khiển (drivers).
  • Google Firebase: Nền tảng phát triển ứng dụng di động NoSQL trên nền tảng đám mây:
    • Firebase Realtime Database: Lưu trữ dữ liệu dạng cấu trúc JSON phân cấp, tự động đồng bộ hóa dữ liệu thời gian thực tới tất cả các máy khách (clients) và hỗ trợ lưu trữ cục bộ (local storage) khi ngoại tuyến (offline).
    • Bảo mật và truyền thông: Dữ liệu truyền tải qua giao thức bảo mật SSL với chứng chỉ 2048-bit, phân quyền truy cập thông qua ngôn ngữ cấu hình quy tắc bảo mật (security rules).
    • Firebase Authentication, Firebase Storage, Firebase Hosting: Cung cấp giải pháp xác thực người dùng qua OTP/SMS/Email và lưu trữ tài nguyên hình ảnh đồ ăn, banner trên hạ tầng Google Cloud.
  • Google Maps API: Tích hợp bản đồ số và dịch vụ định tuyến đường đi trực tiếp vào ứng dụng di động.

Phương pháp nghiên cứu thực tế

  • Phương pháp khảo sát hiện trạng và đối chuẩn (Benchmarking): Khảo sát thực tế nhu cầu người dùng và phân tích tính năng, ưu nhược điểm của 4 ứng dụng giao đồ ăn đang vận hành trên thị trường: BaeMin, Grab Food (trong tài liệu ghi Grap Food), Now và LoShip.
  • Phương pháp phân tích và mô hình hóa hệ thống: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để thiết kế biểu đồ Use Case (Use Case Diagram), mô hình thực thể kết hợp (ERD), biểu đồ tuần tự (Sequence Diagram) và biểu đồ lớp (Class Diagram).
  • Phương pháp thiết kế và phát triển phần mềm: Thiết kế cấu trúc cơ sở dữ liệu NoSQL, lập trình giao diện người dùng (UI) trên Android Studio, tích hợp API Firebase SDK và Google Maps SDK.
  • Phương pháp kiểm thử phần mềm: Lập kịch bản kiểm thử hộp đen (Black-box testing) trên từng chức năng của 3 ứng dụng tương ứng với 3 nhóm người dùng.

Nguồn dữ liệu

Dữ liệu nghiên cứu bao gồm tài liệu chuyên ngành lập trình Android, tài liệu kỹ thuật chính thức từ Google Developers, Firebase Documentation, số liệu khảo sát các ứng dụng TMĐT thực tế tại Việt Nam và tập dữ liệu kiểm thử về danh mục món ăn, thông tin đơn hàng và tài khoản người dùng được lưu trữ trên Firebase.


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

Bố cục khóa luận được triển khai qua 5 chương chuyên môn cùng phần mở đầu và kết luận:

Mở đầu

Trình bày tính cấp thiết của đề tài trong bối cảnh thương mại điện tử bùng nổ; xác định mục đích nghiên cứu lý thuyết lập trình Android - Firebase và mục đích thực tiễn; phân định đối tượng, phạm vi nghiên cứu và các kết quả dự kiến đạt được của hệ thống 3 phân hệ. Kèm theo đó là bảng kế hoạch chi tiết thực hiện luận văn trong 15 tuần (từ tuần 1: 30/03/2020 đến tuần 15: 10/07/2020).

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

Chương này cung cấp toàn bộ nền tảng lý thuyết phục vụ việc xây dựng ứng dụng:

  • Trình bày khái niệm ngôn ngữ Java, cơ chế hoạt động của bytecode và máy ảo Java, phân tích các ưu điểm về hướng đối tượng và bảo mật.
  • Giới thiệu tổng quan hệ điều hành Android, phân tích chi tiết kiến trúc 5 tầng của Android (Applications, Framework, Libraries, Android Runtime Dalvik/ART, Linux Kernel) và các thành phần cốt lõi quản lý tài nguyên, giao diện, vòng đời tiến trình.
  • Giới thiệu chi tiết nền tảng Google Firebase: cơ chế lưu trữ JSON của Realtime Database, khả năng tự động co giãn (scalability) xử lý hàng triệu kết nối đồng thời, cơ chế đồng bộ hóa offline, hệ thống xác thực Firebase Authentication, dịch vụ lưu trữ đám mây Firebase Storage và các gói chi phí từ miễn phí (Free) đến 1500 USD.

Chương 2: Khảo sát hiện trạng

Nhóm tác giả tiến hành đánh giá thực trạng nhu cầu mua sắm thực phẩm online và phân tích chuyên sâu 4 ứng dụng đặt thức ăn phổ biến:

Tên ứng dụng Ưu điểm ghi nhận Nhược điểm ghi nhận
BaeMin Giao diện dễ sử dụng, biểu tượng minh họa trực quan; nhiều khuyến mãi lớn (giảm 50-60%, tối đa 50-80k); thông báo cập nhật đơn hàng sinh động; hỗ trợ ghi chú cho từng món. Dữ liệu quán ăn chưa phong phú; một số mục thiếu hình ảnh minh họa; độ phủ sóng hẹp (chủ yếu khu vực trung tâm); thiếu khung chatbox để trao đổi trực tiếp với shipper.
Grab Food Giao diện trực quan, dễ dùng; tích hợp sẵn ví điện tử Moca; hệ thống tích điểm đổi quà/voucher; chương trình ưu đãi phân tầng theo cấp độ thành viên. Dữ liệu đối tác quán ăn chưa thực sự toàn diện.
Now Cho phép tham khảo bình luận, hình ảnh, bài đánh giá trước khi đặt; dữ liệu quán ăn dồi dào; hỗ trợ ghi chú đơn; hỗ trợ đặt món theo nhóm; tích hợp ví AirPay và thẻ ngân hàng. Thời gian xác nhận đơn hàng trên hệ thống đôi khi còn chậm.
LoShip Nhiều mã giảm giá; tích hợp hệ sinh thái đa dịch vụ (giao đồ ăn, gọi xe, gửi hàng, đi chợ); giao diện gọn gàng; thanh toán nhanh; quản lý tài khoản chặt chẽ. Thao tác đăng nhập còn rườm rà; yêu cầu người dùng cấp quá nhiều quyền trên thiết bị.

Từ kết quả khảo sát, chương 2 xác định cụ thể các yêu cầu của hệ thống:

  • Yêu cầu chức năng: Phân định rõ 3 phân hệ ứng dụng (Khách hàng, Quản lý, Người giao hàng).
  • Yêu cầu phi chức năng: Tốc độ xử lý nhanh; thời gian tra cứu dữ liệu không quá 10 giây; thời gian cập nhật dữ liệu không quá 5 giây; tính bảo mật phân quyền theo vai trò; an toàn dữ liệu lưu trữ trên 10 năm; hệ thống có tính mở, dễ bảo trì và tái sử dụng.
  • Yêu cầu hệ thống: Cập nhật, xử lý cơ sở dữ liệu chính xác, gán mã định danh duy nhất cho sản phẩm và khách hàng.

Chương 3: Mô hình hóa yêu cầu

Chương này thực hiện mô hình hóa chi tiết toàn bộ các hành vi của hệ thống thông qua hệ thống Use Case Diagram và bảng đặc tả Use Case cho từng tác nhân:

  • Biểu đồ Use Case khách hàng: Gồm 14 Use Case chính: Đăng nhập, Đăng xuất, Xem theo danh mục, Xem chi tiết món ăn, Thêm vào giỏ hàng, Tìm kiếm món ăn trong tất cả món, Tìm kiếm món ăn theo loại, Lưu món ăn ưa thích, Chia sẻ món ăn lên Facebook, Đặt hàng, Bình luận món ăn, Xem bình luận, Xem đơn hàng theo danh mục, Xem chi tiết đơn hàng.
  • Biểu đồ Use Case quản trị viên (Admin): Gồm 14 Use Case chính: Đăng nhập, Đăng xuất, Thêm món ăn, Sửa món ăn, Xóa món ăn, Thêm banner, Sửa banner, Xóa banner, Cập nhật đơn hàng, Thêm shipper, Sửa shipper, Xóa shipper, Xem đơn hàng theo danh mục, Xem chi tiết đơn hàng.
  • Biểu đồ Use Case người giao hàng (Shipper): Gồm 5 Use Case chính: Đăng nhập, Đăng xuất, Xem danh sách đơn hàng cần giao, Cập nhật tình trạng đơn hàng, Xem hướng dẫn đường đi trên bản đồ.

Chương 4: Thiết kế phần mềm

Chương này mô tả chi tiết 3 khía cạnh thiết kế kỹ thuật:

  • Thiết kế cơ sở dữ liệu: Xây dựng cấu trúc các bảng/collections dữ liệu trên Firebase Realtime Database và xác định các ràng buộc logic giữa các thực thể dữ liệu.
  • Thiết kế giao diện: Thiết kế chi tiết hơn 50 màn hình chức năng cho cả 3 ứng dụng (màn hình trang chủ, đăng nhập, nhập mã xác thực OTP, danh mục món ăn, chi tiết món ăn, giỏ hàng Cart, màn hình đặt hàng, danh sách đơn hàng theo các trạng thái: đang xử lý, đang giao, đã giao, bị hủy; giao diện bản đồ đường đi Google Maps; các biểu mẫu quản lý thực đơn, banner, shipper phía quản trị).
  • Thiết kế xử lý: Xây dựng các biểu đồ tuần tự (Sequence Diagram) chi tiết cho các luồng nghiệp vụ: Đăng nhập, Đặt hàng, Hủy đơn hàng, Thêm/Sửa/Xóa món ăn, Đánh giá món ăn, Tìm kiếm món ăn, Xem món ăn, Cập nhật trạng thái đơn hàng, Theo dõi vị trí người giao hàng; cùng các biểu đồ lớp (Class Diagram) cấu trúc mã nguồn cho User, Admin và Shipper.

Chương 5: Cài đặt và kiểm thử

  • Trình bày việc cài đặt môi trường phát triển (Android SDK, Android Studio, Firebase SDK, Google Play Services).
  • Cài đặt các lớp thực thi (Class) trong kiến trúc phần mềm.
  • Thiết lập bảng kịch bản kiểm thử (Test cases) hộp đen kiểm tra tính đúng đắn của toàn bộ các chức năng ở cả 3 phía: Khách hàng, Quản trị viên và Shipper.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình phân tán thời gian thực, gồm 3 ứng dụng di động độc lập giao tiếp thông qua cơ sở dữ liệu NoSQL đám mây.

Kiến trúc công nghệ và nền tảng

  • Hệ điều hành: Android OS (chạy trên máy ảo ART / Dalvik).
  • Ngôn ngữ lập trình: Java.
  • Cơ sở dữ liệu & Dịch vụ phụ trợ (Backend-as-a-Service): Firebase Realtime Database (đồng bộ dữ liệu JSON thời gian thực qua kết nối bảo mật SSL 2048-bit), Firebase Authentication (xác thực người dùng qua mã OTP), Firebase Storage (lưu trữ tập tin hình ảnh món ăn, banner).
  • Dịch vụ bản đồ: Google Maps API (định vị tọa độ, vẽ lộ trình và chỉ đường giao hàng).

Cấu trúc cơ sở dữ liệu Firebase

Hệ thống tổ chức dữ liệu thành 12 bảng (collections/nodes JSON) chính:

Tên bảng / Node dữ liệu Chức năng lưu trữ trong hệ thống
Users Lưu trữ thông tin tài khoản, số điện thoại, mật khẩu, thông tin cá nhân của khách hàng.
Admin Lưu trữ thông tin tài khoản, quyền quản trị của chủ cửa hàng.
Shippers Lưu trữ danh sách tài khoản, thông tin liên lạc và trạng thái của người giao hàng.
Category Lưu trữ danh mục các loại đồ ăn, thức uống trong hệ thống.
Foods Lưu trữ thông tin chi tiết từng món ăn (tên món, giá bán, hình ảnh, mô tả, mã danh mục).
Banner Lưu trữ danh sách hình ảnh và liên kết biểu ngữ quảng cáo trên trang chủ.
Requests Lưu trữ thông tin tổng quát các yêu cầu/hóa đơn đặt hàng từ khách hàng.
OrderNeedShip Lưu trữ danh sách các đơn hàng đã được duyệt cần phân phối cho shipper giao hàng.
OrderFoodWithPhone Lưu trữ thông tin liên kết đơn đặt hàng theo số điện thoại khách hàng.
ShippingOrder Lưu trữ chi tiết thông tin điều phối giao nhận, vị trí và lộ trình của đơn hàng.
Tokens Lưu trữ chuỗi mã định danh thiết bị phục vụ gửi thông báo đẩy (push notifications).
Rating Lưu trữ đánh giá, số sao và nội dung bình luận của khách hàng về từng món ăn.

Hệ thống cũng quy định rõ các ràng buộc toàn vẹn dữ liệu: ràng buộc giữa danh mục (Category) và món ăn (Foods), ràng buộc người dùng (Users) với đánh giá (Rating) và ràng buộc thông tin chi tiết hóa đơn với đơn hàng (Requests).

Luồng xử lý nghiệp vụ chính

  1. Quy trình đặt hàng (Khách hàng): Khách hàng duyệt danh mục hoặc tìm kiếm món ăn $\rightarrow$ Xem chi tiết và chọn "Thêm vào giỏ hàng" $\rightarrow$ Truy cập mục Cart $\rightarrow$ Nhấn "Đặt hàng" $\rightarrow$ Nhập địa chỉ nhận hàng, ghi chú, chọn phương thức thanh toán $\rightarrow$ Gửi đơn hàng lên Firebase (Requests).
  2. Quy trình duyệt và điều phối (Chủ cửa hàng): Admin nhận thông báo đơn hàng mới $\rightarrow$ Kiểm tra thông tin đơn $\rightarrow$ Chuyển trạng thái đơn hàng (đang xử lý / sẵn sàng giao) $\rightarrow$ Gán đơn hàng vào danh sách OrderNeedShip cho Shipper.
  3. Quy trình giao nhận (Shipper & Khách hàng): Shipper đăng nhập ứng dụng $\rightarrow$ Xem danh sách đơn cần giao $\rightarrow$ Bật bản đồ Google Maps để xem lộ trình đường đi $\rightarrow$ Cập nhật trạng thái "Đang giao hàng" $\rightarrow$ Khách hàng theo dõi vị trí trực tiếp $\rightarrow$ Shipper giao hàng thành công và cập nhật trạng thái "Đã giao xong".

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

Kết quả chính đạt được

  • Xây dựng thành công bộ 3 ứng dụng di động hoàn chỉnh trên hệ điều hành Android:
    1. Ứng dụng Khách hàng: Hoàn thiện các tính năng đăng nhập/xác thực bằng OTP, duyệt thực đơn theo danh mục, tìm kiếm đa tiêu chí, quản lý giỏ hàng, đặt hàng trực tuyến, viết bình luận, lưu món ăn yêu thích, chia sẻ liên kết lên Facebook và theo dõi quá trình giao hàng trên bản đồ.
    2. Ứng dụng Chủ cửa hàng: Hoàn thiện các chức năng quản lý toàn diện thực đơn món ăn (thêm, sửa, xóa, cập nhật giá), quản trị hệ thống banner quảng cáo, quản lý tài khoản người giao hàng và theo dõi, phân loại trạng thái đơn hàng (vừa đặt, đang xử lý, đang giao, đã giao, bị hủy).
    3. Ứng dụng Người giao hàng: Hoàn thiện việc hiển thị danh sách đơn hàng được phân công, tích hợp bản đồ Google Maps chỉ đường và cập nhật trạng thái đơn hàng theo thời gian thực.
  • Đáp ứng các chỉ tiêu kỹ thuật phi chức năng:
    • Tốc độ tra cứu thông tin đạt dưới 10 giây.
    • Tốc độ cập nhật và đồng bộ dữ liệu đạt dưới 5 giây.
    • Đảm bảo tính nhất quán dữ liệu thông qua cơ chế đồng bộ JSON thời gian thực của Firebase.

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

  • Làm chủ quy trình phân tích, thiết kế và phát triển ứng dụng di động hoàn chỉnh bằng ngôn ngữ Java trên nền tảng Android.
  • Ứng dụng thành công cơ sở dữ liệu NoSQL đám mây Firebase Realtime Database vào bài toán thương mại điện tử đồng bộ dữ liệu đa người dùng theo thời gian thực, giảm thiểu độ phức tạp trong việc xây dựng hệ thống máy chủ phụ trợ (backend).
  • Tích hợp thành công giải pháp định vị và chỉ đường của Google Maps API phục vụ nghiệp vụ giao hàng đồ ăn trực tuyến.

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

Hạn chế ghi nhận

  • Hệ thống mới chỉ tập trung xây dựng và triển khai trên nền tảng Android, chưa hỗ trợ nền tảng iOS.
  • Các phương thức thanh toán trong ứng dụng còn ở mức cơ bản, chưa tích hợp trực tiếp các cổng thanh toán hoặc ví điện tử phổ biến như Momo, ZaloPay, Moca.
  • Chưa tích hợp tính năng trò chuyện trực tiếp (chatbox) thời gian thực giữa khách hàng và người giao hàng khi đơn hàng đang được vận chuyển.

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

  • Nghiên cứu và phát triển ứng dụng trên nền tảng iOS hoặc sử dụng các khung phát triển đa nền tảng để mở rộng đối tượng người dùng.
  • Tích hợp các cổng thanh toán trực tuyến và ví điện tử nhằm đa dạng hóa phương thức thanh toán an toàn cho khách hàng.
  • Xây dựng thêm phân hệ chatbox/nhắn tin nội bộ giữa khách hàng và shipper nhằm tối ưu hóa việc liên lạc trong quá trình giao hàng.
  • Nâng cấp thuật toán đề xuất món ăn thông minh dựa trên lịch sử đặt hàng và đánh giá của người dùng.

Giá trị tham khảo

  • Đối tượng tham khảo:
    • Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang thực hiện đồ án môn học hoặc khóa luận tốt nghiệp về lập trình ứng dụng di động Android.
    • Các lập trình viên muốn tìm hiểu giải pháp xây dựng hệ thống 3 phân hệ (Khách hàng - Quản trị viên - Shipper) sử dụng kiến trúc Backend-as-a-Service với Google Firebase.
  • Nội dung có giá trị tham khảo nổi bật:
    • Hệ thống tài liệu phân tích hiện trạng và bảng đánh giá đối chuẩn 4 ứng dụng thực tế (BaeMin, Grab Food, Now, LoShip).
    • Bản đặc tả chi tiết 33 Use Case bao quát toàn bộ quy trình nghiệp vụ mua sắm, quản trị và giao vận đồ ăn trực tuyến.
    • Bản thiết kế cấu trúc dữ liệu 12 bảng NoSQL trên Firebase Realtime Database và hệ thống kịch bản kiểm thử hộp đen hoàn chỉnh.

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

1. Hệ thống trong khóa luận gồm những phân hệ ứng dụng nào và phục vụ ai?

Hệ thống gồm 3 ứng dụng di động Android riêng biệt phục vụ 3 nhóm đối tượng: ứng dụng dành cho Khách hàng (tìm món, đặt hàng, theo dõi đơn, bình luận), ứng dụng dành cho Chủ cửa hàng (quản lý món ăn, banner, shipper, duyệt đơn hàng) và ứng dụng dành cho Người giao hàng (xem danh sách đơn, xem bản đồ đường đi, cập nhật trạng thái giao hàng).

2. Công nghệ nền tảng và cơ sở dữ liệu nào được sử dụng để xây dựng hệ thống?

Khóa luận sử dụng ngôn ngữ lập trình Java trên nền tảng hệ điều hành di động Android, kết hợp cơ sở dữ liệu thời gian thực Google Firebase Realtime Database, hệ thống xác thực Firebase Authentication, lưu trữ Firebase Storage và dịch vụ bản đồ Google Maps API.

3. Khảo sát hiện trạng của khóa luận đã chỉ ra những điểm hạn chế nào từ các ứng dụng thực tế trên thị trường?

Khóa luận ghi nhận: BaeMin có độ phủ sóng chưa cao và thiếu chatbox; Grab Food có dữ liệu quán ăn chưa đa dạng; Now có thời gian xác nhận đơn còn chậm; LoShip có thao tác đăng nhập rườm rà và yêu cầu cấp quá nhiều quyền truy cập thiết bị.

4. Cơ sở dữ liệu Firebase của đồ án được cấu trúc gồm những bảng (collections) chính nào?

Cơ sở dữ liệu được tổ chức thành 12 bảng/node JSON chính gồm: Users, Admin, Shippers, Category, Foods, Banner, Requests, OrderNeedShip, OrderFoodWithPhone, ShippingOrder, Tokens và Rating.

5. Khóa luận đặt ra các tiêu chuẩn phi chức năng nào về thời gian phản hồi và lưu trữ?

Hệ thống đặt ra yêu cầu thời gian tra cứu thông tin không quá 10 giây, thời gian cập nhật dữ liệu không quá 5 giây, bảo mật phân quyền theo vai trò người dùng và an toàn dữ liệu lưu trữ trên 10 năm.


Kết luận

Khóa luận "Xây dựng ứng dụng đặt hàng Online" của sinh viên Phạm Văn Nhất và Phạm Hoàng Phúc đã giải quyết thành công bài toán chuyển đổi số hoạt động mua bán thức ăn nhanh thông qua hệ sinh thái 3 ứng dụng Android kết nối thời gian thực với Google Firebase. Công trình hoàn thành đầy đủ các giai đoạn từ khảo sát hiện trạng, đặc tả 33 Use Case, thiết kế cơ sở dữ liệu NoSQL 12 bảng đến cài đặt giao diện và kiểm thử chức năng. Kết quả đề tài mang lại giá trị thực tiễn cao, đáp ứng các tiêu chuẩn kỹ thuật về thời gian phản hồi dưới 10 giây và là tài liệu tham khảo hoàn chỉnh cho các dự án phát triển phần mềm di động hướng dịch vụ.