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

Trong bối cảnh công nghệ thông tin và mạng Internet phát triển mạnh mẽ, các thiết bị di động thông minh (smartphone) đã trở thành công cụ phổ biến, thúc đẩy sự chuyển dịch thói quen mua sắm của người tiêu dùng sang hình thức trực tuyến và giao hàng tận nơi. Nhịp sống đô thị ngày càng bận rộn khiến nhu cầu mua hàng nhanh chóng, tiện lợi tăng cao. Tuy nhiên, phần lớn các nền tảng thương mại điện tử hiện nay tập trung vào các mặt hàng gia dụng, thiết bị điện tử, công nghệ hoặc thời trang may mặc; trong khi các mặt hàng nông sản, lương thực thiết yếu như gạo, nếp, tấm – nguồn lương thực chính của người dân Việt Nam – lại ít được chú trọng phát triển trên các ứng dụng di động chuyên biệt. Những trang web hoặc ứng dụng hiện có thường thiếu sự đa dạng về chủng loại, khó đảm bảo tính minh bạch về giá cả và chất lượng do đặc thù bảo quản nông sản, gây khó khăn cho người tiêu dùng khi tìm kiếm sản phẩm phù hợp.

Xuất phát từ thực trạng đó, đề tài khóa luận "Xây dựng ứng dụng bán gạo trên nền tảng Android" được nhóm sinh viên ngành Công nghệ Thông tin (Hệ sư phạm), Trường Đại học Sư phạm Kỹ thuật TP.HCM thực hiện nhằm giải quyết bài toán phân phối và mua sắm lương thực thiết yếu trên thiết bị di động.

Mục tiêu nghiên cứu của đề tài được xác định cụ thể gồm ba nội dung:

  1. Tìm hiểu tổng quan về bộ công cụ phát triển phần mềm SDK (Software Development Kit), phân biệt các loại SDK phổ biến.
  2. Nghiên cứu nền tảng đám mây Google Firebase và hệ sinh thái các dịch vụ hỗ trợ phát triển ứng dụng di động.
  3. Vận dụng SDK và nền tảng Firebase để thiết kế, cài đặt và hoàn thiện ứng dụng bán gạo hoạt động trên hệ điều hành Android.

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

  • Đối tượng nghiên cứu: Nền tảng phát triển ứng dụng Android, bộ công cụ SDK và dịch vụ cơ sở dữ liệu thời gian thực Firebase.
  • Phạm vi nghiên cứu:
    • Phạm vi kỹ thuật: Tập trung vào việc tích hợp dịch vụ Firebase (Realtime Database, Authentication, Cloud Storage, Cloud Messaging) trên môi trường Android Studio để xây dựng hệ thống quản lý và bán lẻ gạo cho hai đối tượng người dùng (Khách hàng và Quản trị viên).
    • Thời gian và địa điểm thực hiện: Đề tài được triển khai từ tháng 10/2019 đến tháng 01/2020 tại Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP.HCM.

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

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

  • Bộ công cụ phát triển phần mềm (SDK): Nghiên cứu các thành phần cốt lõi của SDK bao gồm Application Programming Interface (API), thư viện lập trình, công cụ gỡ lỗi (debugging), tài liệu hướng dẫn kỹ thuật và mã nguồn mẫu. Khóa luận phân loại các bộ SDK tiêu biểu gồm Android SDK, Windows SDK và Java SDK (JDK).
  • Hệ sinh thái Google Firebase: Nền tảng dịch vụ đám mây (Backend-as-a-Service - BaaS) được thành lập năm 2011 (tiền thân là startup Evolve bởi Andrew Lee và James Tamplin), chính thức mang tên Firebase vào tháng 4/2012 và được Google mua lại vào tháng 10/2014. Các dịch vụ trọng tâm được tác giả nghiên cứu gồm:
    • Firebase Realtime Database: Cơ sở dữ liệu NoSQL dạng cây JSON (trees, parent-children), truyền dữ liệu qua giao thức bảo mật SSL mã hóa 2048-bit, hỗ trợ đồng bộ dữ liệu thời gian thực và tự động lưu đệm cục bộ (local storage) khi mất kết nối mạng.
    • Firebase Authentication: Cơ chế xác thực người dùng an toàn tích hợp qua Email/Mật khẩu, Facebook, Google, Twitter, GitHub hoặc xác thực nặc danh (Anonymous).
    • Firebase Storage: Lưu trữ và quản lý dữ liệu đa phương tiện (hình ảnh sản phẩm, banner quảng cáo) trên nền tảng Google Cloud Platform.
    • Firebase Cloud Messaging (FCM): Hệ thống gửi nhận thông báo đẩy (push notifications) với gói tin thông báo giới hạn 2KB và gói tin dữ liệu giới hạn 4KB, tích hợp Firebase Analytics và hỗ trợ A/B testing.
    • Cơ chế truy vấn Firebase Database Query: Sử dụng các hàm sắp xếp dữ liệu (orderByKey(), orderByChild(), orderByValue(), orderByPriority()) kết hợp với các hàm lọc giới hạn (startAt(), endAt(), equalTo(), limitToFirst(), limitToLast()).
    • Các dịch vụ mở rộng: Firebase Test Labs (với 3 chế độ Instrumentation Test, Robo Test, Game Loop Test), Remote Config, Dynamic Links, App Indexing và Cloud Firestore.

Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp khảo sát hiện trạng: Nghiên cứu thực nghiệm, phân tích đối chiếu chức năng và giao diện của các ứng dụng thương mại điện tử chuyên ngành gạo đã phát hành trên thị trường ("Gạo Ngon" và "Gạo Bách Khoa Duy Nhất").
  • Phương pháp phân tích và thiết kế hệ thống: Sử dụng mô hình hóa nghiệp vụ bằng lược đồ Use Case, xây dựng biểu đồ tuần tự (Sequence Diagram) để mô tả luồng tương tác giữa Tác nhân, Giao diện và Cơ sở dữ liệu.
  • Phương pháp thiết kế cơ sở dữ liệu: Xây dựng cấu trúc dữ liệu hướng tài liệu NoSQL dạng JSON trên Firebase Realtime Database.
  • Nguồn dữ liệu: Dữ liệu thử nghiệm về danh mục các loại gạo, thông tin sản phẩm, hình ảnh, đơn giá, địa chỉ phân phối và đánh giá khách hàng được thu thập từ thị trường thực tế và cấu hình trên Firebase Console.

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

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

Chương 1 hệ thống hóa các kiến thức nền tảng về phát triển ứng dụng di động. Tác giả trình bày định nghĩa, phân loại và lợi ích của SDK trong việc mở rộng tính năng phần mềm. Trọng tâm của chương là việc phân tích chi tiết nền tảng Google Firebase: quá trình phát triển lịch sử, phân loại dịch vụ thành hai nhóm (nhóm phát triển/kiểm thử và nhóm phát triển/thu hút người dùng). Tác giả phân tích chi tiết cơ chế đồng bộ hóa dữ liệu hai chiều của Realtime Database, kỹ thuật bảo mật qua SSL và rules phân quyền bằng JavaScript. Chương này cũng chỉ rõ điểm mạnh của Firebase về tốc độ triển khai, độ ổn định cao trên hạ tầng Google, đồng thời nêu rõ nhược điểm về cấu trúc dữ liệu dạng cây JSON gây khó khăn cho việc xử lý các truy vấn quan hệ phức tạp so với mô hình SQL truyền thống.

Chương 2: Khảo sát hiện trạng và xác định yêu cầu

Chương 2 thực hiện khảo sát chi tiết 2 ứng dụng bán gạo thực tế:

  • Ứng dụng "Gạo Ngon": Có ưu điểm là giao diện đơn giản, đáp ứng các chức năng đặt hàng cơ bản, tích hợp liên hệ đa kênh; tuy nhiên nhược điểm là chức năng bị trùng lắp, thiếu thanh công cụ tìm kiếm sản phẩm, tốc độ tải chậm và thường gặp lỗi hiển thị dữ liệu.
  • Ứng dụng "Gạo Bách Khoa Duy Nhất": Cung cấp danh mục sản phẩm, tin tức, chi nhánh; nhược điểm là giao diện chưa tối ưu về màu sắc, đường dẫn hình ảnh hay bị lỗi và nhiều module chức năng chưa hoàn thiện dữ liệu.

Từ kết quả khảo sát, tác giả xác định yêu cầu hệ thống và phân định quyền hạn cho 2 tác nhân chính:

  • Khách hàng (User): Đăng ký, đăng nhập, quên mật khẩu, cập nhật thông tin cá nhân, đổi mật khẩu, xem danh mục loại và chi tiết sản phẩm, tìm kiếm sản phẩm, thêm/xóa mục yêu thích, quản lý giỏ hàng, đặt hàng, đánh giá và bình luận sản phẩm, gọi điện/nhắn tin cho cửa hàng.
  • Quản lý (Admin): Đăng nhập bằng tài khoản mặc định, quản lý danh mục Banner quảng cáo (thêm/sửa/xóa), quản lý loại sản phẩm (thêm/sửa/xóa), quản lý danh sách sản phẩm (thêm/sửa/xóa/cập nhật giá và khuyến mãi), quản lý đơn đặt hàng (xem chi tiết, thay đổi trạng thái giao hàng, xóa đơn hàng).

Chương 2 khép lại bằng việc đặc tả chi tiết 16 ca sử dụng (Use Case) bao gồm điều kiện kích hoạt, luồng sự kiện chính, biến thể và ngoại lệ.

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

Chương này mô tả chi tiết thiết kế hệ thống và thiết kế dữ liệu. Về mặt tương tác hệ thống, tác giả xây dựng 8 biểu đồ tuần tự (Sequence Diagram) mô tả các luồng nghiệp vụ: Đăng nhập, Đăng ký, Đánh giá sản phẩm, Đặt hàng, Sửa loại sản phẩm, Thêm loại sản phẩm, Xóa loại sản phẩm và Tìm kiếm sản phẩm.

Về thiết kế dữ liệu, cấu trúc NoSQL Realtime Database được tổ chức thành các node JSON độc lập nhưng có mối liên kết logic chặt chẽ:

  • Node User và Admin: Lưu thông tin tài khoản, số điện thoại, mật khẩu, họ tên, quyền hạn.
  • Node Category (Loại sản phẩm): Lưu mã loại sản phẩm, tên loại và đường dẫn hình ảnh đại diện.
  • Node Foods (Sản phẩm): Lưu mã sản phẩm, tên sản phẩm, mô tả, đơn giá, phần trăm giảm giá (discount), mã loại sản phẩm liên kết (menuId) và URL hình ảnh trên Firebase Storage.
  • Node Rating: Lưu thông tin đánh giá sao, nội dung bình luận, mã sản phẩm và số điện thoại người đánh giá.
  • Node Orders: Lưu mã đơn hàng, thông tin khách hàng, số điện thoại, địa chỉ giao hàng, tổng tiền thanh toán, trạng thái đơn hàng và danh sách sản phẩm chi tiết.
  • Node Banner: Lưu trữ danh sách hình ảnh trình chiếu quảng cáo ở trang chủ.
  • Node Notifications: Quản lý dữ liệu thông báo gửi đến người dùng.

Chương 4: Thiết kế giao diện

Chương 4 trình bày chi tiết bản vẽ layout và luồng giao diện cho cả 2 phân hệ ứng dụng Android:

  • Phân hệ Admin: Thiết kế các màn hình chức năng bao gồm Màn hình chờ (Splash Screen), Màn hình đăng nhập quản trị, Màn hình điều khiển chính (Dashboard), Trang danh mục Menu, Giao diện quản lý/thêm Banner quảng cáo, Giao diện quản lý/sửa đơn đặt hàng, Giao diện quản lý/thêm mới/chỉnh sửa Loại sản phẩm, Giao diện quản lý/thêm mới/chỉnh sửa Sản phẩm, Màn hình hiển thị chi tiết đơn hàng và Giao diện bản đồ số (Google Maps API) hỗ trợ định vị vị trí giao nhận.
  • Phân hệ Khách hàng: Thiết kế các giao diện người dùng trực quan bao gồm Màn hình đăng ký tài khoản mới, Đăng nhập, Quên mật khẩu (gửi mã tạm thời), Trang chủ hiển thị banner và danh mục nổi bật, Menu chức năng, Giao diện chỉnh sửa hồ sơ cá nhân, Danh sách sản phẩm yêu thích, Lịch sử đơn hàng, Đổi mật khẩu, Giao diện liên hệ cửa hàng, Giỏ hàng mua sắm, Danh mục sản phẩm theo loại, Chi tiết sản phẩm, Giao diện gửi đánh giá/chấm sao và bình luận, Giao diện tra cứu/tìm kiếm sản phẩm theo tên.

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

Chương 5 mô tả chi tiết quá trình hiện thực hóa ứng dụng trên môi trường phát triển:

  • Cài đặt Firebase: Quy trình đăng ký project trên Firebase Console, kết nối gói ứng dụng (package Android), tải và tích hợp tệp cấu hình google-services.json vào mã nguồn Android Studio, cấp quyền đọc/ghi trên Realtime Database và Firebase Storage.
  • Tích hợp thư viện lập trình: Sử dụng các thư viện chính thống của Firebase (Firebase Core, Firebase Database, Firebase Auth, Firebase Storage, Firebase UI), thư viện Google Maps API hỗ trợ hiển thị vị trí chi nhánh và giao hàng, cùng các thư viện hỗ trợ tùy biến phông chữ giao diện.
  • Kiểm thử phần mềm: Xây dựng các ca kiểm thử chức năng (Functional Testing) cho toàn bộ 16 ca sử dụng trên môi trường máy ảo và thiết bị di động thực tế chạy hệ điều hành Android, đảm bảo các luồng dữ liệu CRUD (Tạo, Đọc, Cập nhật, Xóa) đồng bộ chính xác với cơ sở dữ liệu đám mây.

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

Kiến trúc công nghệ

Hệ thống được xây dựng theo mô hình Client-Server dựa trên nền tảng đám mây Google Firebase (Backend-as-a-Service). Toàn bộ mã nguồn ứng dụng phía máy khách (Client) được phát triển bằng ngôn ngữ Java trên môi trường phát triển tích hợp Android Studio, kết nối trực tiếp đến các dịch vụ đám mây của Google thông qua Android SDK và Firebase SDK.

[ Khách hàng (User App) ]  <---\
                                 ---> [ Google Firebase BaaS ] (Auth, Realtime DB, Storage, FCM)
[ Quản trị viên (Admin App) ] <--/             ^
                                               |
                                    [ Google Maps Platform ]

So sánh hiện trạng các ứng dụng khảo sát

Dựa trên kết quả khảo sát thực tế ở Chương 2, nhóm tác giả đã tổng hợp bảng so sánh tính năng giữa các ứng dụng làm cơ sở thiết kế hệ thống mới:

Tiêu chí / Chức năng Ứng dụng "Gạo Ngon" Ứng dụng "Gạo Bách Khoa Duy Nhất" Ứng dụng của đề tài
Nền tảng Android Android Android
Cơ chế dữ liệu Máy chủ riêng Web/API riêng Google Firebase Realtime Database
Tìm kiếm sản phẩm Không hỗ trợ Có hỗ trợ theo tên Hỗ trợ tìm kiếm theo từ khóa
Quản lý giỏ hàng & Đặt hàng Có hỗ trợ Có hỗ trợ Hỗ trợ đầy đủ, cập nhật thời gian thực
Đánh giá & Bình luận Không hỗ trợ Không hỗ trợ Hỗ trợ chấm sao và gửi nhận xét
Phân hệ Quản trị (Admin) Tách biệt/Web Không rõ ràng Tích hợp quản lý trực tiếp trên ứng dụng
Định vị & Bản đồ Chỉ hiển thị địa chỉ text Danh sách chi nhánh text Tích hợp bản đồ trực quan Google Maps
Tốc độ & Tính ổn định Tải chậm, hay lỗi hiển thị Lỗi đường dẫn ảnh, chưa hoàn thiện Đồng bộ nhanh, lưu trữ cục bộ khi mất mạng

Cấu trúc dữ liệu JSON Realtime Database

Cơ sở dữ liệu được phi chuẩn hóa và tổ chức dưới dạng cây NoSQL JSON:

Node dữ liệu Các trường thông tin chính (Fields) Mục đích sử dụng
User Name, Password, Phone, IsStaff Lưu trữ tài khoản và phân quyền người dùng/quản trị
Category Image, Name Lưu trữ danh mục các loại gạo (Gạo thơm, Gạo nếp, Gạo tấm...)
Foods Name, Image, Price, Discount, Description, MenuId Lưu thông tin chi tiết từng mặt hàng gạo
Rating UserPhone, FoodId, RateValue, Comments Quản lý điểm số đánh giá và ý kiến phản hồi
Orders Name, Address, Phone, Total, Status, Foods Quản lý đơn hàng và trạng thái xử lý (Đã đặt, Đang giao, Đã giao)
Banner Id, Name, Image Quản lý danh sách hình ảnh trình chiếu quảng cáo

Môi trường triển khai và công cụ thực nghiệm

  • Môi trường phát triển: Android Studio, JDK (Java Development Kit).
  • Môi trường đám mây: Firebase Console, Google Cloud Platform (Google Maps API).
  • Thiết bị thử nghiệm: Thiết bị di động thông minh chạy hệ điều hành Android và máy ảo Android Emulator.

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

Kết quả chính

  • Xây dựng hoàn chỉnh ứng dụng di động: Triển khai thành công ứng dụng bán gạo trên nền tảng Android với 2 phân hệ chức năng riêng biệt cho Khách hàng và Quản trị viên.
  • Hoàn thiện đầy đủ các luồng nghiệp vụ:
    • Phía Khách hàng: Thực hiện đầy đủ quy trình từ đăng ký, đăng nhập, tìm kiếm sản phẩm, quản lý giỏ hàng, đặt hàng trực tuyến, theo dõi lịch sử đơn hàng đến gửi đánh giá/bình luận sản phẩm.
    • Phía Quản trị viên: Thực hiện trọn vẹn các thao tác CRUD danh mục banner, loại gạo, sản phẩm gạo và cập nhật trạng thái đơn hàng theo thời gian thực.
  • Tích hợp dịch vụ đám mây hiệu quả: Ứng dụng vận hành ổn định trên nền tảng Firebase, tự động đồng bộ hóa dữ liệu thời gian thực giữa thiết bị của quản trị viên và khách hàng, đồng thời hỗ trợ lưu đệm dữ liệu cục bộ khi thiết bị mất kết nối mạng.

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

  • Ứng dụng giải pháp kiến trúc Backend-as-a-Service (Firebase) cho các bài toán thương mại điện tử quy mô vừa và nhỏ nhằm giảm thiểu chi phí đầu tư hạ tầng máy chủ, tối ưu hóa thời gian triển khai ứng dụng.
  • Đề xuất mô hình thiết kế giao diện tối giản, tập trung vào trải nghiệm mua sắm nhanh chóng cho các mặt hàng nông sản thiết yếu, khắc phục hoàn toàn nhược điểm tải chậm và lỗi đường dẫn của các ứng dụng khảo sát trước đó.

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

  • Cung cấp tài liệu phân tích, thiết kế hệ thống chi tiết (Use Case, Sequence Diagram, NoSQL JSON Schema) cho bài toán thương mại điện tử chuyên ngành phân phối gạo trên thiết bị di động.
  • Minh chứng tính khả thi và hiệu quả của việc kết hợp Android SDK với hệ sinh thái Google Firebase trong việc xây dựng các ứng dụng di động đòi hỏi tính đồng bộ dữ liệu thời gian thực.

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

Hạn chế

  • Cấu trúc cơ sở dữ liệu dạng cây NoSQL JSON của Firebase Realtime Database gây khó khăn cho việc thực hiện các câu lệnh truy vấn phức tạp, thống kê báo cáo doanh thu nhiều chiều hoặc phân tích dữ liệu bán hàng nâng cao.
  • Ứng dụng chưa tích hợp cổng thanh toán trực tuyến tự động (qua thẻ ngân hàng, ví điện tử) mà chủ yếu áp dụng phương thức nhận hàng thanh toán hoặc xác nhận thủ công.
  • Các tính năng nâng cao như gợi ý sản phẩm dựa trên hành vi mua sắm hoặc chatbot tự động hỗ trợ khách hàng chưa được tích hợp trong phạm vi nghiên cứu của khóa luận.

Hướng nghiên cứu tiếp

  • Nâng cấp và chuyển đổi mô hình cơ sở dữ liệu sang Cloud Firestore để tối ưu hóa khả năng truy vấn đa điều kiện và mở rộng quy mô dữ liệu đa vùng (Multi-region).
  • Tích hợp các cổng thanh toán điện tử trực tuyến thông dụng để đa dạng hóa phương thức giao dịch cho khách hàng.
  • Bổ sung hệ thống Chatbot thông minh và tính năng thông báo đẩy tự động (FCM) để chăm sóc khách hàng và cập nhật tình trạng khuyến mãi theo thời gian thực.
  • Phát triển phiên bản đa nền tảng (hỗ trợ thêm hệ điều hành iOS và nền tảng Web) nhằm đồng bộ hệ sinh thái tiếp cận người dùng.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo thiết thực đối với:

  • Sinh viên ngành Công nghệ Thông tin, Công nghệ Phần mềm: Sử dụng làm tài liệu tham khảo chuẩn mực về phương pháp phân tích yêu cầu phần mềm, kỹ thuật đặc tả Use Case, thiết kế biểu đồ tương tác Sequence Diagram và thiết kế giao diện ứng dụng di động trên Android Studio.
  • Lập trình viên phát triển ứng dụng di động: Tham khảo quy trình tích hợp và sử dụng các dịch vụ của Google Firebase (Realtime Database, Authentication, Cloud Storage, Query) trong các dự án thực tế.
  • Nội dung có giá trị tham khảo cao nhất:
    • Chương 2 và Chương 3: Phần đặc tả ca sử dụng chi tiết (bảng luồng sự kiện chính, biến thể, ngoại lệ) và hệ thống biểu đồ tuần tự mô tả các chức năng đăng nhập, đăng ký, đánh giá, đặt hàng và quản lý sản phẩm.
    • Mô hình cấu trúc JSON NoSQL: Cung cấp giải pháp phân cấp dữ liệu thực tế cho một ứng dụng thương mại điện tử vừa và nhỏ.

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

1. Khóa luận sử dụng những dịch vụ cụ thể nào của Google Firebase?

Khóa luận đã nghiên cứu và triển khai các dịch vụ chính của Firebase bao gồm: Firebase Realtime Database (lưu trữ và đồng bộ dữ liệu JSON thời gian thực), Firebase Authentication (xác thực và quản lý tài khoản người dùng), Firebase Storage (lưu trữ hình ảnh sản phẩm và banner), Firebase Cloud Messaging (hạ tầng gửi thông báo), cùng cơ chế truy vấn dữ liệu Firebase Database Query.

2. Hai tác nhân chính trong hệ thống Use Case có các quyền hạn cụ thể nào?

Hệ thống gồm 2 tác nhân chính:

  • Khách hàng (User): Có quyền đăng ký, đăng nhập, đổi/quên mật khẩu, chỉnh sửa thông tin cá nhân, xem và tìm kiếm sản phẩm, quản lý giỏ hàng, đặt hàng, thêm sản phẩm yêu thích, viết bình luận/đánh giá sao và liên hệ với cửa hàng.
  • Quản trị viên (Admin): Có quyền đăng nhập vào phân hệ quản lý, thực hiện thêm/sửa/xóa Banner quảng cáo, thêm/sửa/xóa Loại sản phẩm, thêm/sửa/xóa Sản phẩm (kèm giá và giảm giá), xem chi tiết đơn hàng, cập nhật trạng thái đơn hàng (xử lý/giao hàng) và xóa đơn hàng.

3. Nhược điểm chính của các ứng dụng bán gạo trên thị trường mà tác giả đã chỉ ra khi khảo sát là gì?

Tác giả đã khảo sát hai ứng dụng "Gạo Ngon" và "Gạo Bách Khoa Duy Nhất", chỉ ra các hạn chế: tính năng còn trùng lặp, thiếu công cụ tìm kiếm sản phẩm theo tên, ứng dụng tải chậm, màu sắc giao diện chưa tối ưu, thường xuyên gặp lỗi hiển thị đường dẫn hình ảnh và nhiều tính năng chưa hoàn thiện dữ liệu.

4. Cơ sở dữ liệu của ứng dụng được tổ chức như thế nào trên Firebase Realtime Database?

Cơ sở dữ liệu được tổ chức dưới dạng cấu trúc cây JSON NoSQL (parent-children) bao gồm 7 nhóm node dữ liệu chính: User (thông tin tài khoản người dùng), Admin (thông tin tài khoản quản trị), Category (danh mục loại gạo), Foods (chi tiết từng sản phẩm gạo), Rating (đánh giá sao và bình luận), Orders (thông tin đơn đặt hàng) và Banner (hình ảnh quảng cáo).

5. Quy trình đặt hàng của tác nhân Khách hàng được đặc tả qua các bước nào?

Theo đặc tả Use Case Đặt hàng, quy trình diễn ra qua 3 bước chính:

  1. Từ màn hình chính, màn hình danh sách sản phẩm hoặc chi tiết sản phẩm, khách hàng nhấn chọn biểu tượng Giỏ hàng.
  2. Tại màn hình giỏ hàng, khách hàng kiểm tra lại danh sách sản phẩm và nhấn nút "Đặt hàng".
  3. Khách hàng nhập địa chỉ nhận hàng, ghi chú đơn hàng, lựa chọn phương thức thanh toán và xác nhận hoàn tất để hệ thống lưu đơn hàng vào node Orders trên Firebase.

Kết luận

Khóa luận tốt nghiệp "Xây dựng ứng dụng bán gạo trên nền tảng Android" của nhóm sinh viên Trường Đại học Sư phạm Kỹ thuật TP.HCM đã hoàn thành trọn vẹn mục tiêu nghiên cứu và hiện thực hóa một ứng dụng di động thương mại điện tử chuyên biệt cho ngành hàng lương thực thiết yếu. Bằng việc kết hợp hiệu quả giữa Android SDK và nền tảng đám mây Google Firebase, đề tài đã giải quyết tốt bài toán đồng bộ dữ liệu thời gian thực và cung cấp đầy đủ các tính năng nghiệp vụ cho cả người mua và người quản lý. Công trình là tài liệu học thuật hoàn chỉnh, thể hiện phương pháp phân tích thiết kế phần mềm bài bản và có giá trị tham khảo thực tiễn cao cho sinh viên ngành công nghệ phần mềm và lập trình di động.