ĐẠ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 ĐỒ ÁN 1
ĐỀ TÀI:
TÌM HIỂU VỀ FLUTTER VÀ XÂY
DỰNG ỨNG DỤNG BÁN MỸ PHẨM
Giảng viên hướng dẫn:
ThS. THÁI THỤY HÀN UYỂN
Sinh viên thực hiện:
Bùi Thanh Phú
19522018
Tp. Hồ Chí Minh, 3/2022
NHẬN XÉT
(Của giảng viên hướng dẫn)
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
…………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……., ngày……...tháng……năm 2022
Người nhận xét
(Ký tên và ghi rõ họ tên)
1
LỜI CẢM ƠN
Trước khi đi vào nội dung phần báo cáo đồ án, lời nói đầu tiên em xin chân thành
gửi lời cảm ơn đến ThS. THÁI THUỴ HÀN UYỂN – Giảng viên môn ĐỒ ÁN 1–
người đã truyền đạt các kiến thức trên lớp, hướng dẫn và cung cấp các yêu cầu hướng
về người dùng dựa trên thực tế, tạo điều kiện cho em thực hiện và đồng thời nhận xét,
góp ý để đồ án của em trở nên hoàn thiện hơn. Đây là những kiến thức rất bổ ích, là nền
tảng và là những sự hỗ trợ em trong quá trình mới bắt đầu tìm hiểu về cách lập trình với
Flutter, với ngơn ngữ Dart để em có thể hồn thiện được đồ án này tốt nhất có thể.
Những lời chia sẻ, hướng dẫn đầy nhiệt tình của cơ là động lực q báu để em có thể
vượt qua những khó khăn khi tìm hiểu và thực hiện đề tài.
Đồng thời, em cũng muốn gửi lời cảm ơn sâu sắc đến những người đã hỗ trợ em
trong quá trình thực hiện đồ án này, khơng chỉ là những người bạn đã tạo điều kiện
thuận lợi và động viên em rất nhiều, mà đặc biệt là những anh chị trong khoa Cơng nghệ
Phần mềm vì đã góp ý, chia sẻ những kinh nghiệm quý báu về môn học cũng như các
kiến thức khác có liên quan.
Trong q trình thực hiện, do kiến thức và kinh nghiệm còn nhiều hạn chế, khó
có thể tránh khỏi những sai sót. Vì vậy, em rất mong nhận được những lời góp ý quý
báu từ cơ để em có thể ngày càng hồn thiện không chỉ là đồ án hiện tại, các đồ án môn
học sắp tới, đồng thời đây cũng là những hành trang góp phần hồn thiện bản thân em
trong tương lai.
Một lần nữa xin chân thành cám ơn cơ!
Nhóm thực hiện
Trường Đại học Công nghệ Thông tin, tháng 6 năm 2022
2
MỤC LỤC
LỜI CẢM ƠN
2
Phần 1: Tìm hiểu về Flutter
8
Chương 1: Tìm hiểu về Flutter
8
1.1
Dart
8
1.2
Flutter
9
1.2.1 Đặc điểm nổi bật
10
1.2.2 Lí do nên sử dụng Flutter
10
1.3
Firebase
11
1.3.1 Firebase là gì?
11
1.3.2 Các chức năng chính của Firebase được nghiên cứu áp dụng vào đồ án:
12
1.3.2.1 Firebase Cloud Storage:
12
1.3.2.2 Firebase Realtime Database:
12
1.3.2.3 Firebase Authentication:
12
1.3.2.4 Ưu điểm:
12
1.3.2.5 Nhược điểm:
13
Phần 2: Xây dựng ứng dụng bán mỹ phẩm
14
Chương 1: Thông tin chung
14
1.1
Tên đề tài : Ứng dụng bán mỹ phẩm
14
1.2
Môi trường phát triển ứng dụng: Dart, Android-IOS
14
1.3
Thông tin nhóm
14
Chương 2: Phát biểu bài tốn
2.1
Trình bày khảo sát hiện trạng
15
Nhu cầu thực tế của đề tài
16
Xác định các yêu cầu hệ thống
16
2.1.1
2.2
15
2.2.1
Các yêu cầu của hệ thống
Chương 3: Mơ hình Use-case
17
19
3.1
Sơ đồ Use-case
19
3.2
Danh sách các Actor
19
3.3
Danh sách các Use-case
20
3.4
Đặc tả Use-case
22
3.4.1
Đặc tả Use-case “Đăng nhập”
22
3.4.2
Đặc tả Use-case “Đăng ký”
23
3.4.3
Đặc tả Use-case “Đăng xuất”
23
3.4.4
Đặc tả Use-case “Tìm kiếm sản phẩm”
24
3
3.4.5
Đặc tả Use-case “Hiển thị sản phẩm theo hạng mục”
25
3.4.6
Đặc tả Use-case “Thông tin chi tiết sản phẩm”
25
3.4.7
Đặc tả Use-case “Thêm sản phẩm vào giỏ hàng”
25
3.4.8
Đặc tả Use-case “Yêu thích”
26
3.4.9
Đặc tả Use-case “Bỏ yêu thích”
26
3.4.10
Đặc tả Use-case “Xem danh sách yêu thích”
27
3.4.11
Đặc tả Use-case “Xem giỏ hàng”
27
3.4.12
Đặc tả Use-case “Chốt đơn hàng”
28
3.4.13
Đặc tả Use-case “Thay đổi, cập nhật địa chỉ giao hàng”
29
3.4.14
Đặc tả Use-case “Xem danh sách đơn hàng đã đặt”
29
3.4.15
Đặc tả Use-case “Xem chi tiết đơn hàng”
30
3.4.16
Đặc tả Use-case “Xố đơn hàng”
30
3.4.17
Đặc tả Use-case “Cập nhật thơng tin tài khoản”
31
3.4.18
Đặc tả Use-case “Thay đổi mật khẩu”
32
3.4.19
Đặc tả Use-case “Thêm review - rating”
33
3.4.20
Đặc tả Use-case “Thêm nhãn hàng/thương hiệu mới”
33
3.4.21
Đặc tả Use-case “Cập nhật nhãn hàng/thương hiệu”
34
3.4.22
Đặc tả Use-case “Thêm sản phẩm mới”
34
3.4.23
Đặc tả Use-case “Cập nhật sản phẩm”
35
3.4.24
Đặc tả Use-case “Quản lý đơn đặt hàng”
35
3.4.25
Đặc tả Use-case “Xem chi tiết đơn đặt hàng”
36
3.4.26
Đặc tả Use-case “Cập nhật trạng thái đơn đặt hàng”
37
3.4.27
Đặc tả Use-case “Xoá đơn hàng”
37
3.4.28
Đặc tả Use-case “Cập nhật thơng tin cửa hàng”
38
Chương 4: Phân tích
4.1
Sơ đồ lớp (mức phân tích)
39
39
4.1.1
Sơ đồ lớp (mức phân tích)
39
4.1.2
Danh sách các lớp đối tượng và quan hệ
39
4.1.3
Mô tả chi tiết từng lớp đối tượng
40
4.1.3.1
Lớp Brand:
40
4.1.3.2
Lớp Category:
40
4.1.3.3
Lớp Origin:
40
4.1.3.4
Lớp Gender:
41
4.1.3.5
Lớp Session:
41
4.1.3.6
Lớp Skin:
41
4
4.2
4.1.3.7
Lớp Structure:
41
4.1.3.8
Lớp User:
41
4.1.3.9
Lớp SavedAddress:
42
4.1.3.10
Lớp Prererence:
42
4.1.3.11
Lớp Product:
43
4.1.3.12
Lớp Voucher:
45
4.1.3.13
Lớp Order:
45
4.1.3.14
Lớp StoreInformation:
46
4.1.3.15
Lớp ChatRoom:
46
SƠ ĐỒ TUẦN TỰ:
48
4.2.1
Đăng nhập / Đăng ký / Đăng xuất:
48
4.2.2
Tìm kiếm / Hiển thị sản phẩm theo các hạng mục / Xem thơng tin sản phẩm:
49
4.2.3
u thích / Bỏ u thích:
50
4.2.4
Thêm sản phẩm vào giỏ hàng:
50
4.2.5
Chốt đơn hàng:
51
4.2.6
Thêm địa chỉ - Cập nhật địa chỉ:
51
4.2.7
Xem danh sách đơn hàng / Xóa đơn hàng / Xem chi tiết đơn hàng (User):
52
4.2.8
Cập nhật thông tin tài khoản – Thay đổi mật khẩu:
53
4.2.9
Thêm review - rating:
53
4.2.10
Thêm thương hiệu/nhãn hàng – Cập nhật thương hiệu/nhãn hàng:
54
4.2.11
Thêm sản phẩm – Cập nhật sản phẩm:
54
4.2.12
Quản lý đơn hàng (Admin):
55
4.2.13
Chat:
56
4.2.14
Xem thông tin cửa hàng - Cập nhật thông tin cửa hàng:
56
Chương 5: Thiết kế giao diện
5.1
Giao diện chung
57
57
5.1.1 Màn hình Giới thiệu
57
5.1.2 Màn hình Bắt đầu
57
5.1.3 Màn hình Đăng nhập:
58
5.1.4 Màn hình Quên mật khẩu:
59
5.1.5 Màn hình Tìm kiếm:
59
5.1.6 Màn hình Danh sách địa chỉ đã lưu:
60
5.1.7 Màn hình Thêm địa chỉ mới:
61
5.1.8 Màn hình Thay đổi thơng tin tài khoản:
62
5.1.9 Màn hình Thay đổi mật khẩu:
63
5
5.1.10 Màn hình Chat:
64
5.2
65
GIAO DIỆN CLIENT (KHÁCH HÀNG):
5.2.1 Màn hình Đăng ký:
65
5.2.2 Màn hình Trang chủ:
66
5.2.3 Màn hình Thơng tin chi tiết sản phẩm:
67
5.2.4 Màn hình Danh sách u thích sản phẩm:
68
5.2.5 Màn hình Đặt hàng:
68
5.2.5.1 Màn hình Giỏ hàng:
68
5.2.5.2 Màn hình Xác nhận thơng tin đơn hàng:
70
5.2.6 Màn hình Profile:
71
5.2.7 Màn hình Danh sách các đơn hàng đã đặt:
73
5.2.8 Màn hình Xem chi tiết đơn hàng:
75
5.2.9 Màn hình Danh sách yêu thích:
77
5.2.10 Thêm review - rating:
77
5.3
79
GIAO DIỆN ADMIN (CỬA HÀNG):
5.3.1 Màn hình Trang chủ:
79
5.3.2 Màn hình Quản lý nhãn hàng/thương hiệu:
80
5.3.2.1 Màn hình Danh sách nhãn hàng/thương hiệu:
80
5.3.2.2 Màn hình Thêm nhãn hàng/thương hiệu mới:
80
5.3.2.3 Màn hình Cập nhật nhãn hàng/thương hiệu:
81
5.3.3 Màn hình Quản lý sản phẩm:
82
5.3.3.1 Màn hình Danh sách sản phẩm:
82
5.3.3.2 Màn hình Thêm sản phẩm mới – Cập nhật sản phẩm mới:
83
5.3.4 Màn hình Quản lý đơn hàng:
85
5.3.4.1 Màn hình Danh sách các đơn hàng khách hàng đã đặt:
85
5.3.4.2 Màn hình Chi tiết đơn hàng:
87
5.3.5 Màn hình Chat:
88
5.3.5.1 Màn hình Danh sách phịng Chat
88
5.3.5.2 Màn hình Tìm kiếm người dùng
89
5.3.5.3 Màn hình Thay đổi thơng tin cửa hàng:
90
Chương 6: Tổng kết
91
6.1
Cơng nghệ sử dụng:
91
6.2
Độ hồn hiện chức năng:
91
6.3
Kết quả đạt được và hướng phát triển:
92
6.3.1 Kết quả đạt được:
92
6.3.2 Ưu điểm:
92
6
6.3.2.1 Nhược điểm:
92
6.3.3 Hướng phát triển:
92
Tài liệu tham khảo
94
7
Phần 1: Tìm hiểu về Flutter
Chương 1: Tìm hiểu về Flutter
1.1 Dart
Dart là ngơn ngữ lập trình đa mục đích ban đầu được phát triển bởi Google và
sau đó được Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn.
Dart được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn,
thiết bị di động và làm các ứng dụng trị chơi.
Dart là ngơn ngữ mã nguồn mở và miễn phí, được phát triển trên GitHub.
Dart là một ngơn ngữ hướng đối tượng, được xác định theo lớp, với cơ chế
garbage-collected, sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript. Nó
hỗ trợ một số tính năng của lập trình hướng đối tượng như class, interface,...
Mỗi một class (lớp) định nghĩa cho một loại đối tượng. Một class bao gồm
những nội dung sau đây:
-
Các thuộc tính (Fields)
-
Các hàm Getter và setter
-
Hàm khởi tạo (Constructor)
-
Phương thức (Function)
Ưu điểm của Dart:
-
Năng suất: Cú pháp Dart rõ ràng và súc tích, cơng cụ của nó đơn giản
nhưng mạnh mẽ. Type-safe giúp bạn xác định sớm các lỗi tinh tế. Dart
có các thư viện cốt lõi và một hệ sinh thái gồm hàng ngàn package.
8
-
Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có
được dự đốn hiệu suất cao và khởi động nhanh trên các thiết bị di động
và web.
-
Di động: Dart biên dịch thành mã ARM và x86, để các ứng dụng di động
của Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa. Đối với
các ứng dụng web, chuyển mã từ Dart sang JavaScript.
-
Dễ gần: Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú
pháp và định hướng đối tượng khơng gây ngạc nhiên của nó. Nếu bạn đã
biết C ++, C # hoặc Java, bạn có thể làm việc hiệu quả với Dart chỉ sau
vài ngày.
-
Reactive: Dart rất phù hợp với lập trình Reactive, với sự hỗ trợ để quản
lý các đối tượng tồn tại trong thời gian ngắn, chẳng hạn như các widget
UI, thông qua phân bổ đối tượng nhanh và GC. Dart hỗ trợ lập trình
khơng đồng bộ thơng qua các tính năng ngơn ngữ và API sử dụng các
đối tượng Future và Stream.
1.2 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.
Flutter là 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ở.
9
1.2.1 Đặc điểm nổi bật
Fast Development: Tính 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.2.2 Lí do nên sử dụng 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.
Phát triển ứng dụng nhanh chóng: Tính năng hot reload giúp bạn nhanh chóng
và dễ dàng thử nghiệm, xây dựng giao diện người dùng, thêm tính năng và sửa lỗi
10
nhanh hơn. Trải nghiệm tải lại lần thứ hai, mà không làm mất trạng thái, trên
emulator, simulator và device cho iOS và Android.
Giao diện người dùng đẹp và thu hút: Thỏa mãn người dùng của bạn với các
widget built-in đẹp mắt của Flutter theo Material Design và Cupertino (iOSflavor), các giao diện lập trình ứng dụng (API) chuyển động phong phú, scroll tự
nhiên mượt mà và tự nhận thức được nền tảng.
Framework hiện đại: Dễ dàng tạo giao diện người dùng của bạn với framework
hiện đại của Flutter và tập hợp các platform, layout và widget phong phú. Giải
quyết các thách thức giao diện người dùng khó khăn của bạn với các API mạnh
mẽ và linh hoạt cho 2D, animation, gesture, hiệu ứng và hơn thế nữa.
1.3 Firebase
1.3.1 Firebase là gì?
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.
Firebase cung cấp các 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
Với việc sử dụng Firebase, developer có thể tập trung vào việc phát triển
application mà không cần lo về việc sản phẩm của mình sẽ hoạt động và được
quản lý thể nào ở phía Backend.
11
1.3.2 Các chức năng chính của Firebase được nghiên cứu áp dụng vào đồ
án:
1.3.2.1 Firebase Cloud Storage:
Firebase Cloud Storage hỗ trợ việc quản lý, chia sẻ các content người dùng
upload lên như ảnh, video; cũng như sử dụng những tài nguyên ấy cho ứng dụng
của bạn.
Data được lưu trữ trong Google Cloud Storage buckets, và có thể được access
từ server.
1.3.2.2
Firebase Realtime Database:
Firebase 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.
1.3.2.3
Firebase Authentication:
Firebase Authentication là chức năng dùng để xác thực người dùng bằng
Password, số điện thoại hoặc tài khoản Google, Facebook hay Twitter, vv…
Firebase Authentication giúp thực hiện việc chia sẻ ID giữa các ứng dụng, giúp
người dùng dễ dàng tiếp cận sản phẩm hơn. Vì thế, nó là một chức năng rất quý.
1.3.2.4
Ưu điểm:
Tạo tài khoản và sử dụng dễ dàng.
Tốc độ phát triển nhanh.
Nhiều dịch vụ trong một nền tảng.
Được cung cấp bởi Google.
12
Tập trung vào phát triển giao diện người dùng.
Firebase không có máy chủ.
Machine Learning.
Tạo lưu lượng truy cập.
Theo dõi lỗi và sao lưu.
1.3.2.5
Nhược điểm:
Không phải là mã nguồn mở.
Người dùng khơng có quyền truy cập mã nguồn.
Firebase khơng hoạt động ở nhiều quốc gia.
Chỉ hoạt động với Cơ sở dữ liệu NoSQL.
Truy vấn chậm tùy vào tốc độ Internet và độ phức tạp của các thao tác truy xuất
dữ liệu.
Không phải tất cả các dịch vụ Firebase đều miễn phí.
Firebase chỉ ổn định và thực sự tiện dụng khi người dùng trả phí để sử dụng.
Chỉ chạy trên Google Cloud.
13
Phần 2: Xây dựng ứng dụng bán mỹ phẩm
Chương 1: Thông tin chung
1.1 Tên đề tài : Ứng dụng bán mỹ phẩm
1.2 Môi trường phát triển ứng dụng: Dart, Android-IOS
Hệ điều hành: Microsoft Windows, Linux
Hệ quản trị cơ sở dữ liệu: Firebase
Công cụ thiết kế giao diện: Figma
Công cụ phân tích thiết kế: Draw.io
Cơng cụ xây dựng ứng dụng: Android Studio
Ứng dụng tham khảo: Hasaki, Shopee,...
1.3 Thơng tin nhóm
STT
1
MSSV
19522018
Họ và tên
Bùi Thanh Phú
Email
14
Chương 2: Phát biểu bài tốn
2.1
Trình bày khảo sát hiện trạng
Với tốc độ tăng trưởng đáng kinh ngạc về khoa học và kĩ thuật hiện nay, song
song cùng với các cuộc cách mạng công nghiệp 4.0 và 5.0, chất lượng cuộc sống
của từng cá nhân trong xã hội không ngừng được cải thiện và nâng cao. Như một
kết quả hiển nhiên, nhu cầu được giải trí cũng khơng phải là một ngoại lệ. Có thể
nói, các thiết bị điện tử ngày nay được xem là những thiết bị không chỉ hỗ trợ,
giúp đỡ cho con người trong nhiều mục đích khác nhau mà bên cạnh đó chúng cịn
là các cơng cụ giải trí, cải thiện và nâng cao chất lượng cuộc sống. Đặc biệt là các
thiết bị di động thông minh, chúng cung cấp cho người dùng vô số các ứng dụng,
các tiện ích cơng nghệ đáp ứng được nhiều nhu cầu sử dụng khác nhau cũng như
các trải nghiệm công nghệ mới.
Không chỉ dừng lại ở nhu cầu giải trí, 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. Cụ thể, các ứng dụng Bán hàng trực
tuyến 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à những ứng dụng này mang lại được 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.
Đặc biệt, trong giai đoạn phòng và chống dịch Covid-19 vơ cùng căng thẳng và
khó khăn như hiện nay, dưới sự chỉ đạo của Nhà nước về các quy định giãn cách
xã hội, hạn chế tụ tập đông người, cũng như hạn chế các hoạt động mua bán trực
tiếp, điều này đã ảnh hưởng rất nhiều đến trải nghiệm của người dùng đối với các
nhu cầu hằng ngày, trong đó có nhu cầu thiết yếu về làm đẹp, cụ thể là mỹ phẩm.
Nhận thấy điều đó, cùng với vị trí và vai trị của thời đại cơng nghệ 5.0, em
quyết định làm ỨNG DỤNG BÁN MỸ PHẨM TRỰC TUYẾN– BE BEAUTY
để trở thành phương tiện kết nối từ xa với khách hàng trong việc đặt, mua mỹ
phẩm. Ứng dụng này khơng những có thể đảm bảo an tồn sức khỏe cho người
dùng mà cịn có thể đáp ứng được các nhu cầu cần thiết về cung và cầu đối với
15
mặt hàng mỹ phẩm, về nhu cầu làm đẹp của mỗi người và cũng như về việc duy
trì hoạt động kinh doanh của cửa hàng.
2.1.1 Nhu cầu thực tế của đề tài
Ứng dụng bán mỹ phẩm trực tuyến kinh doanh các mặt hàng mỹ phẩm bao gồm
nhiều loại sản phẩm, nhiều thương hiệu, nhiều kết cấu sản phẩm cũng như dành
cho nhiều loại da hay nhu cầu làm đẹp khác nhau. Trong bối cảnh công nghệ đang
ngày càng chiếm ưu thế và đóng vai trị to lớn trong các hoạt động kinh tế lẫn cuộc
sống con người hiện nay, đặc biệt là tình hình dịch bệnh Covid ảnh hưởng các hoạt
động kinh doanh, một số cửa hàng sẽ gặp khó khăn trong việc kinh doanh nếu
không chuyển đổi sang một mơ hình mới để tiếp cận từ xa đến người dùng. Khi
đó, các cửa hàng sẽ phải giải quyết bài toán liên quan đến quản lý số lượng mặt
hàng, đơn hàng và hoạt động bán hàng trên môi trường trực tuyến cũng như tạo
điều kiện cho khách hàng trải nghiệm và tiến hành các hoạt động giao dịch giữa
khách hàng với cửa 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.
2.2
Xác định các yêu cầu hệ thống
Tạo ra ứng dụng với tính năng bán hàng mỹ phẩm.
Giúp người dùng có thể tìm kiếm sản phẩm thích hợp và đáp ứng nhu cầu của
người dùng.
Quản lý lưu trữ tất cả thông tin cần thiết cho hệ thống (thơng tin về người dùng,
q tặng, đơn hàng-tình trạng đơn hàng, sản phẩm và danh mục).
Tìm kiếm, truy xuất các thông tin cần để xử lý một cách tức thời.
Chức năng đăng nhập, đổi mật khẩu, xem thông tin cá nhân.
Đáp ứng được lưu lượng truy xuất lớn.
Giao diện trực quan, thân thiện với người dùng.
16
2.2.1 Các yêu cầu của hệ thống
Xây dựng hệ thống giao diện thân thiện và dễ sử dụng.
Xây dựng các tính năng bán hàng. Phân loại các sản phẩm theo danh mục,
thương hiệu, bán chạy nhất, hàng.
Xây dựng tính năng danh sách u thích giúp người dùng có thể xem lại các
sản phẩm yêu thích.
Xây dựng hệ thống Trang cá nhân cho User:
-
Ứng dụng có nút để người dùng chọn ảnh làm Avatar.
-
Ứng dụng có bảng tình trạng đơn hàng giúp người dùng có thể theo dõi
và nắm bắt được tình trạng vận chuyển của đơn hàng
-
Ứng dụng có tính năng hiển thị lịch sử mua hàng.
-
Thay đổi thông tin cá nhân như địa chỉ, số điện thoại.
Xây dựng hệ thống Đăng nhập:
-
Ứng dụng có giao diện để người dùng tạo mới tài khoản và đăng nhập
bằng tài khoản đã đăng ký, bằng tài khoản Google và Facebook.
-
Ứng dụng có chức năng quên mật khẩu giúp người dùng đặt lại mật
khẩu.
Xây dựng chức năng tìm kiếm:
-
Ứng dụng cho phép người dùng tìm kiếm sản phẩm mình cần.
Xây dựng chức năng đánh giá, bình luận sản phẩm:
-
Ứng dụng cho phép người dùng đánh giá cũng như gửi bình luận về sản
phẩm đã mua. Giúp những người sắp mua khác có thể hiểu hơn về sản
phẩm
17
Xây dựng chức năng chat: Giúp người dùng khi cần trao đổi thơng tin về sản
phẩm hoặc có nhu cầu liên hệ Admin.
18
Chương 3: Mơ hình Use-case
3.1
Sơ đồ Use-case
3.2
Danh sách các Actor
STT
Tên Actor
Ý nghĩa/Ghi chú
19
1
Admin
Người chịu trách nhiệm quản lý, điều hành hệ thống
phần mềm
2
3.3
STT
Người dùng
Người trực tiếp sử dụng phần mềm
Danh sách các Use-case
Tên Use-case
Ý nghĩa/Ghi chú
1
Đăng nhập
Dùng tài khoản đã tạo đăng nhập vào hệ thống
2
Đăng xuất
Thoát tài khoản khỏi hệ thống
3
Đăng ký
Tạo tài khoản mới
4
Tìm kiếm sản phẩm
Tìm kiếm sản phẩm theo tên mỹ phẩm đã nhập
Hiển thị sản phẩm theo các
Hiển thị danh sách theo cách hạng mục như thương
hạng mục
hiệu, loại sản phẩm, …
5
Hiển thị chi tiết các thông tin về sản phẩm như tên sản
6
Xem thông tin sản phẩm
phẩm, thương hiệu, kết cấu, xuất xứ, loại da, mô tả,
vv…
7
Thêm sản phẩm vào giỏ hàng
Thêm sản phẩm muốn mua vào giỏ hàng
8
Yêu thích
Thêm sản phẩm đã chọn vào danh sách yêu thích
9
Bỏ yêu thích
Bỏ sản phẩm đã chọn khỏi danh sách yêu thích
20
10
Xem danh sách yêu thích
Xem danh sách các sản phẩm đã chọn yêu thích
11
Xem giỏ hàng
Xem danh sách các sản phẩm đã thêm vào giỏ hàng
12
Xác nhận/Thay đổi thông tin
đơn hàng
Xác nhận các thơng tin trên đơn hàng, có thể thay đổi
thông tin đơn hàng như địa chỉ giao hàng, số điện thoại,
tên người nhận
13
Chốt đơn hàng
Chốt đơn hàng
14
Xem danh sách đơn hàng
Xem danh sách các đơn hàng đã đặt với cửa hàng
15
Xem chi tiết đơn hàng (Khách
hàng)
Xem danh sách các sản phẩm đã đặt trong đơn hàng
Xóa đơn hàng (chỉ xóa được khi đơn hàng đang ở trạng
16
Xóa đơn hàng (Khách hàng)
17
Cập nhật thông tin tài khoản
18
Chat
19
Xem thông tin cửa hàng
20
Thêm sản phẩm
Thêm sản phẩm mới
21
Cập nhật sản phẩm
Cập nhật sản phẩm đang kinh doanh
thái chưa xác nhận từ bên cửa hàng)
Cập nhật thông tin tài khoản như họ tên, số điện thoại,
địa chỉ, vv…
Thực hiện việc trao đổi từ xa giữa khách hàng và cửa
hàng
Hiển thị các thông tin cơ bản của cửa hàng như tên cửa
hàng, tên chủ cửa hàng, địa chỉ cửa hàng, vv…
21
22
Thêm thương hiệu
Thêm thương hiệu/nhãn hàng mới
23
Cập nhật thương hiệu
Cập nhật thương hiệu/nhãn hàng đang hợp tác
24
Quản lý đơn đặt hàng
25
26
hàng đã đặt
Xem chi tiết đơn hàng (Chủ
Xem danh sách các sản phẩm Khách hàng đã đặt trong
cửa hàng)
đơn hàng
Cập nhật trạng thái đơn đặt
hàng
27
Xóa đơn hàng (Chủ cửa hàng)
28
Cập nhật thông tin cửa hàng
3.4
Hiển thị danh sách các đơn đặt hàng của tất cả khách
Thay đổi trạng thái đơn đặt hàng.
Xóa đơn hàng (chỉ xóa được khi đơn hàng chưa được
giao đi)
Cập nhật các thông tin của cửa hàng như tên chủ cửa
hàng, địa chỉ cửa hàng, số điện thoại, vv…
Đặc tả Use-case
3.4.1 Đặc tả Use-case “Đăng nhập”
Mô tả
Tác nhân
Luồng
chính
Khách hàng/Chủ cửa hàng đăng nhập vào ứng dụng thơng qua tài khoản đã tạo trước
đó
Khách hàng/Chủ cửa hàng
Hành vi của tác nhân
Hành vi của hệ thống
1. Khách hàng/Chủ cửa hàng yêu cầu 2. Hiển thị màn hình đăng nhập
mở màn hình Đăng nhập
3. Nhập tên tài khoản, mật khẩu. Chọn 4. Kiểm tra tên tài khoản và mật khẩu
nút Đăng nhập
5. Chuyển đến màn hình trang chủ tùy theo
vai trò đăng nhập là Khách hàng hay Chủ
cửa hàng
A1. Sai tài khoản, mật khẩu
22
Luồng thay
thế
Điều kiện
trước
Điều kiện
sau
5. Yêu cầu đăng nhập lại
Quay lại bước 2
A2. Đăng nhập bằng Facebook/Google (Khách hàng)
1. Khách hàng chọn button Facebook/Goolge
2. Chọn tài khoản Facebook/Google muốn đăng nhập
3. Chuyển đến màn hình trang chủ dành cho Khách hàng
Có tài khoản trên hệ thống hoặc có tài khoản Facebook hoặc Google
Vào trang chủ của ứng dụng tương ứng với vai trị đã đăng nhập
3.4.2 Đặc tả Use-case “Đăng ký”
Mơ tả
Tác nhân
Khách hàng đăng ký tài khoản mới để sử dụng cho việc đăng nhập vào
Khách hàng
Hành vi của tác nhân
Hành vi của hệ thống
1. Khách hàng yêu cầu mở màn hình 2. Hiển thị màn hình đăng ký
Đăng ký
Luồng
chính
3. Nhập các thông tin yêu cầu cho việc 4. Kiểm tra các thông tin xem đã đúng định
tạo tài khoản. Chọn nút Đăng ký
dạng đặt ra bởi hệ thống hay chưa
5. Kiểm tra email đã được đăng nhập ký
trước đó hay chưa
6. Gửi email xác thực
7. Người dùng xác thực thông qua mail 8. Thông báo đăng ký tài khoản thành công
đã gửi đến email người dùng đăng ký
A1. Sai định dạng các thông tin đã nhập
5. Yêu cầu nhập lại đúng định dạng các thông tin sai định dạng
Luồng thay
thế
A2. Email đã được đăng ký cho một tài khoản khác
6. Hệ thống yêu cầu người dùng đăng ký bằng email khác
A3. Người dùng chưa xác thực tài khoản và hết thời gian xác thực
7. Tài khoản sẽ không được tạo
Điều kiện
trước
Phải có email hợp lệ
Điều kiện
sau
Tạo tài khoản trên hệ thống và thông báo đã đăng ký tài khoản thành công
3.4.3 Đặc tả Use-case “Đăng xuất”
Mô tả
Khách hàng/Chủ cửa hàng đăng xuất tài khoản khỏi ứng dụng
23
Tác nhân
Khách hàng/Chủ cửa hàng
Hành vi của tác nhân
Luồng
chính
Hành vi của hệ thống
1. Khách hàng/Chủ cửa hàng chọn 2. Đăng xuất tài khoản khỏi ứng dụng
Đăng xuất
3. Hiển thị trang đăng nhập
Luồng thay
thế
Khơng có
Điều kiện
trước
Khách hàng/Chủ cửa hàng đã đăng nhập vào ứng dụng
Điều kiện
sau
Hiển thị trang đăng nhập
3.4.4 Đặc tả Use-case “Tìm kiếm sản phẩm”
Mơ tả
Tác nhân
Khách hàng/Chủ cửa hàng tìm kiếm sản phẩm theo tên mỹ phẩm đã nhập
Khách hàng/Chủ cửa hàng
Hành vi của tác nhân
Luồng
chính
Luồng thay
thế
Hành vi của hệ thống
1. Khách hàng/Chủ cửa hàng nhập tên 2. Hiển thị danh sách các sản phẩm phù hợp
sản phẩm muốn tìm trong phần Tìm với giá trị tìm kiếm người dùng đã nhập
kiếm
Khơng có
Điều kiện
trước
Khách hàng/Chủ cửa hàng đã đăng nhập vào ứng dụng
Điều kiện
sau
Hiển thị danh sách các sản phẩm phù hợp với giá trị tìm kiếm
24