MỤC TIÊU CỦA ĐỀ TÀI: - Xây dựng Ứng dụng bán sách trực tuyến cung cấp các chức năng cơ bản cụ thể là việc trình bày các thông tin sách mà cửa hàng đang kinh doanh một cách trực quan giú
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO CUỐI KÌ
ĐỒ ÁN 1
ĐỀ TÀI: TÌM HIỂU VỀ FLUTTER VÀ XÂY DỰNG
ỨNG DỤNG BÁN SÁCH TRỰC TUYẾN
Giảng viên hướng dẫn:
ThS THÁI THỤY HÀN UYỂN Sinh viên thực hiện:
NGUYỄN MINH THI 19522257
Tp Hồ Chí Minh, 12/2021
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……., ngày…… tháng……năm 2021
Người nhận xét
(Ký tên và ghi rõ họ tên)
Trang 3LỜ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 chúng em xin
chân thành gửi lời cảm ơn đến Ths THÁI THỤY 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 chúng em thực hiện và đồng thời nhận xét, góp ý để đồ án của chúng 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ợ chúng 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 để nhóm em có thể hoà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 quý báu để nhóm chúng 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, nhóm chúng em cũng muốn gửi lời cảm ơn sâu sắc đến những người
đã hỗ trợ chúng 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 chúng 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 quá 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, chúng em rất mong nhận được những lời góp ý quý báu từ cô để nhóm chúng em có thể ngày càng hoà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 hoàn thiện bản thân chúng 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 12 năm 2021
Trang 4MỤC LỤC
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 2
LỜI CẢM ƠN 3
MỤC LỤC 4
CHƯƠNG I: GIỚI THIỆU CHUNG 8
I ĐỀ TÀI: 8
II LÝ DO CHỌN ĐỀ TÀI: 8
III TÓM TẮT ĐỀ TÀI: 9
IV MỤC TIÊU CỦA ĐỀ TÀI: 9
V PHƯƠNG PHÁP NGHIÊN CỨU: 9
VI Ý NGHĨA VÀ KẾT QUẢ CỦA HƯỚNG ĐỀ TÀI: 10
1 Về mặt sản phẩm: 10
2 Về mặt tài liệu: 10
CHƯƠNG II: CÔNG NGHỆ LIÊN QUAN 11
I TÌM HIỂU VỀ FLUTTER: 11
1 Flutter: 11
2 Dart: 11
3 Lí do nên sử dụng Flutter: 12
II TÌM HIỂU VỀ FIREBASE: 12
1 Firebase là gì: 12
2 Các chức năng chính của Firebase được nghiên cứu áp dụng vào đồ án: 13
2.1 Firebase Cloud Storage: 13
2.2 Firebase Realtime Database: 13
2.3 Firebase Authentication: 13
3 Ưu điểm: 13
4 Nhược điểm: 14
CHƯƠNG III: MÔ HÌNH USE CASE 15
I SƠ ĐỒ USE CASE MỨC TỔNG QUÁT: 15
II DANH SÁCH CÁC USE CASE: 16
III ĐẶC TẢ USE CASE: 17
1 Use case Đăng nhập: 17
2 Use case Đăng ký: 18
3 Use case Đăng xuất: 19
Trang 54 Use case Tìm kiếm sách: 20
5 Use case Hiển thị sách theo hạng mục: 20
6 Use case Xem thông tin sách: 21
7 Use case Thêm sách vào giỏ hàng: 21
8 Use case Yêu thích: 22
9 Use case Bỏ yêu thích: 22
10 Use case Xem danh sách yêu thích: 23
11 Use case Xem giỏ hàng: 23
12 Use case Xác nhận/Thay đổi thông tin đơn hàng: 24
13 Use case Chốt đơn hàng: 25
14 Use case Xem danh sách đơn hàng: 26
15 Use case Xem chi tiết đơn hàng (Khách hàng): 26
16 Use case Xóa đơn hàng (Khách hàng): 27
17 Use case Cập nhật thông tin tài khoản: 27
18 Use case Chat: 28
19 Use case Xem thông tin cửa hàng: 29
20 Use case Thêm sách: 29
21 Use case Cập nhật sách: 30
22 Use case Quản lý đơn đặt hàng: 30
23 Use case Xem chi tiết đơn đặt hàng (Chủ cửa hàng): 31
24 Use case Cập nhật trạng thái đơn đặt hàng: 31
25 Use case Xóa đơn hàng (Chủ cửa hàng): 32
26 Use case Cập nhật thông tin cửa hàng: 33
CHƯƠNG IV: PHÂN TÍCH HỆ THỐNG 34
I SƠ ĐỒ LỚP: 34
1 Sơ đồ lớp mức phân tích: 34
2 Danh sách các lớp đối tượng: 34
3 Mô tả từng lớp đối tượng: 35
3.1 Lớp Users: 35
3.2 Lớp Author: 35
3.3 Lớp Category: 35
3.4 Lớp Publisher: 35
3.5 Lớp Book: 36
3.6 Lớp Inventory: 36
3.7 Lớp Favorite: 36
Trang 63.8 Lớp Order: 36
3.9 Lớp Store Information: 37
3.10 Lớp ChatRoom: 38
II SƠ ĐỒ TUẦN TỰ: 39
1 Đăng nhập / Đăng ký / Đăng xuất: 39
2 Tìm kiếm / Hiển thị sách theo hạng mục / Xem thông tin sách: 40
3 Yêu thích / Bỏ yêu thích: 40
4 Thêm sách vào giỏ hàng: 41
5 Chốt đơn hàng: 42
6 Xem danh sách đơn hàng / Xóa đơn hàng / Xem chi tiết đơn hàng: 43
7 Cập nhật thông tin tài khoản: 44
8 Xem thông tin cửa hàng / Cập nhật thông tin cửa hàng: 45
9 Quản lý sách: 45
10 Quản lý đơn hàng: 46
11 Chat: 47
CHƯƠNG V: THIẾT KẾ GIAO DIỆN 48
I GIAO DIỆN CHUNG: 48
1 Màn hình Giới thiệu 48
2 Màn hình Bắt đầu 48
3 Màn hình Đăng nhập: 49
4 Màn hình Quên mật khẩu: 49
5 Màn hình Tìm kiếm: 50
6 Màn hình Quản lý thông tin tài khoản: 50
6.1 Màn hình Thay đổi thông tin tài khoản: 50
6.2 Màn hình Thay đổi mật khẩu: 51
7 Màn hình Xem chi tiết đơn hàng: 51
II GIAO DIỆN ADMIN (CHỦ CỬA HÀNG): 52
1 Màn hình Trang chủ: 52
2 Màn hình Quản lý sách: 52
2.1 Màn hình Thông tin sách: 52
2.2 Màn hình Thêm sách: 53
2.3 Màn hình Cập nhật thông tin sách: 54
3 Màn hình Tài khoản: 54
4 Màn hình Quản lý đơn hàng: 55
5 Màn hình Thay đổi thông tin cửa hàng: 56
Trang 76 Màn hình Chat: 56
6.1 Màn hình Danh sách phòng Chat 56
6.2 Màn hình Tìm kiếm người dùng 57
6.3 Màn hình Chat 57
III GIAO DIỆN CLIENT (KHÁCH HÀNG): 58
1 Màn hình Đăng ký: 58
2 Màn hình Trang chủ: 59
3 Màn hình Thông tin sách: 59
4 Màn hình Đặt hàng: 60
4.1 Màn hình Giỏ hàng: 60
4.2 Màn hình Xác nhận thông tin đơn hàng: 61
4.3 Màn hình Thay đổi thông tin đơn hàng: 61
5 Màn hình Tài khoản: 62
6 Màn hình Đơn hàng: 63
7 Màn hình Danh sách yêu thích: 63
8 Màn hình Xem thông tin cửa hàng: 64
9 Màn hình Chat: 64
CHƯƠNG VI: TỔNG KẾT 66
I CÔNG NGHỆ SỬ DỤNG: 66
II ĐỘ HOÀN THIỆN CHỨC NĂNG: 66
III KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN: 67
1 Kết quả đạt được: 67
1.1 Ưu điểm: 67
1.2 Nhược điểm: 67
2 Hướng phát triển: 67
CHƯƠNG VII: BẢNG PHÂN CÔNG CÔNG VIỆC 68
CHƯƠNG VIII: TÀI LIỆU THAM KHẢO 69
Trang 8CHƯƠNG I: GIỚI THIỆU CHUNG
I ĐỀ TÀI:
- Công nghệ tìm hiểu: Flutter
- Ứng dụng xây dựng: Ứng dụng bán sách trực tuyến - Bibliophile
II LÝ DO CHỌN ĐỀ TÀI:
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 đối với các mặt hàng là sách
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, nhóm chúng
em quyết định làm ỨNG DỤNG BÁN SÁCH TRỰC TUYẾN – BIBLIOPHILE để
trở thành phương tiện kết nối từ xa với khách hàng trong việc đặt, mua sách Ứng dụng này không những có thể đảm bảo an toà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 mặt hàng sách, về duy trì hoạt động kinh doanh của cửa hàng
Trang 9III TÓM TẮT ĐỀ TÀI:
Ứng dụng bán sách trực tuyến kinh doanh các mặt hàng sách bao gồm nhiều thể loại, nhiều tác giả và nhiều nhà xuất bản 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
IV MỤC TIÊU CỦA ĐỀ TÀI:
- Xây dựng Ứng dụng bán sách trực tuyến cung cấp các chức năng cơ bản cụ thể là việc trình bày các thông tin sách mà cửa hàng đang kinh doanh một cách trực quan giúp khách hàng có thể tìm kiếm và chọn những quyển sách mình muốn, đặt hàng thông qua ứng dụng Thông qua ứng dụng, khách hàng có thể nắm được những thông tin về các quyển sách theo loại về tên sách, tên tác giả, tên nhà xuất bản, giá bán… Và một số chức năng khác như xử lý quá trình chọn, đặt sách, vv…
- Nghiên cứu các công nghệ liên quan để phát triển ứng dụng
- Đưa ra các báo cáo và tài liệu cho môn học
V PHƯƠNG PHÁP NGHIÊN CỨU:
- Nghiên cứu các tài liệu về nghiệp vụ liên quan các hoạt động bán hàng trực tiếp hoặc trực tuyến
- Tiến hình khảo sát lấy yêu cầu thực tế từ người dùng
- Tham khảo một số ứng dụng bán sách trực tuyến như: Fahasa, Tiki, vv…
- Nghiên cứu các tài liệu, video hướng dẫn liên quan cách ứng dụng các công nghệ mới vào quá trình xây dựng ứng dụng
Trang 10VI Ý NGHĨA VÀ KẾT QUẢ CỦA HƯỚNG ĐỀ TÀI:
1 Về mặt sản phẩm:
- Tạo ra được ứng dụng bán sách trực tuyến, đảm bảo có thể kết nối từ xa
- Xử lý được các công đoạn mua bán sách một cách nhanh chóng và hiệu quả
- Các chức năng hướng về người dùng
Trang 11CHƯƠNG II: CÔNG NGHỆ LIÊN QUAN
I TÌM HIỂU VỀ FLUTTER:
1 Flutter:
- Flutter được biến đến là một nền tảng hỗ trợ phát triển phần mềm, ứng dụng di động Những ứng dụng đa nền cho hệ điều hành iOS và Android do tập đoàn Google phát triển
- Flutter là mobile UI framework 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àn toàn miễn phí và cũng là mã nguồn mở
- Flutter gồm 2 thành phần quan trọng:
+ Một SDK (Software Development Kit): Một bộ sưu tập các công cụ sẽ
giúp bạn phát triển các ứng dụng của mình Điều này bao gồm các công cụ để biên dịch mã của bạn thành mã máy gốc (mã cho iOS và Android)
+ Một Framework (UI Library based on widgets): Một tập hợp các thành
phần giao diện người dùng (UI) có thể tái sử dụng (button, text inputs, slider, v.v.) giúp bạn có thể cá nhân hóa tùy theo nhu cầu của riêng mình
- Một số tính năng nổi bật của Flutter:
+ Flutter hiện đã và đang là một react framework
+ Sử dụng ngôn ngữ lập trình Dart đơn giản và dễ học
+ Phát triển ứng dụng nhanh
+ Giao diện người dùng rất đẹp và linh hoạt
+ Hỗ trợ rất nhiều widget khác nhau
+ Thể hiện cùng một UI trên nhiều nền tảng
+ Ứng dụng có hiệu năng cao
Trang 12- Một số ư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ẽ, là một hệ sinh thái gồm hàng ngàn package
+ 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ự đoá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
3 Lí do nên sử dụng Flutter:
- 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 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 (iOS-flavor), 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
II TÌM HIỂU VỀ FIREBASE:
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
Trang 13- 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
2 Các chức năng chính của Firebase được nghiên cứu áp dụng vào đồ án:
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
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
3 Ư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
- 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
- Sao lưu
Trang 144 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
Trang 15CHƯƠNG III: MÔ HÌNH USE CASE
I SƠ ĐỒ USE CASE MỨC TỔNG QUÁT:
Trang 16II DANH SÁCH CÁC USE CASE:
STT Tên Use case Mô tả chung
1 Đăng nhập Dùng tài khoản đã tạo đăng nhập vào hệ thống
2 Đăng ký Tạo tài khoản mới
3 Đăng xuất Thoát tài khoản khỏi hệ thống
4 Tìm kiếm sách Tìm kiếm sách theo tên sách đã nhập
5 Hiển thị sách theo hạng mục Hiển thị danh sách theo cách hạng mục như
tác giả, nhà xuất bản, thể loại, vv…
6 Xem thông tin sách
Hiển thị chi tiết các thông tin về sách như tên sách, nhà xuất bản, năm xuất bản, thể loại, tác giả, mô tả, vv…
7 Thêm sách vào giỏ hàng Thêm sách muốn mua vào giỏ hàng
8 Yêu thích Thêm sách đã chọn vào danh sách yêu thích
9 Bỏ yêu thích Bỏ sách đã chọn khỏi danh sách yêu thích
10 Xem danh sách yêu thích Xem danh sách các sách đã chọn yêu thích
11 Xem giỏ hàng Xem danh sách các sách đã 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
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ách đã đặt trong đơn hàng
16 Xóa đơn hàng (Khách hàng) Xóa đơn hàng (chỉ xóa được khi đơn hàng đang
ở trạng thái chưa xác nhận từ bên cửa hàng)
17 Cập nhật thông tin tài khoản Cập nhật thông tin tài khoản như họ tên, số
điện thoại, địa chỉ, vv…
18 Chat Thực hiện việc trao đổi từ xa giữa khách hàng
và cửa hàng
Trang 1719 Xem thông tin 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…
20 Thêm sách Thêm sách mới
21 Cập nhật sách Cập nhật sách đang kinh doanh
22 Quản lý đơn đặt hàng Hiển thị danh sách các đơn đặt hàng của tất cả
khách hàng đã đặt
23 Xem chi tiết đơn hàng (Chủ cửa
hàng)
Xem danh sách các sách Khách hàng đã đặt trong đơn hàng
24 Cập nhật trạng thái đơn đặt
hàng
Thay đổi trạng thái đơn đặt hàng lần lượt theo thứ tự: Chưa xác nhật -> Đang chuẩn bị -> Đang giao hàng -> Đã nhận hàng
25 Xóa đơn hàng (Chủ cửa hàng)
Xóa đơn hàng (chỉ xóa được khi đơn hàng đang
ở trạng thái chưa xác nhận hoặc đang chuẩn bị)
26 Cập nhật thông tin cửa hàng
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…
III ĐẶC TẢ USE CASE:
1 Use case Đăng nhập:
Mô tả 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 đó Tác nhân Khách hàng/Chủ cửa hàng
Luồng chính
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
mở màn hình Đăng nhập
2 Hiển thị màn hình đăng nhập
3 Nhập tên tài khoản, mật khẩu Chọn nút Đăng nhập
4 Kiểm tra tên tài khoản và mật khẩu
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
Trang 18Luồng thay
thế
A1 Sai tài khoản, mật khẩu
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
Vào trang chủ của ứng dụng tương ứng với vai trò đã đăng nhập
2 Use case Đăng ký:
Mô tả Khách hàng đăng ký tài khoản mới để sử dụng cho việc đăng nhập vào
Tác nhân Khách hàng
Luồng chính
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 Đăng ký
8 Thông báo đăng ký tài khoản thành công
Luồng thay
thế
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 A2 Email đã được đăng ký cho một tài khoản khác
Trang 196 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
2 Chọn tài khoản Facebook/Google muốn đăng nhập
7 Tài khoản sẽ không được tạo
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 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
Tác nhân Khách hàng/Chủ cửa hàng
Luồng chính
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 chọn Đăng xuất
2 Đăng xuất tài khoản khỏi ứng dụng
3 Hiển thị trang đăng nhập
Trang 204 Use case Tìm kiếm sách:
Mô tả Khách hàng/Chủ cửa hàng tìm kiếm sách theo tên sách đã nhập
Tác nhân Khách hàng/Chủ cửa hàng
Luồng chính
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 nhập tên sách muốn tìm trong phần Tìm kiếm
2 Hiển thị danh sách các sách phù hợp với giá trị tìm kiếm người dùng đã nhập
Hiển thị danh sách các sách ứng với giá trị tìm kiếm
5 Use case Hiển thị sách theo hạng mục:
Mô tả Khách hàng/Chủ cửa hàng chọn các hạng mục như thể loại, tác giả, nhà xuất bản để màn hình hiển thị danh sách sách tương ứng Tác nhân Khách hàng/Chủ cửa hàng
Luồng chính
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 chọn một loại thể loại
2 Hiển thị danh sách các sách tương ứng với thể loại đã chọn
Luồng thay
thế
A1 Hiển thị sách theo hạng mục tác giả
1 Khách hàng/Chủ cửa hàng chọn tên tác giả
2 Hiển thị danh sách các sách tương ứng với tác giả đã chọn A1 Hiển thị sách theo hạng mục nhà xuất bản
1 Khách hàng/Chủ cửa hàng chọn tên nhà xuất bản
2 Hiển thị danh sách các sách tương ứng với nhà xuất bản đã chọn
Trang 216 Use case Xem thông tin sách:
Mô tả Khách hàng/Chủ cửa hàng xem chi tiết các thông tin của sách như tên sách, tác giả, nhà xuất bản, năm xuất bản, vv… Tác nhân Khách hàng/Chủ cửa hàng
Luồng chính
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 chọn một quyển sách
2 Hiển thị màn hình Thông tin sách ứng với sách đã chọn
Hiển thị trang thông tin sách
7 Use case Thêm sách vào giỏ hàng:
Mô tả Khách hàng chọn số lượng sách muốn mua và thêm vào giỏ hàng
Tác nhân Khách hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Khách hàng đang ở màn hình Thông tin sách ứng với sách đã chọn
2 Khách hàng chọn số lượng sách muốn mua
3 Khách hàng chọn thêm sách vào giỏ hàng
4 Kiểm tra số lượng sách hiện tại ứng với sách Khách hàng chọn xem có đáp ứng được không
5 Thêm sách và số lượng Khách hàng muốn mua vào giỏ hàng Thông báo thêm thành công
Trang 22Số lượng sách người dùng muốn mua được thêm vào giỏ hàng
8 Use case Yêu thích:
Mô tả Khách hàng thêm sách vào danh sách yêu thích
Tác nhân Khách hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Khách hàng đang ở màn hình Thông tin sách ứng với sách đã chọn
2 Khách hàng chọn biểu tượng trái tim
3 Đổi màu trái tim sang đỏ và thêm sách Khách hàng đã tim vào danh sách yêu thích Thông báo đã thêm sách vào danh sách yêu thích
Điều kiện
sau
Thêm sách Khách hàng đã tim vào danh sách yêu thích
9 Use case Bỏ yêu thích:
Mô tả Khách hàng bỏ sách khỏi danh sách yêu thích
Tác nhân Khách hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Khách hàng đang ở màn hình Thông tin sách ứng với sách đã chọn
2 Sách đã chọn đã được thêm vào danh sách yêu thích trước đó
3 Hiển thị trái tim màu đỏ
Trang 233 Khách hàng chọn vào biểu tượng trái tim
4 Đổi màu trái tim sang xám và bỏ sách này khỏi danh sách yêu thích Thông báo đã bỏ sách khỏi danh sách yêu thích
Điều kiện
sau
Bỏ sách khỏi danh sách yêu thích
10 Use case Xem danh sách yêu thích:
Mô tả Khách hàng xem danh sách các sách đã yêu thích / đã tim
Tác nhân Khách hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Khách hàng chọn mở Danh sách sách yêu thích
2 Hiển thị màn hình Danh sách sách yêu thích
Hiển thị màn hình Danh sách sách yêu thích
11 Use case Xem giỏ hàng:
Mô tả Khách hàng xem danh sách các sách đã thêm ở trong giỏ hàng
Tác nhân Khách hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Khách hàng chọn biểu tượng Giỏ hàng
2 Hiển thị màn hình Giỏ hàng chứa các sách Khách hàng đã thêm vào
Luồng thay
thế Không có
Trang 24Hiển thị màn hình Giỏ hàng chứa các sách Khách hàng đã thêm vào
12 Use case Xác nhận/Thay đổi thông tin đơn hàng:
2 Khách hàng điều chỉnh số lượng các sách trong giỏ hàng theo ý muốn
3 Khách hàng chọn Checkout 4 Hiển thị màn hình Xác nhận đơn hàng
5 Khách hàng giữ nguyên thông tin địa chỉ, số điện thoại
Luồng thay
thế
A1 Khách hàng thay đổi địa chỉ
5 Khách hàng chọn Change ở mục địa chỉ
6 Ứng dụng hiển thị trang Thay đổi địa chỉ
7 Khách hàng nhập địa chỉ muốn thay đổi
8 Hệ thống cập nhật địa chỉ ứng với giá trị đã nhập trên tài khoản Khách hàng và ứng dụng chuyển về màn hình Xác nhận đơn hàng với thông tin địa chỉ đã được cập nhật
A2 Khách hàng thay đổi số điện thoại
5 Khách hàng chọn Change ở mục số điện thoại
6 Ứng dụng hiển thị trang Thay đổi số điện thoại
7 Khách hàng nhập số điện thoại muốn thay đổi
8 Hệ thống cập nhật số điện thoại ứng với giá trị đã nhập trên tài khoản Khách hàng
và ứng dụng chuyển về màn hình Xác nhận đơn hàng với thông tin số điện thoại đã được cập nhật
Trang 2513 Use case Chốt đơn hàng:
Mô tả Khách hàng chốt đơn hàng và gửi đơn hàng đến cửa hàng
Tác nhân Khách hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Khách hàng đang ở màn hình Xác nhận đơn hàng
2 Khách hàng chốt đơn hàng 3 Kiểm tra số lượng các sách Khách hàng
muốn mua liệu kho của cửa hàng có thể đáp ứng đủ hay không
4 Hiển thị thông báo đã chốt đơn hàng thành công
5 Chọn quay về trang chủ 6 Chuyển về trang chủ
Luồng thay
thế
A1 Một trong số các sách Khách hàng muốn mua cửa hàng không thể đáp ứng được
số lượng
4 Thông báo không thể đáp ứng được đơn hàng
5 Xóa đơn hàng và các sách trong giỏ hàng
6 Quay lại trang chủ
Trang 2614 Use case Xem danh sách đơn hàng:
Mô tả Khách hàng xem danh sách các đơn hàng đã đặt lần lượt ở 4 trạng thái: Chưa xác nhận, Đang chuẩn bị, Đang giao hàng, Đã nhận hàng Tác nhân Khách hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Khách hàng chọn Danh sách đơn hàng
2 Hiển thị màn hình Danh sách đơn hàng
2 Chọn các tab trạng thái các đơn hàng muốn xem
3 Hiển thị danh sách các đơn hàng người dùng đã đặt ứng với trạng thái đã chọn
Hiển thị danh sách các đơn hàng Khách hàng đã đặt
15 Use case Xem chi tiết đơn hàng (Khách hàng):
Mô tả Khách hàng xem chi tiết các sách đã mua trong đơn hàng đã chọn
Tác nhân Khách hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Khách hàng đang ở màn hình Danh sách đơn hàng
2 Chọn đơn hàng muốn xem 3 Hiển thị danh sách các sách đã mua trong
Trang 2716 Use case Xóa đơn hàng (Khách hàng):
Mô tả Khách hàng xóa đơn hàng
Tác nhân Khách hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Khách hàng đang ở màn hình Danh sách đơn hàng
2 Kéo sang phải trên đơn hàng muốn xóa
3 Hệ thống xóa đơn hàng Khách hàng đã chọn, thông báo xóa thành công và cập nhật danh sách đơn hàng sau khi đã xóa trên màn hình
Điều kiện
sau
Xóa đơn hàng Khách hàng chọn khỏi danh sách đơn hàng trên màn hình
17 Use case Cập nhật thông tin tài khoản:
Mô tả
Khách hàng/Chủ cửa hàng cập nhật một số thông tin tài khoản như avatar, họ tên,
số điện thoại, địa chỉ, vv…
Tác nhân Khách hàng/Chủ cửa hàng
Luồng chính
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 chọn Thay đổi thông tin tài khoản
2 Hiển thị màn hình Thay đổi thông tin tài khoản
3 Điền, thay đổi các thông tin muốn cập nhật
4 Kiểm tra các giá trị xem có đúng định dạng, hợp lệ hay không
5 Cập nhật thông tin tài khoản trên hệ thống và trên màn hình ứng dụng Thông báo cập nhật thông tin tài khoản thành công
Luồng thay
thế
A1 Nhập thông tin sai định dạng
5 Thông báo sai định dạng và yêu cầu nhập lại
Trang 28A2 Thay đổi mật khẩu
1 Khách hàng/Chủ cửa hàng chọn Đổi mật khẩu
2 Ứng dụng hiển thị màn hình Đổi mật khẩu
3 Khách hàng/Chủ cửa hàng nhập mật khẩu hiện tại, mật khẩu mới
4 Kiểm tra mật khẩu hiện tại có đúng hay không, kiểm tra định dạng các giá trị mật khẩu, nếu đúng thì tiếp tục thực hiện bước 5, nếu không thì thông báo lỗi và quay lại bước 3
5 Hệ thống cập nhật mật khẩu tài khoản và thông báo đã cập nhật thành công
Cập nhật thông tin tài khoản của Khách hàng/Chủ cửa hàng
18 Use case Chat:
Mô tả Thực hiện trao đổi từ xa giữa Chủ cửa hàng và Khách hàng
Tác nhân Khách hàng/Chủ cửa hàng
Luồng chính
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 chọn biểu tượng Tin nhắn
2 Nếu tài khoản đang đăng nhập là Khách hàng thì sẽ hiển thị màn hình Chat trao đổi tin nhắn giữa Khách hàng và Chủ cửa hàng Ngược lại nếu là Chủ cửa hàng đang đăng nhập, sẽ hiển thị danh sách các Khách hàng
đã nhắn tin với cửa hàng
3 Chủ cửa hàng chọn Khách hàng muốn nhắn tin
4 Hiển thị màn hình Chat trao đổi tin nhắn giữa Chủ cửa hàng và Khách hàng
Trang 2919 Use case Xem thông tin cửa hàng:
Mô tả Khách hàng xem các thông tin của cửa hàng như họ tên chủ cửa hàng, địa chỉ cửa hàng, số điện thoại cửa hàng, tên cửa hàng, vv… Tác nhân Khách hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Khách hàng chọn Thông tin cửa hàng
2 Hiển thị màn hình Thông tin cửa hàng
20 Use case Thêm sách:
Mô tả Chủ cửa hàng thêm sách mới bao gồm các thông tin như tên sách, tác giả, năm xuất bản, nhà xuất bản, giá, vv… Tác nhân Chủ cửa hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Chủ cửa hàng chọn Thêm sách 2 Hiển thị màn hình Thêm sách
3 Chủ cửa hàng nhập thông tin sách muốn thêm Chọn Thêm
4 Kiểm tra các giá trị đã nhập hoặc chọn
5 Thêm sách vào hệ thống và thông báo đã thêm sách thành công
Luồng thay
thế
A1 Sai định dạng thông tin sách
5 Thông báo sai định dạng thông tin và quay lại bước 3
Trang 302 Chủ cửa hàng chọn Cập nhật Sách 3 Hiển thị màn hình Cập nhật sách
4 Chủ cửa hàng điền các thông tin sách muốn cập nhật Chọn Cập nhật
5 Kiểm tra các giá trị đã nhập hoặc chọn
6 Cập nhật thông tin sách ứng với sách đã chọn trên hệ thống và thông báo đã cập nhật thành công
Luồng thay
thế
A1 Sai định dạng thông tin sách
6 Thông báo sai định dạng thông tin và quay lại bước 4
Cập nhật thông tin sách đã chọn trên hệ thống
22 Use case Quản lý đơn đặt hàng:
Mô tả Chủ cửa hàng xem danh sách toàn bộ các đơn đặt hàng của các Khách hàng ứng với các trạng thái lần lượt: Chưa xác nhận, Đang chuẩn bị, Đang giao hàng, Đã nhận hàng Tác nhân Chủ cửa hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Chủ cửa hàng chọn Quản lý đơn đặt hàng
2 Hiển thị màn hình Danh sách đơn hàng chứa toàn bộ các đơn đặt hàng của các Khách hàng
3 Chủ cửa hàng chọn một tab trạng thái đơn hàng
4 Hiển thị danh sách toàn bộ các đơn hàng của các Khách hàng ứng với trạng thái đã chọn
Luồng thay
thế Không có
Trang 3123 Use case Xem chi tiết đơn đặt hàng (Chủ cửa hàng):
Mô tả Chủ cửa hàng xem chi tiết các sách đã mua trong đơn hàng của Khách hàng đã chọn Tác nhân Chủ cửa hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Chủ cửa hàng đang ở màn hình Danh sách đơn hàng
2 Chọn đơn hàng muốn xem 3 Hiển thị danh sách các sách đã đặt mua
Hiển thị danh sách các sách Khách hàng đã mua trong đơn hàng đã chọn
24 Use case Cập nhật trạng thái đơn đặt hàng:
Mô tả Chủ cửa hàng cập nhật trạng thái các đơn đặt hàng lần lượt theo thứ tự: Chưa xác nhận -> Đang chuẩn bị -> Đang giao hàng -> Đã nhận hàng Tác nhân Chủ cửa hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Chủ cửa hàng đang ở màn hình Danh sách đơn hàng
2 Chọn đơn hàng muốn cập nhật trạng thái và vuốt theo hướng từ trái sang phải
3 Cập nhật trạng thái đơn hàng theo thứ tự: Chưa xác nhận -> Đang chuẩn bị -> Đang giao hàng -> Đã nhận hàng Thông báo cập nhật đơn hàng thành công
Trang 324 Cập nhật màn hình Dang sách đơn hàng chứa các đơn hàng ứng với trạng thái hiện tại đang chọn
Điều kiện
sau
Cập nhật trạng thái của đơn hàng đã chọn
25 Use case Xóa đơn hàng (Chủ cửa hàng):
Mô tả Chủ cửa hàng xóa đơn hàng
Tác nhân Chủ cửa hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Chủ cửa hàng đang ở màn hình Danh sách đơn hàng
2 Kéo sang phải trên đơn hàng muốn xóa
3 Hệ thống xóa đơn hàng Chủ cửa hàng đã chọn, thông báo xóa thành công và cập nhật danh sách đơn hàng sau khi đã xóa trên màn hình
Điều kiện
sau
Xóa đơn hàng đã chọn khỏi danh sách các đơn hàng
Trang 3326 Use case Cập nhật thông tin cửa hàng:
Mô tả Chủ cửa hàng cập nhật các thông tin của cửa hàng như họ tên chủ cửa hàng, số điện thoại cửa hàng, địa chỉ cửa hàng, vv… Tác nhân Chủ cửa hàng
Luồng chính
Hành vi của tác nhân Hành vi của hệ thống
1 Chủ cửa hàng chọn Cập nhật thông tin cửa hàng
2 Hiển thị màn hình Cập nhật thông tin cửa hàng
3 Điền các thông tin muốn cập nhật 4 Kiểm tra các thông tin đã nhập, chọn xem
đúng định dạng hay chưa
5 Cập nhật thông tin trên hệ thống và màn hình hiện tại Thông báo cập nhật thành công
Luồng thay
thế
A1 Sai định dạng thông tin
5 Thông báo sai định dạng và quay lại bước 3
Trang 34CHƯƠNG IV: PHÂN TÍCH HỆ THỐNG