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

Đồ án tốt nghiệp đại học ngành Công nghệ thông tin của sinh viên Lê Thị Trúc Vy (Trường Đại học Sư phạm Kỹ thuật – Đại học Đà Nẵng, khóa 2019–2023) tập trung giải quyết bài toán quản trị vận hành và bán hàng tại cơ sở kinh doanh đồ uống tư nhân. Bối cảnh nghiên cứu xuất phát từ sự bùng nổ của mạng Internet, các thiết bị di động thông minh và xu hướng thương mại điện tử hóa dịch vụ ăn uống tại Việt Nam. Thực tế giai đoạn bùng phát dịch bệnh Covid-19 cho thấy các cơ sở kinh doanh dịch vụ ăn uống chịu ảnh hưởng nghiêm trọng khi không thể phục vụ khách hàng tại chỗ, đặt ra yêu cầu cấp thiết về việc số hóa kênh bán hàng trực tuyến.

Tại quán Sahami ở thành phố Đà Nẵng, mô hình hoạt động mang tính chất kinh doanh tư nhân với quy mô và hình thức nghiệp vụ nhỏ. Trước khi xây dựng phần mềm, hoạt động quản trị bán hàng chủ yếu thực hiện theo phương thức truyền thống trên giấy tờ. Cách làm thủ công này bộc lộ nhiều điểm hạn chế như dễ gây sai sót trong xử lý đơn, thất lạc thông tin đơn hàng, quản lý danh mục và dữ liệu khách hàng thiếu đồng bộ, đồng thời chưa tạo được sự tiện lợi cho người dùng khi có nhu cầu đặt hàng từ xa.

Nhằm giải quyết bất cập trên, đề tài xác định mục tiêu và hệ thống nhiệm vụ nghiên cứu cụ thể:

  • Mục tiêu nghiên cứu: Xây dựng ứng dụng di động hỗ trợ giới thiệu danh mục đồ uống của quán Sahami đến khách hàng, cho phép người dùng tìm kiếm, xem chi tiết và đặt hàng trực tuyến mà không cần đến trực tiếp quán; đồng thời cung cấp giao diện quản trị giúp ban quản lý quán Sahami kiểm soát đơn hàng, dữ liệu sản phẩm, khách hàng và thống kê doanh thu một cách chính xác.
  • Hệ thống nhiệm vụ nghiên cứu (gồm 7 nhiệm vụ theo đề cương phê duyệt):
    1. Thu thập thông tin, tài liệu liên quan và khảo sát nghiệp vụ thực tế tại cơ sở.
    2. Phân tích và thiết kế các chức năng nghiệp vụ của hệ thống.
    3. Phân tích và thiết kế cơ sở dữ liệu.
    4. Thiết kế giao diện cho các chức năng của ứng dụng.
    5. Xây dựng và hoàn thiện hệ thống ứng dụng phần mềm.
    6. Kiểm thử ứng dụng trên môi trường thử nghiệm.
    7. Hoàn thành báo cáo tổng hợp đồ án tốt nghiệp.
  • Đối tượng nghiên cứu: Khách hàng có nhu cầu đặt đồ uống trực tuyến; đội ngũ quản lý và nhân viên tại quán đồ uống Sahami; các tài liệu kỹ thuật, tài liệu tham khảo chuyên ngành công nghệ thông tin.
  • Phạm vi nghiên cứu:
    • Không gian và nghiệp vụ: Áp dụng thực tế cho quán Sahami – mô hình kinh doanh đồ uống tư nhân quy mô nhỏ tại địa bàn thành phố Đà Nẵng, tập trung vào nghiệp vụ quản lý bán đồ uống, hiển thị thông tin dinh dưỡng, kiểm soát trạng thái đơn hàng và xử lý đơn hàng.
    • Kỹ thuật: Nghiên cứu trong phạm vi thiết kế và triển khai ứng dụng di động trên nền tảng Dart, Flutter và dịch vụ lưu trữ dữ liệu Firebase.

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

Để xây dựng hệ thống phần mềm, tác giả đã hệ thống hóa các cơ sở lý thuyết về ngôn ngữ lập trình, bộ công cụ giao diện người dùng, dịch vụ dữ liệu đám mây và kiến trúc phần mềm chuyên dụng:

  • Ngôn ngữ lập trình Dart: Ngôn ngữ hướng đối tượng do Google phát triển, giữ vai trò nền tảng cho Flutter. Dart có cú pháp rõ ràng, cơ chế kiểm tra kiểu dữ liệu tĩnh an toàn (type-safe), tối ưu hóa biên dịch trước thời hạn (Ahead-Of-Time - AOT) thành mã máy ARM và x86 trên di động, hoặc chuyển mã sang JavaScript trên nền tảng web. Ngôn ngữ hỗ trợ mô hình lập trình phản ứng (Reactive programming), thu gom rác tự động (Garbage Collection) nhanh và xử lý bất đồng bộ thông qua hai đối tượng cốt lõi là Future và Stream.
  • Flutter UI Framework: Bộ công cụ giao diện mã nguồn mở của Google phát hành tháng 5 năm 2017, cho phép xây dựng ứng dụng đa nền tảng (Android, iOS, Linux, macOS, Windows, Web) từ một cơ sở mã nguồn duy nhất (codebase). Framework hoạt động trên nguyên lý quản lý cây Widget phân cấp, cung cấp tính năng Hot-reload hỗ trợ cập nhật giao diện nhanh, tích hợp sẵn hệ thống điều hướng Navigator và hỗ trợ quản lý trạng thái động thông qua StatefulWidget.
  • Mô hình kiến trúc phần mềm: Đồ án áp dụng mô hình MVVM (Model - View - ViewModel). Trong đó:
    • Model: Đại diện cho cấu trúc dữ liệu và logic nghiệp vụ.
    • Repository: Đóng vai trò tầng trung gian truy xuất dữ liệu từ cơ sở dữ liệu hoặc API, trả về kết quả dưới dạng các đối tượng Future.
    • ViewModel: Điều phối dữ liệu từ Repository sang tầng hiển thị, sử dụng thư viện sqflite khi thao tác cơ sở dữ liệu cục bộ và plugin ScopedModel để truyền dữ liệu và tự động kích hoạt cập nhật trạng thái từ Widget cha sang Widget con.
    • View: Xây dựng bằng ScopedModel kết hợp thành phần giao diện chuẩn Scaffold trong gói thư viện package:flutter/material.dart (chứa các thành phần như AppBar, Drawer, Floating Button, BottomNavigation).
  • Dịch vụ cơ sở dữ liệu đám mây Firebase: Dịch vụ đám mây của Google cung cấp cơ sở dữ liệu thời gian thực (Realtime Database), định dạng lưu trữ dạng JSON, hỗ trợ cơ chế đồng bộ dữ liệu thời gian thực đến tất cả kết nối máy khách (client). Hệ thống bảo mật thông qua giao thức kết nối an toàn SSL chứng nhận 2048-bit. Khi mất kết nối mạng, dữ liệu được ghi nhận vào bộ nhớ cục bộ (local storage) và tự động đồng bộ hóa ngược lên máy chủ Firebase ngay khi khôi phục mạng.
  • Phương pháp nghiên cứu thực tế:
    • Phương pháp khảo sát và tham khảo thực tế: Khảo sát quy trình gọi món tại quán Sahami; phân tích trải nghiệm và tính năng từ các ứng dụng đặt món hiện có trên thị trường như ShopeeFood, GoFood, Loship, Baemin.
    • Phương pháp phân tích và thiết kế hệ thống: Sử dụng công cụ StarUML để mô hình hóa hệ thống bằng sơ đồ ca sử dụng (Use Case), sơ đồ hoạt động (Activity Diagram), kịch bản chi tiết và lược đồ thực thể quan hệ (ERD).
    • Phương pháp thực nghiệm công nghệ: Sử dụng Android Studio và Visual Studio Code làm môi trường tích hợp phát triển (IDE); ứng dụng Flutter Inspector để phân tích cây Widget, kiểm tra layout và gỡ lỗi giao diện; sử dụng Postman để kiểm thử các phương thức HTTP (GET, POST, PUT, DELETE) đối với các dịch vụ RESTful.
  • Nguồn dữ liệu: Tài liệu phát triển chính thức từ các cổng kỹ thuật https://flutter.dev/, https://firebase.google.com và dữ liệu thực tế về danh mục, bảng giá, định lượng dinh dưỡng của quán Sahami.

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

Đồ án được thiết kế chuyên biệt cho hệ thống ứng dụng di động quản lý đặt đồ uống, bao gồm các thông số kỹ thuật, kiến trúc phân tầng và cấu trúc cơ sở dữ liệu được tác giả thiết lập chi tiết.

Kiến trúc phân tầng và công nghệ triển khai

Hệ thống triển khai theo mô hình kiến trúc MVVM kết hợp các dịch vụ nền tảng:

[View (Flutter Widgets, Scaffold)] <---> [ViewModel (ScopedModel)] <---> [Repository (Future/Async)] <---> [Database (Firebase Realtime DB / sqflite)]
  • Môi trường phát triển: Soạn thảo mã nguồn trên Android Studio và Visual Studio Code, sử dụng hệ thống quản lý phiên bản Git tích hợp.
  • Công cụ gỡ lỗi và kiểm thử:
    • Flutter Inspector: Kiểm tra cấu trúc cây Widget, đo lường kích thước, số lượng phần tử render, thời gian xử lý và kiểm tra phản ứng của trạng thái ứng dụng.
    • Postman: Kiểm thử các giao thức kết nối dữ liệu và chạy kịch bản kiểm tra tự động (assert) bằng ngôn ngữ JavaScript.

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

Cơ sở dữ liệu của hệ thống được chuẩn hóa thành 8 bảng thực thể chính với các trường thuộc tính, kiểu dữ liệu và ràng buộc được tác giả quy định cụ thể:

Tên bảng Khóa chính (PK) Khóa ngoại (FK) Các trường thuộc tính và kiểu dữ liệu Diễn giải chức năng nghiệp vụ
Bảng phân quyền (auth) auth_id (string) Không user, passwork, role (string) Lưu trữ thông tin tài khoản đăng nhập, mật khẩu và vai trò phân quyền.
Bảng khách hàng (customer) customer_id (string) auth_id (string) customer_name (string), contact (string), email (string), dob (datestamp), gender (string) Quản lý thông tin định danh, liên hệ, ngày sinh và giới tính của khách hàng.
Bảng nhân viên (staff) staff_id (string) auth_id (string) staff_name (string), contact (string), email (string) Quản lý thông tin cá nhân và thông tin liên hệ của nhân viên xử lý đơn.
Bảng danh mục (category) category_id (string) Không category_name (string) Phân loại các nhóm sản phẩm đồ uống của quán.
Bảng nước uống (product) product_id (string) category_id (string) product_name (string), description (string), price (double), price_sale (double), serving_size (int), saturated_fat (int), protein (int), sodium (int), sugars (int), caffeine (int), status (string), image (string) Quản lý thông tin chi tiết của đồ uống, bao gồm các thành phần dinh dưỡng (chất béo bão hòa, đạm, natri, đường, caffeine) và hình ảnh.
Bảng đánh giá (review) review_id (string) id_product (string) star_number (int), comment (string), status (string) Lưu trữ điểm số xếp hạng sao, nội dung bình luận và trạng thái kiểm duyệt đánh giá.
Bảng đơn hàng (order) order_id (string) customer_id (string), staff_id (string) total (int), order_status (string), payment_status (string), note (string), create_at (datestamp), update_at (datestamp), delivery_charge (double), address (string) Ghi nhận tổng giá trị thanh toán, trạng thái xử lý, phí giao hàng, địa chỉ và thời gian tạo/cập nhật đơn.
Bảng chi tiết đơn hàng order_id (string), product_id (string) order_id (string), product_id (string) quantity (int), delivery_type (string), status (string), brown_sugar_syrup (int), caramel_syrup (int), vanilla_syrup (int), cookie_crumble_topping (int) Quản lý số lượng từng món trong đơn kèm tùy chọn định lượng siro (đường nâu, caramel, vani) và topping bánh quy vụn.
Bảng thanh toán (payment) payment_id (string) order_id (string) payment_date (int), type (string) Ghi nhận thời gian và hình thức thanh toán (tiền mặt khi nhận hàng hoặc ví điện tử).

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

Báo cáo đồ án tốt nghiệp của tác giả được tổ chức thành 3 chương nội dung cốt lõi:

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

Chương này tập trung trình bày các nền tảng công nghệ được lựa chọn để ứng dụng vào hệ thống:

  • Ngôn ngữ Dart: Phân tích chi tiết về cú pháp ngắn gọn, cơ chế type-safe, cấu trúc thư viện cốt lõi, khả năng biên dịch đa nền tảng và cơ chế xử lý luồng bất đồng bộ bằng Future và Stream. Dart được đánh giá phù hợp cho lập trình Reactive UI nhờ tốc độ cấp phát bộ nhớ nhanh.
  • Framework Flutter: Trình bày lịch sử phát hành của Google (tháng 5/2017), khả năng xuất bản đa nền tảng từ một cơ sở mã nguồn. Phân tích các ưu thế vượt trội so với React Native như: giảm thiểu việc cấu hình thủ công, công cụ flutter doctor hỗ trợ chẩn đoán môi trường, tính năng Hot-reload, tích hợp sẵn bộ điều hướng Navigator mà không phụ thuộc gói bên thứ ba, và kiến trúc "Mọi thứ đều là Widget" với StatefulWidget.
  • Dịch vụ cơ sở dữ liệu Firebase: Giới thiệu cơ chế hoạt động trên nền tảng đám mây Google Cloud, kiến trúc Realtime Database lưu trữ dưới cấu trúc JSON, cơ chế bảo mật kết nối SSL với chứng nhận 2048-bit, và khả năng lưu trữ bộ đệm cục bộ khi mất mạng để tự động đồng bộ hóa khi tái lập kết nối.
  • Công cụ và hệ thống phụ trợ: Trình bày môi trường lập trình Android Studio (tích hợp Git, Flutter Inspector kiểm tra hiệu suất và cây Widget); công cụ Postman kiểm thử RESTful API và viết assert tự động bằng JavaScript; phân tích các hệ thống dịch vụ lõi của thiết bị di động gồm Content Provider, Resource Manager, Notification Manager, Activity Manager.
  • Kiến trúc phần mềm: Trình bày chi tiết mô hình MVVM, phân biệt với MVC, cơ chế hoạt động của Repository trả về Future, thư viện sqflite, plugin ScopedModel truyền trạng thái đến View và áp dụng Material Design thông qua lớp Scaffold.

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

Chương 2 mô hình hóa toàn bộ nghiệp vụ và kỹ thuật của hệ thống ứng dụng:

  • Xác định 3 tác nhân tham gia hệ thống: Khách vãng lai, Khách hàng (đã đăng ký tài khoản) và Quản trị viên (Admin).
  • Đặc tả yêu cầu nghiệp vụ và yêu cầu phần mềm:
    • Khách vãng lai: Xem trang chủ hiển thị đồ uống đặc trưng, xem chi tiết sản phẩm (kèm thông tin dinh dưỡng và đánh giá), tìm kiếm sản phẩm theo tên hoặc bộ lọc giá/danh mục, cập nhật giỏ hàng (thêm món, đổi số lượng, xóa món), thực hiện đăng ký tài khoản.
    • Khách hàng: Bao gồm toàn bộ chức năng của khách vãng lai, bổ sung tính năng đăng nhập/đăng xuất (hỗ trợ tài khoản Facebook, Gmail, quên mật khẩu), thanh toán đơn hàng (chọn hình thức thanh toán khi nhận hàng hoặc ví điện tử, phương thức giao hàng, ghi chú, kiểm tra nhắc nhở địa chỉ bắt buộc), theo dõi tình trạng đơn hàng tại tab "Hiện tại", xem lịch sử đơn hàng theo mốc thời gian, gửi nhận xét và chấm điểm sao, cập nhật thông tin tài khoản cá nhân.
    • Quản trị viên: Đăng nhập hệ thống; quản lý cập nhật khách hàng (thêm, sửa, xóa); cập nhật sản phẩm đồ uống; cập nhật đơn hàng và thay đổi trạng thái đơn; cập nhật danh mục sản phẩm; kiểm duyệt và thay đổi trạng thái nhận xét; cập nhật hồ sơ cá nhân; theo dõi biểu đồ thống kê đơn hàng và doanh thu theo các mốc thời gian (hôm nay, tuần, tháng, năm); theo dõi tổng số lượng khách hàng, sản phẩm, doanh thu và đơn hàng.
  • Kịch bản Use Case và phác thảo giao diện (Form phác thảo): Thiết lập 14 bảng kịch bản Use Case chi tiết với các trường thông tin chuẩn hóa (STT, Use case name, Description, Actor, Input, Output, Basic flow, Alternative flow, Exception flow), tương ứng với các form giao diện phác thảo từ Hình 2.1 đến Hình 2.14:
    • Use case Đăng ký (Bảng 2.1, Hình 2.2).
    • Use case Xem trang chủ (Bảng 2.2, Hình 2.3).
    • Use case Xem chi tiết sản phẩm (Bảng 2.3, Hình 2.4).
    • Use case Tìm kiếm sản phẩm (Bảng 2.4).
    • Use case Cập nhật giỏ hàng (Bảng 2.5, Hình 2.5).
    • Use case Thanh toán (Bảng 2.6, Hình 2.7).
    • Use case Theo dõi tình trạng đơn hàng (Bảng 2.7, Hình 2.8).
    • Use case Nhận xét và đánh giá (Bảng 2.8, Hình 2.9).
    • Use case Xem lịch sử đơn hàng của khách hàng (Bảng 2.9, Hình 2.10).
    • Use case Cập nhật khách hàng của admin (Bảng 2.10, Hình 2.11).
    • Use case Cập nhật nước uống của admin (Bảng 2.11, Hình 2.12).
    • Use case Cập nhật thông tin cá nhân (Bảng 2.12).
    • Use case Xem thống kê tình trạng đơn hàng dạng biểu đồ tròn (Bảng 2.13, Hình 2.14).
    • Use case Xem lịch sử đơn hàng (Bảng 2.14).
  • Thiết kế cơ sở dữ liệu quan hệ: Xây dựng sơ đồ quan hệ thực thể (ERD) và chuẩn hóa cấu trúc 8 bảng dữ liệu logic chi tiết.

CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH

Chương 3 trình bày kết quả hiện thực hóa giao diện phần mềm sau khi tích hợp:

  • Phân hệ người dùng (Khách vãng lai và Khách hàng):
    • Giao diện trang chủ (Hình 3.1): Hiển thị danh sách đồ uống phân theo nhóm và các loại nước uống đặc trưng của quán Sahami.
    • Giao diện chi tiết sản phẩm (Hình 3.2): Cung cấp thông tin mô tả món ăn, giá bán và giá khuyến mãi.
    • Giao diện thông tin dinh dưỡng (Hình 3.3): Trình bày chi tiết các chỉ số vi chất gồm chất béo bão hòa (saturated_fat), chất đạm (protein), natri (sodium), đường (sugars) và hàm lượng caffeine.
    • Giao diện xem đánh giá (Hình 3.4): Hiển thị phản hồi từ người mua và số sao đánh giá.
    • Giao diện tùy chọn topping (Hình 3.5): Cho phép người dùng tùy biến lượng đường, đá, kích cỡ và các loại phụ gia đi kèm như siro đường nâu, siro caramel, siro vani và lớp phủ bánh quy vụn (cookie_crumble_topping).
    • Giao diện thanh toán, đơn hàng chờ thanh toán, lịch sử đơn hàng, profile và tìm kiếm sản phẩm: Hỗ trợ nhập và nhắc nhở địa chỉ giao hàng, theo dõi đơn tại tab hiện tại và xem lại các giao dịch đã thực hiện.
  • Phân hệ dành cho Quản trị viên (Admin):
    • Giao diện trang chủ admin (Hình 3.11): Bảng điều khiển tích hợp hiển thị tổng số sản phẩm, đơn hàng, khách hàng, tổng doanh thu và biểu đồ tròn (piechart) thể hiện trạng thái đơn hàng theo mốc thời gian hôm nay, tuần, tháng, năm.
    • Giao diện cập nhật và tạo mới khách hàng (Hình 3.12, Hình 3.13): Cho phép thêm mới, chỉnh sửa thông tin hoặc xóa tài khoản khách hàng khỏi hệ thống qua hộp thoại xác nhận popup.
    • Giao diện cập nhật và thêm mới sản phẩm (Hình 3.14, Hình 3.15): Cập nhật danh mục, giá, mô tả, ảnh đại diện và các thông số dinh dưỡng của nước uống.
    • Giao diện quản lý đơn hàng (Hình 3.16): Tiếp nhận đơn hàng, thay đổi trạng thái xử lý đơn và trạng thái thanh toán.

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

Căn cứ trên các nội dung được công bố trong báo cáo, đồ án đã đạt được các kết quả cụ thể sau:

  • Kết quả kỹ thuật và sản phẩm:
    • Xây dựng hoàn chỉnh ứng dụng di động quản lý đặt nước uống tại quán Sahami chạy trên nền tảng Flutter/Dart, kết nối cơ sở dữ liệu thời gian thực Firebase.
    • Đặc tả hoàn chỉnh 14 kịch bản Use Case nghiệp vụ, bao quát đầy đủ quy trình từ duyệt sản phẩm, tùy biến nguyên liệu, thanh toán, đến xử lý đơn hàng và thống kê.
    • Hiện thực hóa cấu trúc cơ sở dữ liệu gồm 8 bảng dữ liệu quan hệ, tích hợp các trường quản lý thông tin dinh dưỡng chuyên sâu và danh mục phụ gia (siro, topping).
    • Thiết kế thành công hệ thống màn hình chức năng cho cả hai phân hệ: khách hàng di động và quản trị viên, bao gồm bảng điều khiển thống kê trực quan bằng biểu đồ tròn (piechart).
  • Đóng góp thực tiễn theo công bố của tác giả:
    • Cung cấp công cụ đặt hàng trực tuyến tiện lợi cho khách hàng của quán Sahami, giúp người mua tiết kiệm thời gian, chi phí đi lại và có thể đặt món từ bất kỳ đâu.
    • Hỗ trợ quán Sahami chuyển đổi quy trình bán hàng và quản lý từ phương thức ghi chép sổ sách thủ công sang hệ thống số hóa tự động, hạn chế tối đa nguy cơ sai sót dữ liệu, thất thoát thông tin đơn hàng.
    • Nâng cao hiệu quả tương tác giữa quán và khách hàng, tạo cơ sở để quản lý quán nắm bắt doanh số, kiểm soát khối lượng giao dịch và tối ưu hóa quy trình phục vụ.
  • Đóng góp về mặt đào tạo chuyên môn: Đồ án là công trình nghiên cứu ứng dụng độc lập giúp tác giả vận dụng tổng hợp kiến thức chuyên ngành Công nghệ thông tin; làm chủ quy trình phân tích thiết kế phần mềm, kỹ thuật lập trình đa nền tảng với Flutter Framework, ngôn ngữ Dart và quản trị cơ sở dữ liệu đám mây Firebase.

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

  • Hạn chế của đề tài:
    • Quy mô ứng dụng mới dừng lại ở phạm vi một quán đồ uống tư nhân đơn lẻ với hình thức nghiệp vụ nhỏ tại thành phố Đà Nẵng (quán Sahami).
    • Tính năng thanh toán điện tử trên ứng dụng mới dừng lại ở bước ghi nhận hình thức (chọn thanh toán khi nhận hàng hoặc chuyển khoản ví điện tử) theo mô hình kịch bản nghiệp vụ, chưa tích hợp trực tiếp cổng API trung gian thanh toán tự động của các ngân hàng thương mại.
    • Hệ thống kiểm soát cơ sở dữ liệu tập trung vào các chức năng CRUD cơ bản và thống kê báo cáo theo các mốc thời gian cố định.
  • Hướng phát triển tiếp theo:
    • Tiếp tục hoàn thiện, tối ưu hóa hiệu năng giao diện và trải nghiệm người dùng dựa trên phản hồi thực tế của khách hàng quán Sahami.
    • Mở rộng tích hợp các cổng thanh toán trực tuyến tự động nhằm nâng cao tính tiện dụng khi thanh toán không dùng tiền mặt.
    • Nâng cấp các mô-đun quản trị để có thể áp dụng mở rộng cho các chuỗi cửa hàng đồ uống hoặc các mô hình kinh doanh F&B có quy mô nghiệp vụ lớn hơn.

Giá trị tham khảo

Đồ án là tài liệu học thuật và kỹ thuật có giá trị thực tiễn đối với:

  • Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm: Là tài liệu tham khảo trực quan về cấu trúc một đồ án tốt nghiệp đại học định hướng xây dựng ứng dụng di động; cung cấp bài mẫu về quy trình phân tích thiết kế hệ thống từ sơ đồ ca sử dụng, kịch bản nghiệp vụ (Use Case Specification), sơ đồ ERD cho đến thiết kế giao diện chi tiết.
  • Người phát triển ứng dụng di động với Flutter và Firebase: Cung cấp giải pháp triển khai thực tế mô hình MVVM kết hợp ScopedModel, kỹ thuật tương tác dữ liệu bất đồng bộ với đối tượng Future, và phương pháp thiết kế cấu trúc CSDL Realtime Database dạng JSON cho bài toán thương mại điện tử ngành F&B.
  • Phần đáng tham khảo nhất trong văn bản: Bảng đặc tả chi tiết 14 kịch bản Use Case ở Chương 2 và cấu trúc thiết kế bảng dữ liệu nước uống tích hợp các trường thành phần dinh dưỡng (saturated_fat, protein, sodium, sugars, caffeine) cùng các trường tùy chọn nguyên liệu (brown_sugar_syrup, caramel_syrup, vanilla_syrup, cookie_crumble_topping).

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

1. Ứng dụng đặt đồ uống quán Sahami được xây dựng trên nền tảng công nghệ và ngôn ngữ lập trình nào?
Ứng dụng được xây dựng trên bộ công cụ giao diện mã nguồn mở Flutter Framework của Google, sử dụng ngôn ngữ lập trình Dart, kết hợp với dịch vụ cơ sở dữ liệu đám mây Firebase Realtime Database và công cụ thiết kế hệ thống StarUML.

2. Mô hình kiến trúc phần mềm nào được áp dụng để tổ chức mã nguồn của ứng dụng?
Ứng dụng áp dụng mô hình kiến trúc MVVM (Model - View - ViewModel). Trong đó, ViewModel giao tiếp và cập nhật dữ liệu sang tầng View thông qua plugin ScopedModel, còn tầng Repository sử dụng các đối tượng Future của Dart để xử lý dữ liệu bất đồng bộ từ cơ sở dữ liệu.

3. Cơ sở dữ liệu của ứng dụng theo dõi những chỉ số dinh dưỡng và loại phụ gia cụ thể nào của sản phẩm?
Trong bảng nước uống (product), hệ thống lưu trữ 5 chỉ số dinh dưỡng gồm: chất béo bão hòa (saturated_fat), chất đạm (protein), natri (sodium), đường (sugars) và caffeine (caffeine). Ở bảng chi tiết đơn hàng, hệ thống lưu trữ 4 loại thành phần tùy chọn gồm: siro đường nâu, siro caramel, siro vani và lớp phủ bánh quy vụn.

4. Phân hệ quản trị viên (Admin) cung cấp những chức năng thống kê số liệu và báo cáo nào?
Phân hệ quản trị viên cung cấp màn hình bảng điều khiển hiển thị tổng số sản phẩm, tổng số đơn hàng, tổng số khách hàng, tổng doanh thu và biểu đồ tròn (piechart) thể hiện tỷ lệ tình trạng đơn hàng theo 4 mốc thời gian: hôm nay, trong tuần, trong tháng và trong năm.

5. Ứng dụng xử lý như thế nào trong trường hợp khách hàng thực hiện thanh toán nhưng chưa có thông tin địa chỉ giao hàng?
Theo kịch bản Use case thanh toán được đặc tả trong đồ án, nếu địa chỉ của khách hàng đang để trống và người dùng chưa cập nhật thông tin khi đến màn hình thanh toán, hệ thống sẽ tự động kích hoạt thông báo nhắc nhở yêu cầu khách hàng nhập địa chỉ nhận hàng trước khi hoàn tất đơn.

Kết luận

Đồ án tốt nghiệp "Xây dựng ứng dụng quản lý đặt nước uống tại quán Sahami ở thành phố Đà Nẵng" của tác giả Lê Thị Trúc Vy đã giải quyết trọn vẹn bài toán số hóa quy trình bán hàng và quản trị đơn hàng cho một mô hình kinh doanh đồ uống quy mô nhỏ. Đề tài vận dụng thành công nền tảng Flutter, ngôn ngữ Dart và dịch vụ Firebase theo mô hình kiến trúc MVVM, thiết lập được hệ thống chức năng hoàn chỉnh cho khách hàng và ban quản lý. Đây là công trình thực hành kỹ thuật phần mềm có cấu trúc chuẩn mực, cung cấp nguồn tư liệu hữu ích cho việc nghiên cứu và phát triển các hệ thống thương mại điện tử di động tương tự.