ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
--------------------
BÁO CÁO CUỐI KỲ
MƠN: ĐỒ ÁN 2
ĐỀ TÀI: TÌM HIỂU FLUTTER VÀ XÂY DỰNG
ỨNG DỤNG BÁN MƠ HÌNH
Giảng viên hướng dẫn:
Thái Thụy Hàn Uyển
Sinh viên thực hiện:
Quách Thế Tường
Page 2 of 70
17521243
LỜI CẢM ƠN
Lời đầu tiên, nhóm tác giả xin chân thành cảm ơn q thầy cơ khoa Cơng nghệ Phần
mềm, trường Đại Học Công Nghệ Thông Tin, ĐHQG TP.HCM, đã tận tình hướng dẫn
nhóm trong suốt thời gian qua. Những kiến thức mà thầy cô đã truyền đạt là nền tảng
quan trọng để nhóm có thể hồn thành đề tài này.
Nhóm tác giả xin gửi lời cảm ơn chân thành và lịng biết ơn sâu sắc đến cơ Thái Thụy
Hàn Uyển, cảm ơn cơ đã tận tình hướng dẫn và tạo điều kiện tốt nhất cho nhóm hồn
thành đề tài này. Những lời động viên, góp ý chân tình của cơ là động lực q báu để
nhóm vượt qua những khó khăn khi tìm hiểu và thực hiện đề tài. Trong thời gian thực
hiện đề tài, nhóm tác giả đã cố gắng vận dụng những kiến thức nền tảng đã học, kết hợp
học hỏi và tìm hiểu cơng nghệ mới để ứng dụng xây dựng đề tài môn học. Tuy nhiên
trong quá trình thực hiện, do kiến thức và kinh nghiệm cịn nhiều hạn chế, khó tránh khỏi
những thiếu sót. Chính vì vậy, nhóm tác giả rất mong nhận được sự góp ý từ q thầy cơ
để nhóm hồn thiện thêm những kiến thức mà nhóm đã học tập, làm hành trang q báu
cho nhóm trong cơng việc sau này.
Xin chân thành cảm ơn q thầy cơ !
Nhóm tác giả
Page 3 of 70
NHẬN XÉT
(Của giáo viên hướng dẫn)
Page 4 of 70
MỤC LỤC
Page 5 of 70
CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI
1. Lí do chọn đề tài:
Chúng ta có thể nói rằng thế kỷ 21 đã và đang chứng kiến sự phát triển mạnh mẽ
của ngành Công nghệ thông tin. Công nghệ thông tin (CNTT) đã và đang thay đổi thế
giới một cách nhanh chóng và từng bước kéo nền tri thức của nhân loại xích lại gần nhau
hơn. Việc mua bán trao đổi qua các ứng dụng di động ngày càng phát triển và phổ biến.
Ngày nay, ứng dụng di động đã đóng một vai trò quan trọng đối với con người chúng ta
từ giải trí cho đến quảng cáo, thương mại, quản lý...Cụ thể Ứng dụng bán hàng online
(thương mại điện tử) sẽ dần dần thay thế những phương thức kinh doanh cũ trong các
doanh nghiệp bởi tính ưu việt mà Ứng dụng bán hàng online mang lại như: nhanh hơn, rẻ
hơn, tiện dụng hơn, hiệu quả hơn và không bị giới hạn không gian và thời gian.
Ứng dụng bán hàng online giúp người mua có thể chọn mua các món hàng một
cách đơn giản, hiệu quả. Tất cả các công việc điều được thao tác trực tiếp ngay trên ứng
dụng.
2. Tóm tắt đề tài:
Là một trang ứng dụng kinh doanh đồ chơi mô hình. Cửa hàng bán các loại đồ
chơi mơ hình như mơ hình ơ tơ, mơ tơ, siêu nhân, siêu anh hùng,…. Với sự phát triển của
cơng nghệ thơng tin nói chung và thương mại điện tử nói riêng dẫn đến nhu cầu của mua
hàng online tăng cao, cửa hàng sẽ gặp khó khăn trong việc quản lý số lượng mặt hàng,
đơn hàng và hoạt động bán hàng. Vì vậy, ứng dụng trước hết là phải giải quyết được các
vấn đề trên. Ứng dụng cho phép kiểm sốt tình hình mua bán và số lượng các mặt hàng,
đơn hàng.
Ngoài ra, ứng dụng sẽ được áp dụng chiến lược "2 mức giá" đối với các sản phẩm
có giá trị cao như là mơ hình đồ chơi ơ tơ, mơ tơ,... Việc áp dụng sẽ được tiến hành như
sau: sẽ có 2 mức giá khác nhau cho cùng một sản phẩm: (i) một mức giá đi cùng với tất
cả các tùy chọn (giao hàng nhanh, lắp ráp và bảo hành từ MWG) trong khi đó (ii) mức
giá cịn lại sẽ rẻ hơn và khơng có các dịch vụ trên (chỉ đi kèm với bảo hành của hãng).
Page 6 of 70
Tiếp đó là chiến lược tiếp thị hỗn hợp :
+Sản phẩm: Phát triển ứng dụng riêng cho mỗi nước, sản phẩm của hãng tạo ra
là một trang web được tối ưu với các ngơn ngữ khác nhau, cùng với đó là sự trải nghiệm
tốt nhất cho người dùng khi thiết kế ứng dụng dựa vào thói quen sử dụng của khách hang,
chăm chút hình ảnh trên ứng dụng khiến các sản phẩm bán hàng hấp dẫn người mua hơn.
Đặc biệt là đảm bảo chất lượng sản phẩm.
+ Giá cả: Ưu đãi, phù hợp với túi tiền người dùng, ngoài ra sẽ có các chương
trình giảm giá cũng như cái code giảm giá.
+ Các lợi ích khi là thành viên VIP: giảm giá, tăng thời gian bảo hành, không
thu tiền ship, . . .
3. Mục tiêu của đề tài:
√ Xây dựng Ứng dụng bán hàng về các sản phẩm đồ chơi mơ hình qua mạng.
√ Nghiên cứu các cơng nghệ liên quan đến phát triển ứng dụng.
√ Tạo ra ứng dụng (thương mại điện tử) thiết thực và sử dụng được trong thực tế.
√ Nghiên cứu về cách thức mà một Ứng dụng được sử dụng trong kinh doanh
online.
√ Đưa ra các báo cáo và tài tiệu.
4. Phương pháp nghiên cứu:
√ Nghiên cứu một số ứng dụng bán hàng như: Lazada, Shoppe...
√ Nghiên cứu các tài liệu về nghiệp vụ về Quản lí bán hàng và
Bán hàng.
√ Phỏng vấn và khảo sát thực tế về cách thức quản lí.
√ Các tài liệu, video hướng dẫn cách thức mua bán, xử lí đơn hàng.
Page 7 of 70
5. Ý nghĩa và kết quả hướng tới của đề tài:
5.1 Về mặt sản phẩm (ứng dụng bán hàng):
√ Tạo ra được ứng dụng bán hàng có thể sử dụng thực thế.
√ Quản lí được các cơng đoạn mua bán một cách nhanh chóng, hiệu quả.
√ Tối ưu hóa về các chi phí về gian hàng, hiệu quả đầu tư cho các shop bán hàng.
5.2 Về mặt tài liệu:
√ Toàn bộ chương trình và bản báo cáo của đề tài sẽ trở thành tài liệu nghiên cứu,
tham khảo nhanh, dễ hiễu cho các bạn yêu thích lĩnh vực Ứng dụng thương mại điện tử
sử dụng Flutter.
√ Có thể sử dụng tài liệu để tham khảo về công nghệ như Flutter, Firebase.
Page 8 of 70
CHƯƠNG 2: CƠNG NGHỆ LIÊN QUAN
1. Tìm hiểu về Flutter:
1.1
Flutter là gì:
√ Flutter là mobile UI framework của Google để tạo ra các giao diện chất lượng cao trên
iOS và Android trong khoảng thời gian ngắn. Flutter hoạt động với những code sẵn có
được sử dụng bởi các lập trình viên, các tổ chức.
√ Flutter hồn tồn miễn phí và cũng là mã nguồn mở.
1.2
Tại sao lại là Flutter?
√ Nếu bạn đang tìm kiếm các phương pháp thay thế để phát triển ứng dụng Android,
bạn nên cân nhắc thử Flutter của Google, một framework dựa trên ngơn ngữ lập trình
Dart.
√ Các ứng dụng được xây dựng với Flutter hầu như không thể phân biệt với những ứng
dụng được xây dựng bằng cách sử dụng Android SDK, cả về giao diện và hiệu suất. Hơn
nữa, với những tinh chỉnh nhỏ, chúng có thể chạy trên thiết bị iOS.
√ Chạy ở 60 fps, giao diện người dùng được tạo ra với Flutter thực thi tốt hơn nhiều so
với những ứng dụng được tạo ra với các framework phát triển đa nền tảng khác chẳng
hạn như React Native và Ionic. Một số lí do khiến bạn có thể hứng thú với Flutter:
1. Flutter sử dụng Dart, một ngôn ngữ nhanh, hướng đối tượng với nhiều tính năng
hữu ích như mixin, generic, isolate, và static type.
2. Flutter có các thành phần UI của riêng nó, cùng với một cơ chế để kết xuất chúng
trên nền tảng Android và iOS. Hầu hết các thành phần giao diện người dùng, đều
sẵn dùng, phù hợp với các nguyên tắc của Material Design.
3. Các ứng dụng Flutter có thể được phát triển bằng cách4 sử dụng IntelliJ IDEA,
một IDE rất giống với Android Studio.
Page 9 of 70
1.3
Đặc điểm nổi bật:
√ Fast Development: Tíng năng Hot Reload hoạt động trong milliseconds để hiện thị
giao diện tới bạn. Sử dụng tập hợp các widget có thể customizable để xây dựng giao diện
trong vài phút. Ngoài ra Hot Reload cịn giúp bạn thêm các tính năng, fix bug tiết kiệm
thời gian hơn mà không cần phải thông qua máy ảo, máy android hoặc iOS.
√ Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng giao diện của
Flutter vô cùng đẹp mắt theo phong cách Material Design và Cupertino, hỗ trợ nhiều các
APIs chuyển động, smooth scrolling...
√ Native Performance: Các widget của fluter kết hợp các sự khác biệt của các nền tảng
ví dụ như scrolling, navigation, icons, font để cung cấp một hiệu năng tốt nhất tới iOS và
Android.
1.4
Khác biệt so với “anh cả” Android ?
Chắc hẳn khơng ít người đang thắc mắc, chẳng phải Google đã có bộ SDK cho di động,
có tên gọi Android rồi hay sao. Nhưng với Google, thế giới mobile là quá rộng chỉ với
một giải pháp duy nhất là Android. Với việc ra mắt phiên bản beta 1 này, giờ đây họ có
trong tay hai bộ SDK cho ứng dụng di động: Android và Flutter. Và điểm khác biệt cơ
bản giữa Flutter và Android: tạo ra các ứng dụng chạy trên cả iOS và Android.
Là một bộ SDK đa nền tảng, các ứng dụng Flutter có thể hoạt động trên cả iOS và
Android. Nó như một thủ thuật khơn khéo để tương thích được với framework UI trên cả
hai hệ điều hành này. Các ứng dụng Flutter không biên dịch trực tiếp với các ứng dụng
native của Android và iOS.
Thay vào đó, chúng chạy trên engine render Flutter (được viết bằng C++) và Flutter
Framework (được viết bằng Dart, cũng như các ứng dụng Flutter), cả hai bộ này đều
được đóng gói cùng với mọi ứng dụng. Sau đó bộ SDK sẽ đóng gói lại vào trong một ứng
dụng để sẵn sàng chạy trên mỗi nền tảng. Bạn tạo ra ứng dụng của mình, một engine mới
sẽ chạy các đoạn code của Flutter, và các đoạn code native vừa đủ để nền tảng Flutter
chạy trên cả Android và iOS.
Page 10 of 70
Đóng gói cả một engine đi kèm cùng ứng dụng sẽ làm cho kích thước bộ cài đặt lớn hơn
hẳn. Trang Hỏi đáp của Flutter cho biết, một ứng dụng “trống” thơng thường sẽ chỉ
khoảng 6-7MB trên Android, vì vậy dù là ứng dụng nào, phần kích thước tăng lên cũng là
rất nhiều. Nhưng lợi ích của việc này là các ứng dụng Flutter sẽ rất nhanh.
Flutter được thiết kế từ đầu để đạt tới tốc độ khung hình 60fps. Trong khi đây không phải
là một con số hiếm gặp trên iOS, nhưng với Android, bạn có thể cảm thấy sự khác biệt rõ
rệt ngay lập tức. Cũng nhờ việc xuất xưởng cùng với cả một nền tảng cho ứng dụng của
mình, các nhà phát triển sẽ tránh được nhiều vấn đề về sự phân mảnh của Android.
2. Firebase:
2.1
Firebase là gì ?
Firebase là một nền tảng để phát triển ứng dụng di động và trang web, bao gồm các API
đơn giản và mạnh mẽ mà khơng cần backend hay server.Nó cịn giúp các lập trình viên
rút ngắn thời gian triển khai và mở rộng quy mô của ứng dụng mà họ đang phát triển.
Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud. Kèm theo đó
là hệ thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính là giúp người dùng
lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu. Cụ thể là những
giao diện lập trình ứng dụng API đơn giản. Mục đích nhằm tăng số lượng người dùng và
thu lại nhiều lợi nhuận hơn.
Đặc biệt, còn là dịch vụ đa năng và bảo mật cực tốt. Firebase hỗ trợ cả hai nền tảng
Android và IOS. Khơng có gì khó hiểu khi nhiều lập trình viên chọn Firebase làm nền
tảng đầu tiên để xây dựng ứng dụng cho hàng triệu người dùng trên toàn thế giới.
2.2
Lịch sử phát triển Firebase:
Gần một thập niên trước, Firebase ra đời với tiền thân là Envolve. Đây là một nền tảng
đơn giản chuyên cung cấp những API cần thiết để tích hợp tính năng chat vào trang web.
Bên cạnh ứng dụng nhắn tin trực tuyến, Envolve còn được người dùng sử dụng để truyền
và đồng bộ hóa dữ liệu cho những ứng dụng khác như các trò chơi trực tuyến,… Do đó,
Page 11 of 70
các nhà sáng lập đã tách biệt hệ thống nhắn tin trực tuyến và đồng bộ dữ liệu thời gian
thực thành hai phần riêng biệt.
Trên cơ sở đó, năm 2012, Firebase ra đời với sản phẩm cung cấp là dịch vụ Backend-asa-Service. Tiếp đến, vào năm 2014, Google mua lại Firebase và phát triển nó thành một
dịch vụ đa chức năng được hàng triệu người sử dụng cho đến hiện nay.
2.3
Cách thức hoạt động của Firebase:
2.3.1 Firebase realtime database:
Khi đăng ký một tài khoản trên Firebase để tạo ứng dụng, bạn đã có một cơ sở dữ liệu
thời gian thực. Dữ liệu bạn nhận được dưới dạng JSON. Đồng thời nó cũng ln được
đồng bộ thời gian thực đến mọi kết nối client.
Đối với các ứng dụng đa nền tảng, tất cả các client đều sử dụng cùng một cơ sở dữ liệu.
Nó được tự động cập nhật dữ liệu mới nhất bất cứ khi nào các lập trình viên phát triển
ứng dụng. Cuối cùng, tất cả các dữ liệu này được truyền qua kết nối an tồn SSL có bảo
mật với chứng nhận 2048 bit.
Trong trường hợp bị mất mạng, dữ liệu được lưu lại ở local, vì thế khi có mọi sự thay đổi
nào đều được tự động cập nhật lên Server của Firebase. Bên cạnh đó, đối với các dữ liệu
ở local cũ hơn với Server thì cũng tự động cập nhật để được dữ liệu mới nhất.
2.3.2 Fire Authentication:
Hoạt động nổi bật của Firebase là xây dựng các bước xác thực người dùng bằng Email,
Facebook, Twitter, GitHub, Google. Đồng thời cũng xác thực nặc danh cho các ứng dụng.
Hoạt động xác thực có thể giúp thơng tin cá nhân của người sử dụng được an toàn và đảm
bảo không bị đánh cắp tài khoản.
2.3.3 Firebase hosting:
Firebase cung cấp các hosting được phân phối theo tiêu chuẩn SSL từ mạng CDN.
Page 12 of 70
CDN viết tắt của Content Delivery Network là mạng lưới máy chủ lưu giữ bản sao của
các nội dung tĩnh bên trong website và phân phối đến nhiều máy chủ PoP. Mạng lưới
máy chủ CDN được đặt ở khắp mọi nơi trên toàn cầu. Từ PoP (Points of Presence), dữ
liệu sẽ tiếp tục được gửi đến người dùng cuối. Thông qua CDN, bản sao nội dung trên
máy chủ gần nhất sẽ được trả về cho người dùng khi họ truy cập website.
2.4
Ưu điểm của Firebase:
2.4.1 Triển khai ứng dụng nhanh chóng:
Bởi khơng phải quan tâm đến phần backend cùng các API tốt, hỗ trợ đa nền tảng,
Firebase tiết kiệm rất nhiều thời gian quản lý và đồng bộ tất cả dữ liệu cho người dùng.
Song song đó, nó cịn cung cấp hosting và hỗ trợ xác thực thông tin khách hàng khiến
việc triển khai ứng dụng nhanh chóng hơn.
2.4.2 Bảo mật:
Hoạt động trên nền tảng đám mây cloud, sử dụng kết nối thông qua giao thức bảo mật
SSL và cho phép phân quyền người dùng cơ sở dữ liệu bằng Javascript, các đặc điểm này
của Firebase giúp nâng cao độ bảo mật cho các ứng dụng.
2.4.3 Sự ổn định:
Hầu hết các ứng dụng trên nền tảng Firebase luôn hoạt động ổn định vì chúng được viết
dựa trên nền tảng cloud cung cấp bởi Google. Hơn nữa, nhờ Firebase mà việc nâng cấp
hay bảo trì Server cũng diễn ra khá đơn giản mà không cần phải dừng lại.
2.5 Nhược điểm của Firebase:
“Firebase” chính là phần Realtime Database, đúng hơn chỉ là phần Database. Cơ sở dữ
liệu của họ được tổ chức theo kiểu trees, parent-children, không phải là kiểu Table nên
những ai đang quen với SQL có thể sẽ gặp khó khăn từ mức đôi chút tới khá nhiều.
Page 13 of 70
2.7 Các dịch vụ của Firebase:
2.7.1 Nhóm cơng cụ Firebase Develop & Test Your App:
Nhóm cơng cụ này – hay cịn gọi là cơng cụ phát triển và kiểm thử các ứng dụng được
thiết kế, bao gồm các dịch vụ nổi bật sau:
Realtime Database
Realtime Database: là dịch vụ lưu trữ và đồng bộ dữ liệu người dùng thời gian thực. Có
hỗ trợ cho Android, IOS, Web, C++, Unity và Xamarin. Người dùng có thể lưu trữ và lấy
dữ liệu từ máy chủ rất dễ dàng.
Crashlytics
Crashlytics: là hệ thống theo dõi và lưu trữ thông tin lỗi của ứng dụng. Các thơng tin lỗi
sẽ được thu thập triệt để và trình bày hợp lý. Từ mỗi chu trình hoạt động đến khi xảy ra
lỗi.
Cloud Firestore
Cloud Firestore: là dịch vụ lưu trữ và đồng bộ dữ liệu giữa người dùng và thiết bị quy
mơ tồn cầu. Dịch vụ sử dụng NoSQL được lưu trữ trên hạ tầng cloud.
Authentication
Authentication: là dịch vụ quản lý người dùng đơn giản và an toàn. Authentication cung
cấp nhiều phương pháp xác thực email và mật khẩu Google, Facebook.
Cloud Functions
Cloud Functions: là dịch vụ mở rộng ứng dụng bằng mã phụ trợ tùy chỉnh mà không cần
quản lý và quy mô các máy chủ riêng.
Cloud Storage
Cloud Storage: là dịch vụ có khả năng lưu trữ và chia sẻ nội dung do người dùng tạo ra
như hình ảnh, âm thanh và video với bộ nhớ mạnh, đơn giản và tiết kiệm chi phí được
xây dựng cho quy mơ của Google.
Page 14 of 70
Test Lab for Android
Test Lab for Android: là công cụ tự động chạy thử và tùy chỉnh cho ứng dụng trên các
thiết bị ảo và vật lý của Google cung cấp.
Performance Monitoring
Performance Monitoring: là dịch vụ có khả năng chẩn đoán các vấn đề xảy ra với hiệu
suất ứng dụng.
2.7.2 Nhóm cơng cụ Firebase Grow & Engage Your Audience:
Google Analytics
Google Analytics sẽ phân tích thuộc tính và hành vi của người sử dụng trong bảng điều
khiển. Cuối cùng sẽ đưa ra quyết định về lộ trình xây dựng ứng dụng. Ngồi ra nó cịn
nhận thơng tin về thời gian thực từ báo cáo cho đến việc xuất dữ liệu sự kiện thơ
tới Google BigQuery để phân tích tùy chỉnh.
Cloud Messaging
Cloud Messaging là dịch vụ gửi tin, thơng báo miễn phí đến user trên nền tảng Android,
IOS và Web. Bạn có thể gửi tin nhắn đến các nhóm thiết bị, chủ đề hoặc phân đoạn người
dùng cụ thể. Đây là công cụ gửi hàng tỷ thư mỗi ngày trên ứng dụng lớn nhỏ.
Predictions
Là cơng cụ tạo ra nhóm người dùng năng động dựa trên hành vi dự đoán. Họ là đối tượng
nhắm mục tiêu trong các sản phẩm khác như thông báo, cấu hình từ xa…
Firebase Dynamic Links
Được áp dụng trên Android, IOS và Web, dịch vụ này sử dụng liên kết động để cung cấp
trải nghiệm người dùng, hỗ trợ web di động thúc đẩy chuyển đổi ứng dụng gốc, người
dùng chia sẻ người dùng, các chiến dịch xã hội và tiếp thị…
Page 15 of 70
Remote Config
Là dịch vụ tùy chỉnh cách ứng dụng khi hiển thị cho mỗi người dùng. Nó được dùng để
thay đổi giao diện, triển khai dần dần các tính năng, chạy thử nghiệm A/B, cung cấp nội
dung tùy chỉnh cho người dùng hoặc thực hiện các cập nhật khác mà không cần triển khai
phiên bản mới nhất từ bảng điều khiển.
Invites
Là công cụ cho phép người dùng chia sẻ mã giới thiệu, nội dung yêu thích trên ứng dụng
qua email và SMS. Dịch vụ này kết hợp với Google Analytics for Firebase để bạn biết
thời điểm người dùng mở hay cài đặt ứng dụng qua lời mời.
App Indexing
Dịch vụ tích hợp với cơng cụ tìm kiếm Google giúp thu hút người dùng đã sử dụng các
ứng dụng trước.
AdMob
Đây là công cụ hiển thị quảng cáo hấp dẫn giúp lập trình viên kiếm tiền hiệu quả. Ngồi
ra, dịch vụ này có thể thực hiện các chiến lược kiếm tiền trên lớp bậc nhất và tối đa hóa
doanh thu do mỗi người dùng tạo ra.
AdWords
AdWords giúp có được thơng tin và thu hút người dùng. Điều này thực hiện bằng cách
chạy các quảng cáo trên tìm kiếm, hiển thị và video. Ngồi ra, bạn có thể cải thiện nhắm
mục tiêu quảng cáo, tối ưu hiệu suất chiến dịch của bạn.
Page 16 of 70
CHƯƠNG 3: MƠ HÌNH USECASE
1. Sơ đồ Use case mức tổng quát:
1.1 Nhân viên:
Page 17 of 70
1.2 Quản lí:
Page 18 of 70
2. Danh sách các Use case:
STT
Tên Use case
Ý nghĩa, ghi chú
1
Đăng nhập
Đăng nhập tài khoản vào hệ thống
2
Đăng xuất
Thoát tài khoản khỏi hệ thống
3
Thêm/ xóa/ sửa sản phẩm
4
Thêm/ sửa/ xóa tài khoản
5
Thêm/ sửa/ xóa thể loại
6
Thêm/ sửa/ xóa danh mục
7
Thêm/ sửa/ xóa quảng cáo
8
Xem thơng tin của các đơn hàng
9
Tìm kiếm – Thống kê đơn hàng
Thêm/ xóa/ sửa thơng tin sản phẩm vào
danh sách các sản phẩm
Thêm/ xóa/ sửa thơng tin tài khoản của hệ
thống quản lí
Thêm/ xóa/ sửa thơng tin thể loại vào danh
sách danh sách các thể loại mơ hình
Thêm/ xóa/ sửa thơng tin thương hiệu vào
danh sách các thể loại mơ hình
Thêm/ xóa/ sưa thơng tin quảng cáo vào
danh sách quảng cáo
Xem thông tin của danh sách đơn hàng và
chi tiết đơn hàng đó
Tìm kiếm và thống kê các đơn hàng trong
một ngày hoặc khoảng ngày nhất định
3. Đặc tả Use case:
3.1 Use case đăng nhập:
Use case đăng nhập
Mơ tả
Tác nhân
Luồng chính
Nhân viên/quản lí đăng nhập vào tài khoản
Nhân viên/quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Nhân viên/quản lí đến trang
2. Hiển thị form đăng nhập cho
đăng nhập
nhân viên
Page 19 of 70
3. Điền tên tài khoản và mật
4. Kiểm tra tên tài khoản và mật
khẩu vào form
khẩu
5. Chuyển đến trang chủ của
trang quản lí
A1. Người dùng nhập sai tài khoản, mật khẩu
Luồng thay thế
5. Yêu cầu đăng nhập lại
Quay lại bước 2
Điều kiện trước
Điều kiện sau
Phải là nhân viên/quản lí của cửa hàng và có tài khoản trên hệ
thống
Đã đăng nhập vào hệ thống
3.2 Use case đăng xuất:
Use case đăng xuất
Mô tả
Tác nhân
Luồng chính
Nhân viên/quản lí thốt khỏi tài khoản của mình trên hệ thống
Nhân viên/quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Nhân viên/quản lí nhấn chọn
2. Hiển thị về trang đăng nhập
đăng xuất
Luồng thay thế
Điều kiện trước
Điều kiện sau
Đã đăng nhập vào hệ thống
Đăng xuất tài khoản trên hệ thống
3.3 Use case thêm/ sửa/ xóa sản phẩm:
Use case thêm/ sửa/ xóa sản phẩm
Mơ tả
Tác nhân
Luồng chính
Nhân viên/quản lí thực hiện thêm/ sửa/ xóa sản phẩm
Nhân viên/quản lí
Hành vi của tác nhân
Page 20 of 70
Hành vi của hệ thống
1. Chọn mục quản lí sản phẩm
2. Hiển thị giao diện danh sách
sản phẩm
3. Chọn nút thêm sản phẩm
4. Hiển thị giao diện thêm sản
phẩm
5. Nhập thông tin sản phẩm
muốn thêm
6. Chọn nút đồng ý thêm
7. Kiểm tra hợp lệ các thông tin
sản phẩm
8. Lưu vào cơ sở dữ liệu
A1. Thông tin sản phẩm không hợp lệ
8. Hiển thị thông báo thông tin không hợp lệ
Quay lại bước 4
A2. Sửa thông tin sản phẩm
3. Chọn nút sửa thông tin sản phẩm
Luồng thay thế
Hiển thị giao diện sửa thông tin sản phẩm
Quay lại bước 7
A3. Xóa sản phẩm
3. Chọn nút xóa sản phẩm
Xóa sản phẩm khỏi cơ sở dữ liệu và cập nhật danh sách trên giao
diện quản lí
Điều kiện trước
Điều kiện sau
Nhân viên/quản lí đã đăng nhập vào hệ thống
Thực hiện các thao tác thành công
3.4 Use case thêm/ sửa/ xóa tài khoản:
Use case thêm/ sửa/ xóa tài khoản
Mơ tả
Tác nhân
Quản lí thực hiện thêm/ sửa/ xóa tài khoản
Quản lí
Page 21 of 70
Hành vi của tác nhân
Hành vi của hệ thống
1. Chọn mục quản lí tài khoản
2. Hiển thị giao diện danh sách
tài khoản
3. Chọn nút thêm tài khoản
Luồng chính
4. Hiển thị giao diện thêm tài
khoản
5. Nhập thông tin tài khoản
muốn thêm
6. Chọn nút đồng ý thêm
7. Kiểm tra hợp lệ các thông tin
tài khoản
8. Lưu vào cơ sở dữ liệu
A1. Thông tin sản phẩm không hợp lệ
8. Hiển thị thông báo thông tin không hợp lệ
Quay lại bước 4
A2. Sửa thông tin tài khoản
Luồng thay thế
3. Chọn nút sửa thông tin tài khoản
Hiển thị giao diện sửa thông tin tài khoản
Quay lại bước 7
A3. Xóa tài khoản
3. Chọn nút xóa tài khoản
Xóa tài khoản khỏi cơ sở dữ liệu và cập nhật danh sách trên giao
diện quản lí
Điều kiện trước
Quản lí đã đăng nhập vào hệ thống
Điều kiện sau
Thực hiện các thao tác thành cơng
3.5 Use case thêm/ sửa/ xóa thể loại:
Use case thêm/ sửa/ xóa thể loại
Mơ tả
Tác nhân
Nhân viên/quản lí thực hiện thêm/ sửa/ xóa thể loại
Nhân viên/quản lí
Page 22 of 70
Hành vi của tác nhân
Hành vi của hệ thống
1. Chọn mục quản lí thể loại
2. Hiển thị giao diện danh sách
thể loại
3. Chọn nút thêm thể loại
Luồng chính
4. Hiển thị giao diện thêm thể
loại
5. Nhập thông tin thể loại muốn
thêm
6. Chọn nút đồng ý thêm
7. Kiểm tra hợp lệ các thông tin
thể loại
8. Lưu vào cơ sở dữ liệu
A1. Thông tin thể loại không hợp lệ
8. Hiển thị thông báo thông tin không hợp lệ
Quay lại bước 4
A2. Sửa thông tin thể loại
3. Chọn nút sửa thông tin thể loại
Luồng thay thế
Hiển thị giao diện sửa thông tin thể loại
Quay lại bước 7
A3. Xóa thể loại
3. Chọn nút xóa thể loại
Xóa thể loại khỏi cơ sở dữ liệu và cập nhật danh sách trên giao diện
quản lí
Điều kiện trước
Điều kiện sau
Nhân viên/quản lí đã đăng nhập vào hệ thống
Thực hiện các thao tác thành công
3.6 Use case thêm / sửa/ xóa danh mục:
Use case thêm/ sửa/ xóa danh mục
Mơ tả
Nhân viên/quản lí thực hiện thêm/ sửa/ xóa danh mục/thương hiệu
Page 23 of 70
Tác nhân
Nhân viên/quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Chọn mục quản lí danh mục
2. Hiển thị giao diện danh sách
danh mục
3. Chọn nút thêm danh mục
Luồng chính
4. Hiển thị giao diện thêm danh
mục
5. Nhập thơng tin danh mục
muốn thêm
6. Chọn nút đồng ý thêm
7. Kiểm tra hợp lệ các thông tin
danh mục
8. Lưu vào cơ sở dữ liệu
A1. Thông tin danh mục không hợp lệ
8. Hiển thị thông báo thông tin không hợp lệ
Quay lại bước 4
A2. Sửa thông tin danh mục
3. Chọn nút sửa thông tin danh mục
Luồng thay thế
Hiển thị giao diện sửa thông tin danh mục
Quay lại bước 7
A3. Xóa danh mục
3. Chọn nút xóa thể loại
Xóa danh mục khỏi cơ sở dữ liệu và cập nhật danh sách trên giao
diện quản lí
Điều kiện trước
Điều kiện sau
Nhân viên/quản lí đã đăng nhập vào hệ thống
Thực hiện các thao tác thành công
3.7 Use case thêm / sửa/ xóa quảng cáo:
Use case thêm/ sửa/ xóa quảng cáo
Page 24 of 70
Mơ tả
Tác nhân
Quản lí thực hiện thêm/ sửa/ xóa quảng cáo
Quản lí
Hành vi của tác nhân
Hành vi của hệ thống
1. Chọn mục quản lí quảng cáo
2. Hiển thị giao diện danh sách
quảng cáo
3. Chọn nút thêm quảng cáo
Luồng chính
4. Hiển thị giao diện thêm quảng
cáo
5. Nhập thông tin quảng cáo
muốn thêm
6. Chọn nút đồng ý thêm
7. Kiểm tra hợp lệ các thông tin
quảng cáo
8. Lưu vào cơ sở dữ liệu
A1. Thông tin quảng cáo không hợp lệ
8. Hiển thị thông báo thông tin không hợp lệ
Quay lại bước 4
A2. Sửa thông tin quảng cáo
3. Chọn nút sửa thông tin quảng cáo
Luồng thay thế
Hiển thị giao diện sửa thông tin quảng cáo
Quay lại bước 7
A3. Xóa quảng cáo
3. Chọn nút xóa quảng cáo
Xóa quảng cáo khỏi cơ sở dữ liệu và cập nhật danh sách trên giao
diện quản lí
Điều kiện trước
Quản lí đã đăng nhập vào hệ thống
Điều kiện sau
Thực hiện các thao tác thành công
Page 25 of 70