Hình 4 pub.devTrong ngữ cảnh của Flutter, "pub package" đề cập đến các gói packages được quản lý và chia sẻ thông qua Pub - một hệ thống quản lý gói của Flutter và Dart.Mỗi gói package c
Trang 1ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
Trang 2BÁO CÁO ĐỒ ÁN 2
ĐỀ TÀI
Giảng viên hướng dẫn: Huỳnh Tuấn Anh
Sinh viên thực hiện:
Nguyễn Đặng Hữu Phúc 20520782
TP Hồ Chí Minh, tháng 12 năm 2023
Trang 3Với lòng biết ơn sâu sắc nhất, nhóm chúng em xin gửi đến quý Thầy Cô ở Khoa Côngnghệ phần mềm – Trường Đại Học Công Nghệ Thông Tin đã cùng với tri thức và tâmhuyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gianhọc tập tại trường Trong đó có thầy Huỳnh Tuấn Anh, thầy đã cung cấp cho chúng emcác định hướng và một đề tài hấp dẫn, tạo tiền đề và động lực cho chúng em tìm hiểunhững công nghệ mới, bổ ích trong quá trình nghiên cứu và phát triển website, nhữngkinh nghiệm quý báu về trải nghiệm người dùng và nghiệp vụ
Ngoài ra, để đồ án được hoàn thành thì không thể nào không cảm ơn những người đãlàm ra đó, cảm ơn các bạn các thành viên trong nhóm đã chăm chỉ và chịu khó hoànthành nhiệm vụ đúng tiến độ
Với những gì đã được giúp đỡ, cuối cùng nhóm đã hoàn thành đồ án có tên: “Ứngdụng Flutter xây dựng ứng dụng e-commerce cho đa nhà cung cấp Trải qua thời gianmột học kỳ thực hiện đề tài Với sự hướng dẫn tận tình cùng những đóng góp quý báucủa thầy và các bạn giúp chúng em hoàn thành tốt hơn báo cáo môn học của mình Bêncạnh việc vận dụng những kiến thức đã được học trên lớp đồng thời kết hợp với việchọc hỏi và tìm hiểu những kiến thức mới Từ đó, nhóm đã vận dụng tối đa những gì đãtiếp thu được để hoàn thành một báo cáo đồ án tốt nhất Tuy nhiên, trong quá trình
Trang 4thực hiện, không tránh khỏi những sai sót Do đó, rất mong nhận được những sự góp ý
từ phía thầy nhằm giúp nhóm hoàn thiện những kiến thức đã học tập và cũng là hànhtrang để nhóm thực hiện tiếp các đề tài khác trong tương lai Xin chân thành cảm ơnthầy và các bạn!
Trân trọng cảm ơn
Thành phố Hồ Chí Minh, tháng 12 năm 2023
Nhóm sinh viên thực hiện
Trang 5NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 6LỜI CẢM ƠN 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ TỔNG QUAN CÔNG NGHỆ 8
5.1 Thiết kế giao diện Figma 8
5.2 Ngôn ngữ Dart 8
5.3 SDK phát triển Flutter 9
5.1 Flutter packages 11
5.2 Visual Studio Code 12
5.4 Github 14
6.Cơ sở lý thuyết 16 CHƯƠNG 3: PHÂN TÍCH, THIẾT KẾ ỨNG DỤNG 16 1.Tổng quan 16 2.Môi trường cài đặt 16 3.Đặc tả yêu cầu chức năng 16 3.1 Use case Diagram 16
3.1.1.1 Sơ đồ Use case 16
3.1.1.2 Danh sách Actors 16
3.1.1.3 Danh sách Use case 17
3.1.1.4 Đặc tả Use case 19
3.2 Activity Digram 25
3.2.1 Đối với quản trị viên (Admin) 25
3.2.2 Đới với nhà bán lẻ (Vendor) 25
Trang 73.2.3 Đối với người dùng (Customer) 26
3.3.1 Đối với quản trị viên (Admin) 27 3.3.2 Đới với nhà bán lẻ (Vendor) 27 3.3.3 Đối với người dùng (Customer) 28
CHƯƠNG 4: THIẾT KẾ CƠ SỞ DỮ LIỆU 28
CHƯƠNG 1: PHẦN MỞ ĐẦU
1 Giới thiệu đề tài.
Việc xây dựng một ứng dụng e-commerce đa nhà cung cấp trên nền tảng công nghệ Flutter là một bước tiến quan trọng trong việc tạo ra một môi trường mua sắm trực tuyến linh hoạt và hiệu quả
Ứng dụng này không chỉ là một cầu nối giữa người mua và các nhà cung cấp mà còn là một hệ thống phức tạp đòi hỏi tích hợp thông tin từ nhiều nguồn khác nhau Công nghệ Flutter sẽ giúp tạo ra giao diện người dùng mượt mà, thuận tiện và linh hoạt trên nhiều thiết bị, từ điện thoại di động đến máy tính bảng
Việc tập trung vào việc kết nối và tối ưu hóa quy trình giao dịch giữa người mua và
đa nhà cung cấp là điểm trọng yếu của dự án Điều này có thể giúp cải thiện trải
nghiệm mua sắm cho người dùng và đồng thời mang lại lợi ích kinh doanh cho các nhà cung cấp
Đặc biệt, việc quản lý thông tin từ nhiều nguồn cung cấp đòi hỏi một cơ sở dữ liệu linh hoạt và khả năng xử lý thông tin một cách chính xác và nhanh chóng Flutter cung cấp công cụ mạnh mẽ để xử lý dữ liệu và tương tác với nguồn thông tin đa
dạng
Mục tiêu của dự án không chỉ đơn thuần là tạo ra một ứng dụng mua sắm trực
tuyến, mà còn là việc xây dựng một môi trường giao dịch minh bạch, công bằng và tạo ra lợi ích đáng kể cho cả người mua và các nhà cung cấp
Với sự tập trung vào tính linh hoạt, hiệu quả và tương tác thực tế, dự án này có thể đem lại sự thay đổi lớn trong lĩnh vực thương mại điện tử và mở ra cơ hội mới cho
cả người tiêu dùng và doanh nghiệp
Trang 82 Lý do chọn đề tài.
● Tính cần thiết và tiềm năng: Thị trường thương mại điện tử đang phát triển mạnh mẽ Việc tạo ra một ứng dụng e-commerce có khả năng kết nối nhiều nhà cung cấp và người dùng có thể đáp ứng nhu cầu mua sắm đa dạng, đồng thời mở ra cơ hội kinh doanh lớn
● Đáp ứng xu hướng công nghệ: Công nghệ Flutter cung cấp sự linh hoạt và khả năng phát triển ứng dụng trên nhiều nền tảng, từ điện thoại di động đến máy tính bảng, từ Android đến iOS Điều này giúp ứng dụng của bạn tiếp cận đa dạng người dùng
● Mục tiêu tối ưu hóa trải nghiệm người dùng: Việc xây dựng một ứng dụng commerce đa nhà cung cấp không chỉ đáp ứng nhu cầu mua sắm mà còn tạo
e-ra trải nghiệm thuận tiện và linh hoạt cho người dùng, từ việc tìm kiếm sản phẩm đến thanh toán
● Thách thức và cơ hội: Quản lý thông tin từ nhiều nguồn cung cấp khác nhau
và đảm bảo tính minh bạch trong quy trình giao dịch là những thách thức, nhưng cũng là cơ hội để tạo ra một hệ thống mua bán minh bạch và công bằng
● Tiềm năng tạo giá trị: Việc tạo ra một nền tảng giao dịch minh bạch và hiệu quả không chỉ mang lại lợi ích kinh doanh mà còn góp phần vào sự phát triểnbền vững của ngành thương mại điện tử và tạo ra giá trị xã hội
Trang 10Hình 2 Dart
Ngôn ngữ Dart là một ngôn ngữ lập trình được phát triển bởi Google, được sử dụng chủ yếu để xây dựng ứng dụng di động và web Dart được thiết kế để kết hợp sự linh hoạt, hiệu suất cao và tính năng dễ đọc, dễ hiểu cho các nhà phát triển
Dart có thể được sử dụng để phát triển ứng dụng di động bằng Flutter, một
framework được sử dụng rộng rãi để xây dựng các ứng dụng di động đa nền tảng (iOS và Android) Nó cũng có thể được sử dụng cho phát triển web thông qua Dart'sweb framework hoặc các dự án khác như AngularDart
Một số đặc điểm chính của Dart bao gồm:
● Tính đa nền tảng: Dart cho phép việc phát triển ứng dụng cho cả iOS và
Android thông qua Flutter
● Cú pháp dễ đọc: Dart có cú pháp gần gũi với nhiều ngôn ngữ lập trình khác,
giúp nhà phát triển nhanh chóng làm quen và viết mã
● Hiệu suất cao: Dart được tối ưu để cung cấp hiệu suất tốt trong việc xử lý
ứng dụng đòi hỏi tính toán cao
● Kiểu an toàn: Dart hỗ trợ kiểu dữ liệu mạnh mẽ, giúp tránh được một số lỗi
phổ biến trong quá trình phát triển
Dart không chỉ được sử dụng trong việc phát triển ứng dụng di động và web mà còn có thể được áp dụng trong các dự án khác như máy chủ hoặc các ứng dụng
Trang 11nền tảng khác.
1.3 SDK phát triển Flutter
Hình 3 Flutter
Flutter là một SDK phát triển ứng dụng di động nguồn mở được tạo ra bởi Google
Nó được sử dụng để phát triển ứng ứng dụng cho Android và iOS, cũng là phương thức chính để tạo ứng dụng cho Google Fuchsia
Flutter sử dụng ngôn ngữ lập trình Dart và sử dụng một tập hợp các widget để xây dựng giao diện người dùng Widget trong Flutter có thể mô tả mọi thứ từ các thành phần nhỏ như nút và hộp văn bản đến các thành phần phức tạp như danh sách cuộn
và biểu đồ
Một số đặc điểm quan trọng của Flutter bao gồm:
● Hot Reload: Cho phép nhà phát triển xem ngay lập tức các thay đổi trong
mã nguồn và giao diện người dùng sau khi chỉnh sửa, giúp tăng tốc quá trình phát triển
● Đa nền tảng: Mã nguồn duy nhất có thể được sử dụng để phát triển ứng
dụng cho cả iOS và Android
● Widget-rich: Flutter cung cấp một bộ sưu tập lớn các widget để xây dựng
giao diện người dùng theo nhiều phong cách khác nhau
● Hiệu suất cao: Với tính năng vẽ giao diện riêng (rendering engine) và tính
tối ưu hóa, Flutter cung cấp hiệu suất tốt cho ứng dụng di động
Flutter đã thu hút sự quan tâm của cộng đồng phát triển ứng dụng di động do khả
Trang 12năng phát triển nhanh, giao diện đẹp và khả năng tái sử dụng mã nguồn một cách hiệu quả.
Ưu điểm của Flutter:
● Đa nền tảng: Flutter cho phép phát triển ứng dụng cho cả iOS và Android từ
một mã nguồn duy nhất, giúp tiết kiệm thời gian và công sức
● Widget-rich và giao diện đẹp: Flutter cung cấp một bộ sưu tập lớn các
widget để xây dựng giao diện người dùng và tạo ra ứng dụng có giao diện đẹp mắt
● Hiệu suất cao: Nhờ vào tính chất vẽ giao diện riêng (rendering engine) và
tối ưu hóa, Flutter cung cấp hiệu suất tốt cho ứng dụng
● Hot Reload: Chức năng này cho phép nhà phát triển xem ngay lập tức các
thay đổi trong mã nguồn và giao diện người dùng sau khi chỉnh sửa, giúp tăng tốc độ phát triển
● Cộng đồng phát triển mạnh mẽ: Flutter có một cộng đồng người dùng rộng
lớn, đồng thời có nhiều tài liệu, hướng dẫn và công cụ hỗ trợ
Nhược điểm của Flutter:
● Kích thước ứng dụng: Ứng dụng Flutter có thể có kích thước lớn hơn so
với một số ứng dụng được phát triển bằng công nghệ khác, do việc bao gồm các thư viện cần thiết
● Tài nguyên Dart: Sử dụng ngôn ngữ Dart có thể đòi hỏi thời gian cho các
nhà phát triển làm quen nếu họ không quen thuộc với ngôn ngữ này từ trước
● Công cụ hỗ trợ bên ngoài: Mặc dù Flutter có một số công cụ phát triển hỗ
trợ tốt, nhưng có thể thiếu một số tính năng so với các framework khác.Mặc dù có nhược điểm nhất định, nhưng với ưu điểm về hiệu suất, đa nền tảng và khả năng tạo giao diện đẹp, Flutter vẫn là một lựa chọn mạnh mẽ cho việc phát triểnứng dụng di động
1.1 Flutter packages
Trang 13Hình 4 pub.dev
Trong ngữ cảnh của Flutter, "pub package" đề cập đến các gói (packages) được quản lý và chia sẻ thông qua Pub - một hệ thống quản lý gói của Flutter và Dart.Mỗi gói (package) có thể chứa mã nguồn, tài liệu, thư viện và các tài nguyên cần thiết khác cho việc phát triển ứng dụng Flutter Các gói này có thể cung cấp các tínhnăng nhất định, ví dụ như giao diện người dùng đặc biệt, tính năng logic, hoặc các công cụ hỗ trợ cho quá trình phát triển
Khi nhà phát triển cần sử dụng một tính năng cụ thể hoặc thư viện nào đó, họ có thểtìm kiếm trong cơ sở dữ liệu của Pub và thêm gói đó vào dự án Flutter của mình thông qua file pubspec.yaml Điều này cho phép họ sử dụng các tính năng hoặc chức năng mà gói đó cung cấp trong quá trình phát triển
File pubspec.yaml chứa thông tin về các gói được sử dụng trong dự án Flutter, bao gồm tên gói, phiên bản và các thiết lập khác Khi nhà phát triển cần cài đặt hoặc cậpnhật các gói, họ có thể sử dụng câu lệnh flutter pub get hoặc flutter pub upgrade từ command line để cập nhật và tải các gói mới nhất
Nhờ có Pub và hệ thống quản lý gói của nó, việc tìm, cài đặt và quản lý các gói cho
dự án Flutter trở nên dễ dàng và tiện lợi
Chức năng chính của pub.dev bao gồm:
● Tìm kiếm gói: Người dùng có thể tìm kiếm các gói dựa trên tên, từ khóa,
hoặc các tiêu chí khác để tìm các gói phù hợp với nhu cầu của họ
Trang 14● Hiển thị thông tin chi tiết: Mỗi gói trên pub.dev có trang thông tin chi tiết
với các thông tin như tên gói, mô tả, phiên bản, điểm số, ví dụ mã nguồn và tài liệu hướng dẫn
● Đánh giá và điểm số: Cộng đồng có thể đánh giá và đưa ra điểm số cho các
gói dựa trên trải nghiệm của họ, giúp người dùng khác có cái nhìn rõ ràng hơn về chất lượng và sự hữu ích của từng gói
● Hỗ trợ tìm kiếm tùy chỉnh: Cung cấp các tùy chọn tìm kiếm tiên tiến để
người dùng có thể lọc các gói theo nhiều tiêu chí khác nhau như phiên bản, ngôn ngữ, chủ đề, và nhiều hơn nữa
● Thông tin cập nhật và mới nhất: Hiển thị thông tin về các gói được cập
nhật gần đây và các gói mới nhất trong cộng đồng
Pub.dev là nguồn tài nguyên quan trọng và hữu ích cho những người phát triển ứng dụng Flutter và Dart khi họ cần tìm các gói, thư viện và công cụ để hỗ trợ trong quá trình phát triển Nó cung cấp một cách tiếp cận thuận tiện để khám phá
và sử dụng các gói có sẵn từ cộng đồng người dùng rộng lớn của Flutter và Dart
1.2 Visual Studio Code
Hình 5 Visual Studio Code
Visual Studio Code (VS Code) là một trình biên soạn mã nguồn mã nguồn mở đượcphát triển bởi Microsoft Được thiết kế để hỗ trợ nhiều ngôn ngữ lập trình và nền tảng, VS Code được sử dụng rộng rãi trong cộng đồng phát triển phần mềm với mục
Trang 15tiêu tăng cường hiệu suất và tiện ích cho nhà phát triển.
Một số đặc điểm chính của Visual Studio Code bao gồm:
● Mã nguồn mở: Visual Studio Code là một sản phẩm mã nguồn mở miễn
phí, có sẵn trên nhiều hệ điều hành bao gồm Windows, macOS và Linux
● Hỗ trợ đa ngôn ngữ và đa nền tảng: VS Code hỗ trợ nhiều ngôn ngữ lập
trình như JavaScript, Python, TypeScript, C++, Java và nhiều ngôn ngữ khác Nó cũng có thể tích hợp với các framework và công nghệ khác nhau
● Mở rộng và tùy chỉnh: VS Code có một hệ thống mở rộng mạnh mẽ, cho
phép người dùng cài đặt các extension để mở rộng chức năng của nó, từ debug, quản lý dự án, kiểm soát mã nguồn đến các tính năng phong phú khác
● IntelliSense: Hỗ trợ tính năng thông minh IntelliSense, giúp tự động hoàn
thành mã, đề xuất dòng lệnh và cung cấp thông tin hữu ích về các biến, phương thức và API khi bạn viết mã
● Git Integration: Tích hợp Git cho phép quản lý mã nguồn dễ dàng từ trình
biên soạn, bao gồm xem thay đổi, commit, push và pull code từ kho lưu trữ
● Debugging mạnh mẽ: Cung cấp công cụ debug mạnh mẽ cho nhiều ngôn
ngữ, cho phép bạn theo dõi và sửa lỗi trong mã của mình
Visual Studio Code đã trở thành một trong những trình biên soạn mã được ưa chuộng nhất trong cộng đồng lập trình do tính linh hoạt, hiệu suất và khả năng tùy chỉnh cao của nó Nó được đánh giá cao vì giao diện thân thiện, khả năng
mở rộng và sức mạnh trong việc hỗ trợ các nhà phát triển trong quá trình phát triển phần mềm
1.3 Android Studio
Hình 6 Android Studio
Trang 16Android Studio là môi trường phát triển tích hợp (IDE) chính thức được Google phát triển để xây dựng ứng dụng Android Được xây dựng trên nền tảng IntelliJ IDEA của JetBrains, Android Studio cung cấp môi trường toàn diện để phát triển, kiểm thử và triển khai ứng dụng Android.
Một số đặc điểm chính của Android Studio bao gồm:
● Trình biên soạn mã thông minh: Android Studio đi kèm với trình biên
soạn mã tích hợp (IDE) được tối ưu hóa cho việc phát triển Android, cung cấp các tính năng như auto-completion, kiểm tra lỗi, refactoring và hỗ trợ mãnguồn mở rộng
● Android Emulator: IDE này cung cấp một bộ giả lập Android mạnh mẽ để
kiểm thử ứng dụng trên nhiều thiết bị ảo với nhiều cấu hình khác nhau
● Layout Editor: Được tích hợp sẵn, trình chỉnh sửa giao diện (Layout Editor)
giúp thiết kế giao diện người dùng (UI) của ứng dụng một cách trực quan và
dễ dàng
● Quản lý tài nguyên: Hỗ trợ quản lý tài nguyên như hình ảnh, tệp tin XML
và các tài nguyên khác một cách hiệu quả
● Hỗ trợ Gradle: Sử dụng hệ thống build Gradle cho việc quản lý và tối ưu
hóa quá trình build ứng dụng
● Kết hợp với các công cụ Android phổ biến: Android Studio tích hợp tốt
với các công cụ như Firebase, Google Cloud Platform và các thư viện hỗ trợ phát triển Android khác
● Hỗ trợ Git: Cho phép quản lý phiên bản và quản lý mã nguồn thông qua Git.
Android Studio được coi là công cụ chính cho nhà phát triển Android với nhiều tínhnăng mạnh mẽ và công cụ hỗ trợ giúp tăng cường quá trình phát triển ứng dụng dành cho nền tảng Android
1.4 Github
Trang 17Hình 7 Github
GitHub là một nền tảng lưu trữ mã nguồn mở (version control) dựa trên Git, được
sử dụng rộng rãi trong cộng đồng phát triển phần mềm để quản lý mã nguồn, theo dõi sự thay đổi, hợp tác và triển khai dự án
Đặc điểm chính của GitHub bao gồm:
● Quản lý mã nguồn dễ dàng: GitHub cung cấp một nơi lưu trữ trực tuyến
cho mã nguồn của dự án Người dùng có thể tạo các kho lưu trữ
(repositories) để lưu trữ và quản lý mã nguồn của họ
● Version Control (Quản lý phiên bản): Sử dụng hệ thống version control
của Git, GitHub cho phép theo dõi sự thay đổi trong mã nguồn, quản lý các phiên bản khác nhau và hỗ trợ quá trình hợp nhất mã (merge code) từ nhiều nguồn khác nhau
● Hợp tác và Phiên bản Đa người dùng: GitHub cung cấp công cụ cho việc
hợp tác, cho phép nhiều người cùng làm việc trên cùng một dự án Nó cũng cung cấp các tính năng như pull requests, issues và wiki để tăng cường quá trình hợp tác giữa các thành viên trong dự án
● Documentation và Wiki: GitHub cho phép người dùng tạo và quản lý tài
liệu dự án (project documentation) cũng như wiki để chia sẻ thông tin, hướngdẫn và thông tin hữu ích khác
Trang 18● Công cụ cho người quản lý dự án: Cung cấp công cụ quản lý dự án (project
management tools) như issues, project boards và milestones để theo dõi tiến
Tính năng chính của Github:
● Repositories (Kho lưu trữ): Là nơi lưu trữ mã nguồn của dự án Mỗi
repository chứa toàn bộ lịch sử sửa đổi của mã nguồn, các file, thư mục, và thông tin khác liên quan đến dự án
● Issues (Vấn đề): Đây là nơi để theo dõi, báo cáo và quản lý công việc, vấn
đề hoặc yêu cầu cần được giải quyết trong dự án Issues có thể được gán cho các thành viên, đánh dấu với nhãn, và theo dõi qua thời gian
● Pull Requests (Yêu cầu hợp nhất): Đây là cách người dùng gửi sửa đổi
hoặc bổ sung mới cho mã nguồn, yêu cầu để hợp nhất (merge) vào nhánh chính Pull requests thường đi kèm với bình luận, đánh giá và các thảo luận liên quan đến sửa đổi
● Projects (Dự án): Cung cấp các công cụ quản lý dự án như boards (bảng),
cards (thẻ), và milestones (cột mốc) để theo dõi công việc, sắp xếp nhiệm vụ
và quản lý tiến độ dự án
● Gists (Gists): Cho phép người dùng chia sẻ đoạn mã, văn bản hoặc tệp tin
một cách nhanh chóng thông qua URL, hữu ích khi cần chia sẻ mã nguồn nhỏ hoặc nhanh chóng
● Actions (Hành động): Cung cấp khả năng tự động hóa các quy trình, xây
dựng, kiểm tra và triển khai mã nguồn thông qua các luồng công việc được cấu hình
6 Cơ sở lý thuyết
Trang 19CHƯƠNG 3: PHÂN TÍCH, THIẾT KẾ ỨNG DỤNG
1 Tổng quan.
2 Môi trường cài đặt.
3 Đặc tả yêu cầu chức năng.
3.1 Use case Diagram
3.1.1.1 Sơ đồ Use case
3.1.1.2 Danh sách Actors
ST
T
1 Quản trị viên (Admin) Là người quản lý, giám sát hệ thống
2 Nhà cung cấp (Vendor) Là nhà cung cấp sản phẩm, gian hàng chongười dùng
3 Người dùng (Customer) Người có nhu cầu mua sản phẩm
Bảng 1 Danh sách Actors
3.1.1.3 Danh sách Use case
ST
T
Nhân tố Use case chính Phân rã Use case Ý nghĩa/ ghi chú
1 Admin Quản lý người
dùng (User)
Xóa user Quản lý 2 user chính là
người mua hàng(User) vàcửa hàng (Vendor)
Xem thông tinuser
như số lượng user,vendors, markets, tổng sốlượng đơn hàng,…
mục
Thêm danh mục Quản lý danh mục hàng
hóa như thêm, xóa, sửaXóa danh mục
Trang 20(Categories) Sửa danh mục danh mục
mục con categories)
(Sub-Thêm danh mục Quản lý danh mục phụ
hàng hóa như thêm, xóa,sửa danh mục
Xóa danh mụcSửa danh mục
hàng (Orders)
Xem trạng tháiđơn hàng
Xem thống kê chi tiết tìnhtrạng đơn hàng, một khiđơn hàng đã đặt thì khôngthể xóa, mà chỉ có thểchuyển trang thái sang
hủy
hàng (Markets)
Thêm cửa hàng Admin có thể xem thông
tin cho tiết cửa hàng,thêm phí hoa hồng, xóa
cửa hàng
Xóa cửa hàngSửa cửa hàngThêm phí hoahồng
tin (Feeds)
Tạo bảng tin Admin có thể thêm, xóa,
sửa bảng tin để hiện thịtrong ứng dụng
Sửa bảng tinXóa bảng tinXem thông tin chi
Xóa user Quản lý 2 user chính là
người mua hàng(User) vàcửa hàng (Vendor)
Xem thông tinuser
thống như số lượng user,
Trang 21vendors, markets, tổng sốlượng đơn hàng,…
mục(Categories)
Thêm danh mục Quản lý danh mục hàng
hóa như thêm, xóa, sửa
danh mục
Xóa danh mụcSửa danh mục
mục con categories)
(Sub-Thêm danh mục Quản lý danh mục phụ
hàng hóa như thêm, xóa,sửa danh mục
Xóa danh mụcSửa danh mục
hàng (Orders)
Xem trạng tháiđơn hàng
Xem thống kê chi tiếttình trạng đơn hàng, một
kh đơn hàng đã đặt thìkhông thể xóa, mà chỉ cóthể chuyển trang tháisang hủy
hàng (Markets)
Thêm cửa hàng Admin có thể xem thông
tin cho tiết cửa hàng,thêm phí hoa hồng, xóa
cửa hàng
Xóa cửa hàngSửa cửa hàngThêm phí hoahồng
tin (Feeds)
Tạo bảng tin Admin có thể thêm, xóa,
sửa bảng tin để hiện thịtrong ứng dụng
Sửa bảng tinXóa bảng tinXem thông tinchi tiết
Trang 221 Vendor Thông tin cửa
thông kê cửahàng
Thống kê chi tiết hệ thốngnhư lượng tiền trong ví,tổng số đơn hàng, danhmục cửa hàng,
hàng (Markets)
Thêm cửa hàng Quản lý cửa hàng, một
nhà bán lẻ có thể tạonhiều cửa hàng
Xóa cửa hàngSửa cửa hàng
phẩm(Products)
Thêm sản phẩm Quản lý sản phẩm cho
cửa hàng
Xóa sản phẩmSửa sản phẩm
hàng (Orders)
Xem trạng tháiđơn hàng
Xem thống kê chi tiết tìnhtrạng đơn hàng, một khđơn hàng đã đặt thì khôngthể xóa, mà chỉ có thểchuyển trang thái sang
hủy
khuyến mãi(Flash-sales)
Thêm khuyến mãi Nhà bán lẻ có thể tạo
khuyến mãi cho loại sảnphẩm bất kì
Xóa khuyến mãiSửa khuyến mãiLọc khuyến mãi
vận chuyển(Delivery)
Tạo bảng tin Admin có thể thêm, xóa,
sửa bảng tin để hiện thịtrong ứng dụng
Sửa bảng tinXóa bảng tinXem thông tin chi
tiết
thu
Trang 23Bảng 4 Danh sách Use case Vendor
3.1.1.4 Đặc tả Use case
● Use case đăng nhập
Use case: Đăng nhập
Tác nhân chính: Admin, Vendor, Customer
Mô tả ngắn gọn:
● Người dùng muốn vào hệ thống để thực hiện các tính năng thì phải thông qua đăng nhập
Điều kiện tiên quyết:
● Hệ thống đang ở trạng thái hoạt động
● Phải có tài khoản
Sự kiện kích hoạt: Không có
Điều kiện thực hiện: Không có
Luồng sự kiện chính:
● Hệ thống hiển thị giao diện đăng nhập
● Người dùng nhập thông tin vào các ô
● Bấm “Sign in”
● Nếu thành công thì sẽ đăng nhập thành công vào hệ thống Nếu thất bại thì
hệ thống sẽ hiện thông báo
● Kết thúc use case
● Use case quên mật khẩu
Trang 24Use case: Khôi phục mật khẩu
Tác nhân chính: Vendor, Customer
Mô tả ngắn gọn:
● Khi quên mật khẩu và muốn lấy lại mật khẩu mới thì người dùng thực hiện use case này
Điều kiện tiên quyết:
● Hệ thống đang ở trạng thái hoạt động
● Phải có username, email đã được đăng ký
Sự kiện kích hoạt: Bấm “Forgot password” ở màn hình đăng nhập
Điều kiện thực hiện: Không có
Luồng sự kiện chính:
● Hệ thống hiển thị ô để nhập username
● Người dùng nhập thông tin
● Bấm “Reset password”
● Hệ thống sẽ gửi mã code đến email
● Điền mã code và mật khẩu mới
Trang 25Use case: Đăng ký tài khoản
Tác nhân chính:Vendor, Customer
Mô tả ngắn gọn:
● Người dùng muốn vào hệ thống để thực hiện các tính năng thì phải thông qua đăng ký nếu chưa có tài khoản
Điều kiện tiên quyết:
● Không có tài khoản nào tồn tại trong hệ thống với thông tin đăng ký được cung cấp
Sự kiện kích hoạt: Bấm vào “Sign Up” ở màn hình đăng nhập.
Điều kiện thực hiện: Không có
Luồng sự kiện chính:
● Customer hoặc Vendor truy cập trang web hoặc ứng dụng
● Customer hoặc Vendor chọn tùy chọn "Đăng ký" hoặc "Tạo tài khoản"
● Hệ thống yêu cầu Customer cung cấp thông tin cần thiết như tên, địa chỉ email, mật khẩu, và thông tin liên hệ
● Customer điền thông tin cần thiết và xác nhận đăng ký
● Hệ thống xác minh thông tin và tạo tài khoản cho Customer
● Customer nhận được thông báo về việc đăng ký thành công và có thể đăng nhậpvào hệ thống với thông tin tài khoản mới
Trang 26● Use case cập nhật thông tin
Use case: Cập nhật thông tin
Tác nhân chính:Vendor, Customer
Mô tả ngắn gọn:
● Người dùng muốn thay đổi thông tin cá nhân hoặc mật khẩu thì sử dụng usecase này
Điều kiện tiên quyết:
● Hệ thống đang ở trạng thái hoạt động
Sự kiện kích hoạt: Bấm “Profile” ở menu
Điều kiện thực hiện: Người dùng đăng nhập vào hệ thống
Luồng sự kiện chính:
● Hệ thống hiển thị màn hinh Cập nhật thông tin
● Người dùng nhập thông tin cá nhân vào các ô để thay đổi
● Hệ thống kiểm tra tính đúng đắn của dữ liệu
● Chọn “Save changes” để lưu
● Hệ thống thông báo kết quả
● Nếu người dùng chọn “Change password” chuyển sang luồng A1
● Kết thúc use case
Luồng thay thế:
1 Luồng phụ A1
- Hiển thị màn hình Thay đổi mật khẩu
- Nhập mật khẩu hiện tại và mật khẩu mới
Trang 27- Bấm “Change password” để thay đổi
- Hệ thống hiển thị thông báo
Kết thúc use case
Kết quả:
● Thông báo cập nhật thông tin thành công
● Cập nhật lên hệ thống
● Use Tạo yêu cầu mở market
● Use case: Tạo yêu cầu mở market
Tác nhân chính:Vendor, Customer
Mô tả ngắn gọn:
● Tạo 1 hoặc nhiều market mới cho một account vendor
Điều kiện tiên quyết:
● Hệ thống đang ở trạng thái hoạt động
● Phải có tài khoản
Sự kiện kích hoạt: Người dùng vendor ấn vào market trên thanh menu
Điều kiện thực hiện: Người dùng đăng nhập vào hệ thống
Luồng sự kiện chính:
● Hệ thống hiển thị màn hình danh sách các market đang tồn tại
● Người dùng ấn vào nút tạo market ở góc dưới màn hình đang hiển thị
● Người dùng nhập thông tin market vào các ô cần thiết
● Hệ thống kiểm tra tính đúng đắn của dữ liệu
Trang 28● Chọn “Create Market” để lưu
● Hệ thống thông báo kết quả
● Hệ thống trở lại màn hình hiển thị danh sách các market với market đã được tạo
● Kết thúc use case
Kết quả:
● Nếu duyệt: Market được tạo và hoạt động trong hệ thống.
● Nếu từ chối: Vendor có thể sửa thông tin và gửi lại yêu cầu tạo market.
● Use case xác nhận mở market
● Use case: Xác nhận mở market
Tác nhân chính:Admin
Mô tả ngắn gọn:
● Xác nhận mở một market mới từ yêu cầu của một vendor
Điều kiện tiên quyết:
● Hệ thống đang ở trạng thái hoạt động
● Phải đăng nhập ở tài khoản admin
Sự kiện kích hoạt: Người dùng Admin ấn vào market trên thanh menu
Điều kiện thực hiện:
● Người dùng đăng nhập vào hệ thống
● Đã có yêu cầu tạo market
Trang 29Luồng sự kiện chính:
● Hệ thống hiển thị màn hình danh sách các market
● Admin nhấn vào nút xem chi tiết thông tin của market ( market chưa được approved)
● Admin kiểm tra thông tin market và nhấn xác nhận market
● Hệ thống cập nhật tình trạng market
● Hệ thống thông báo kết quả
● Hệ thống trở lại màn hình hiển thị danh sách các market với market hiện có
● Kết thúc use case
Kết quả:
● Nếu duyệt: Market được tạo và hoạt động trong hệ thống.
● Nếu từ chối: Vendor có thể sửa thông tin và gửi lại yêu cầu tạo market.
● Use case quản lý người dùng
● Use case: Quản lý người dùng
Tác nhân chính: Admin
Mô tả ngắn gọn:
● Xác nhận mở một market mới từ yêu cầu của một vendor
Điều kiện tiên quyết:
● Hệ thống đang ở trạng thái hoạt động
Trang 30● Phải đăng nhập ở tài khoản admin
Sự kiện kích hoạt: Người dùng Admin ấn vào market trên thanh menu
Điều kiện thực hiện:
● Người dùng đăng nhập vào hệ thống
● Đã có yêu cầu tạo market
Luồng sự kiện chính:
● Admin đăng nhập vào giao diện quản trị của hệ thống
● Admin truy cập vào mục "Vendors" hoặc "Users"
● Hệ thống hiển thị danh sách các Vendor đang hoạt động trong hệ thống
● Admin có thể thực hiện các hoạt động quản lý như xem thông tin chi tiết của Vendor, kiểm tra hoạt động gần đây của Vendor, và thực hiện các thao tác quản
lý khác
Luồng sự kiện phụ:
● Khóa hoặc Mở khóa tài khoản Vendor:
● Nếu Admin phát hiện các vấn đề về hoạt động hoặc cần tạm ngừng tài khoản của Vendor, họ có thể chọn tùy chọn khóa tài khoản để ngăn Vendor truy cập hoặc mở lại tài khoản sau khi xử lý vấn đề
Kết quả:
● Admin có khả năng quản lý và giám sát hoạt động của các Vendor và User
trong hệ thống
● Use case quản lý bảng tin
● Use case: Quản lý bảng tin
Trang 31Tác nhân chính: Admin
Mô tả ngắn gọn:
● Xác nhận mở một market mới từ yêu cầu của một vendor
Điều kiện tiên quyết:
● Hệ thống đang ở trạng thái hoạt động
● Phải đăng nhập ở tài khoản admin
Sự kiện kích hoạt: Người dùng Admin ấn vào Feed trên thanh menu
Điều kiện thực hiện:
● Người dùng đăng nhập vào hệ thống
● Admin có quyền truy cập và quản lý nội dung trên bảng tin
Luồng sự kiện chính:
● Admin đăng nhập vào giao diện quản trị của hệ thống
● Admin truy cập vào mục "Quản lý Bảng Tin" hoặc "Feed Management"
● Hệ thống hiển thị danh sách các bài viết, tin tức, hoặc nội dung được đăng trên bảng tin
● Admin có thể xem chi tiết các bài viết, kiểm tra nội dung, nguồn gốc, ngày đăng, hoặc thông tin liên quan
● Admin có quyền duyệt, từ chối, hoặc chỉnh sửa các bài viết trên bảng tin
● Nếu cần, Admin có thể thêm bài viết mới hoặc xóa bài viết không phù hợp
Luồng sự kiện phụ:
● Chỉnh Sửa Nội Dung: Nếu Admin phát hiện nội dung không phù hợp hoặc cần chỉnh sửa, họ có thể thực hiện các thao tác chỉnh sửa hoặc xóa nội dung đó
Trang 32Kết quả:
● Admin có khả năng tạo bài đăng mới, chỉnh sửa bảng tin và cập nhật.
● Use case quản lý danh mục sản phẩm
● Use case: Quản lý danh mục sản phẩm
Tác nhân chính: Admin
Mô tả ngắn gọn:
● Quản lý danh mục sản phẩm của ứng dụng được cấp phép bởi admin
Điều kiện tiên quyết:
● Hệ thống đang ở trạng thái hoạt động
● Phải đăng nhập ở tài khoản admin
Sự kiện kích hoạt: Người dùng Admin ấn vào Categories trên thanh menu
Điều kiện thực hiện:
● Người dùng đăng nhập vào hệ thống
Luồng sự kiện chính:
● Admin đăng nhập vào giao diện quản trị của hệ thống
● Admin truy cập vào mục "Quản lý Danh Mục" hoặc "Categories
Management"
● Hệ thống hiển thị danh sách các danh mục hiện có trong hệ thống
● Admin có thể thêm danh mục mới bằng cách chọn tùy chọn "Thêm mới" và điền thông tin như tên, mô tả, hoặc thông tin khác cho danh mục
● Admin cũng có thể chỉnh sửa hoặc xóa các danh mục hiện có nếu cần thiết, như sửa tên, mô tả hoặc xóa danh mục không còn phù hợp
Luồng sự kiện chính:
Trang 33● Chỉnh Sửa hoặc Xóa Danh Mục:
● Nếu Admin phát hiện danh mục không chính xác hoặc không còn cần thiết, họ
có thể thực hiện các thao tác chỉnh sửa hoặc xóa danh mục đó
Kết quả:
● Admin có khả năng quản lý danh mục của hệ thống, đảm bảo rằng cấu trúc danh
mục phù hợp với nhu cầu hoặc chính sách của hệ thống
Use case: Tạo sản phẩm cho market
Tác nhân chính: Vendor
Mô tả ngắn gọn:
● Tạo một sản phẩm mới cho market
Điều kiện tiên quyết:
● Hệ thống đang ở trạng thái hoạt động
● Phải đăng nhập ở tài khoản vendor
Sự kiện kích hoạt: người dùng vendor ấn vào mục product trên thanh
menu
Điều kiện thực hiện: Không
Luồng sự kiện chính:
● Hệ thống hiển thị màn hình danh sách các sản phẩm hiện có
● Người dùng vendor ấn vào nút tạo product ở góc dưới màn hình đang
hiển thị
● Người dùng nhập thông tin product vào các ô cần thiết
● Hệ thống kiểm tra tính đúng đắn của dữ liệu