You are on page 1of 188

Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

1. Thông tin chung


Xây dựng ứng dụng mobile iOS bán
Tên đề tài hàng thương hiệu Apple bằng SwiftUI,
Firebase

Họ và tên sinh viên: Phạm Văn Phong

Điện thoại liên lạc: 0327018706

Email: Phamvanphong3699@gmail.com

Lớp: Công Nghệ Phần Mềm K62

Hệ đào tạo: Đại học chính quy

Đồ án tốt nghiệp được thực hiện tại: Hà Nội

Thời gian làm ĐATN: 2022

2. Mục tiêu của ĐATN


Áp dụng được ngôn ngữ lập trình SwiftUI, dịch vụ cơ sở dữ liệu Firebase xây dựng
thành công ứng dụng mobile iOS bán hàng thương hiệu Apple bằng SwiftUI, Firebase.
3. Các nhiệm vụ cụ thể của ĐATN
Tìm tài liệu tổng quan về các ứng dụng tương tự trên thế giới và ở Việt Nam.
Thu thập, phân tích yêu cầu yêu cầu của ứng dụng thương mại điện thử từ các ứng
dụng khác.
Tiến hành, phân tích đặc tả: Mô tả bài toán.
Phân tích thiết kế hệ thống: Xác định các tác nhân, use case, đưa ra kịch bản và vẽ
các use case, biểu đồ lớp, biểu đồ thực thể, biểu đồ tuần tự, biểu đồ hoạt động.
Lập trình ứng dụng.

Phạm Văn Phong I Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

4. Lời cam đoan của sinh viên:


Tôi – Phạm Văn Phong – cam kết ĐATN là công trình nghiên cứu của bản thân tôi
dưới sự hướng dẫn của ThS. Hoàng Anh Đức.
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất
kỳ công trình nào khác.

Hà Nội, ngày 1 tháng 6 năm 2022


Tác giả ĐATN
Phạm Văn Phong
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép
bảo vệ:
Hà Nội, ngày tháng năm 2022
Cán bộ hướng dẫn
ThS. Hoàng Anh Đức

Phạm Văn Phong II Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP

Đồ án tốt nghiệp có nội dung xây dựng thành công ứng dụng bán hàng thương hiệu
Apple bằng SwiftUI, Firebase. Báo cáo đồ án bao gồm bốn chương. Chương 1 trình bày
tổng quan, giới thiệu về thương mại điện tử và xu hướng của thương mại điện tử trong thời
điểm hiện tại, đưa ra mô tả bài toán xây dựng ứng dụng bán các sản phẩm thương hiệu
Apple. Cùng với đó là thu thập các yêu cầu của một ứng dụng thương mại điện tử qua các
ứng dụng làm nền tảng cho đề tài. Ở chương tiếp theo, Đồ án trình bày một số cơ sở lý
thuyết về ngôn ngữ lập trình Swift, SwiftUI, hệ thống cơ sở dữ liệu Firebase, cổng thanh
toán VNPAY và giới thiệu phương pháp tìm kiếm bằng giọng nói và cách hoạt động của
nó. Đồng thời đưa ra các ưu nhược điểm cho từng cơ sở lý thuyết. Trong chương 3, tác giả
đồ án tiến hành xác định các tác nhân, use case, đưa ra kịch bản và vẽ các use case, biểu đồ
lớp, biểu đồ thực thể, biểu đồ tuần tự, biểu đồ hoạt động. Các biểu đồ được tác giả trình
bày qua các hình ảnh chân thực rõ nét. Về chương cuối cùng của đồ án tác giả đưa ra các
yêu cầu về cấu hình cài đặt, cấu hình đang được thực chạy và các giao diện chính các chức
năng của sản phẩm. Sau khi trải qua bốn chương tác giả đưa ra kết luận và hướng phát
triển của đề tài.

Phạm Văn Phong III Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

LỜI CẢM ƠN

Xin chân thành cảm ơn Bộ môn Công Nghệ Phầm Mềm và Khoa Công Nghệ Thông
Tin Trường Đại học Mỏ - Địa Chất đã tạo điều kiện cho em được thực hiện đề tài này.
Em xin chân thành cảm ơn sự giúp đỡ hướng dẫn tận tình của ThS. Hoàng Anh Đức
là người tận tình hướng dẫn em, đã có những trao đổi, chỉ dẫn giúp em các vấn đề và hoàn
thiện hơn trong suốt thời gian thực hiện đồ án tốt nghiệp.
Em cảm ơn các thầy cô trong khoa đã dạy em những môn học giúp ích vào đồ án tốt
nghiệp và các công việc sau này.
Cảm ơn công ty Viettel Software Services đã tiếp nhận em thực thập để được học hỏi
các kiến thức mới, khắc phục các lỗi sai trong quá tình tự học về lập trình ứng dụng di
động iOS và bổ sung các kiến thức mới về ngôn ngữ lập trình Swift để áp dụng vào đồ án
tốt nghiệp.

Phạm Văn Phong IV Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

MỤC LỤC

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP...............................................................I


TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP.................................................................III
LỜI CẢM ƠN......................................................................................................................IV
MỤC LỤC.............................................................................................................................V
DANH MỤC CÁC HÌNH VẼ...............................................................................................X
DANH MỤC CÁC BẢNG BIỂU......................................................................................XV
DANH MỤC CÁC TỪ VIẾT TẮT.................................................................................XVII
MỞ ĐẦU................................................................................................................................1
CHƯƠNG 1 TỔNG QUAN...................................................................................................2
1.1 Tổng quan về lập trình mobile iOS.............................................................................2
1.2 Tổng quan thương mại điện tử....................................................................................2
1.2.1 Giới thiệu về thương mại điện tử và thương mại di động....................................2
1.2.2 Xu hướng của thương mại điện tử.......................................................................3
1.2.3 Các loại hình thương mại điện tử cở bản.............................................................3
1.2.4 Chức năng và vai trò của thương mại điện tử đối với doanh nghiêp...................4
1.2.5 Tác động của thương mại điện tử đối với doanh nghiệp.....................................5
1.3 Một số ứng dụng thương mạng điện thử phổ biến trong nước và nước ngoài............5
1.4 Xác định các yêu cầu của một ứng dụng thương mại điện tử cần có..........................8
1.5 Nhiệm vụ vai trò của các vị trí trong ứng dụng...........................................................8
1.6 Mô tả bài toán..............................................................................................................9
1.7 Kết chương................................................................................................................10
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT.....................................................................................11
2.1 Ngôn ngữ lập trình Swift...........................................................................................11
2.1.1 Giới thiệu ngôn ngữ lập trình Swift...................................................................11
2.1.2 Đặc điểm............................................................................................................11
2.1.3 Ưu điểm.............................................................................................................12
2.1.4 Nhược điểm.......................................................................................................12
2.2 Ngôn ngữ lập trình SwiftUI.......................................................................................12
2.2.1 Giới thiệu ngôn ngữ lập trình SwiftUI...............................................................12
2.2.2 Các tính năng nổi bật của SwiftUI.....................................................................13

Phạm Văn Phong V Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

2.3 Hệ thống VNPAY......................................................................................................15


2.3.1 Giới thiệu về VNPAY........................................................................................15
2.3.2 Lợi ích khi sử dụng VNPAY.............................................................................15
2.3.3 Các thức hoạt động của hệ thống VNPAY........................................................17
2.4 Dịch vụ cơ sở dữ liệu Firebase..................................................................................18
2.4.1 Giới thiệu Firebase.............................................................................................18
2.4.2 Các dịch vụ nổi bật của Firebase.......................................................................18
2.4.3 Ưu điểm và hạn chế của Firebase......................................................................20
2.5 Tìm kiếm bằng giọng nói..........................................................................................21
2.5.1 Giới thiệu, và cách thức hoạt động của tìm kiếm bằng giọng nói.....................21
2.5.2 Ưu và nhược điểm của tìm kiếm........................................................................22
2.6 Kết chương................................................................................................................22
CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG...........................................................23
3.1 Xác định các tác nhân và các use case......................................................................23
3.1.1 Xác định các tác nhân và use case.....................................................................23
3.1.2 Các use case và ý nghĩa.....................................................................................23
3.2 Use Case....................................................................................................................25
3.2.1 Use Case tổng quát............................................................................................25
3.2.2 Phân rã use case Đăng nhập...............................................................................26
3.2.3 Phân rã use case Đăng ký..................................................................................27
3.2.4 Phân rã use case Quên mật khẩu........................................................................28
3.2.5 Phân rã use case Nhắn tin..................................................................................29
3.2.6 Phân rã use case Góp ý về ứng dụng.................................................................30
3.2.7 Phân rã use case Quản lý giỏ hàng....................................................................30
3.2.8 Phân rã use case Đặt hàng.................................................................................32
3.2.9 Phân rã use case Xem đơn hàng đã đặt..............................................................34
3.2.10 Phân rã use case Quản lý tài khoản cá nhân....................................................37
3.2.11 Phân rã use case Quản lý sổ địa chỉ.................................................................41
3.2.12 Phân rã use case Tìm kiếm sản phẩm..............................................................44
3.2.13 Phân rã use case Xem sản phẩm......................................................................46
3.2.14 Phân rã use case Xem vị trí cửa hàng..............................................................49
3.2.15 Phân rã use case Quản lý đơn hàng.................................................................50
3.2.16 Phân rã use case Quản lý sản phẩm.................................................................52

Phạm Văn Phong VI Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.2.17 Phân rã use case Xem thống kê.......................................................................55


3.3 Biểu đồ lớp................................................................................................................56
3.3.1 Xác định các lớp, thuộc tính, phương thức........................................................56
3.3.2 Biểu đồ lớp.........................................................................................................59
3.4 Biểu đồ thực thể.........................................................................................................60
3.5 Biểu đồ tuần tự..........................................................................................................61
3.5.1 Biểu đồ tuần tự Đăng nhập................................................................................61
3.5.2 Biểu đồ tuần tự Đăng ký....................................................................................61
3.5.3 Biểu đồ tuần tự Quên mật khẩu.........................................................................62
3.5.4 Biểu đồ tuần tự Góp ý........................................................................................63
3.5.5 Biểu đồ tuần tự Thêm sản phẩm vào giỏ hàng..................................................63
3.5.6 Biểu đồ tuần tự Nhắn tin....................................................................................64
3.5.7 Biểu đồ tuần tự Xoá sản phẩm trong giỏ hàng..................................................65
3.5.8 Biểu đồ tuần tự Thay đổi số lượng sản phẩm trong giỏ hàng............................65
3.5.9 Biểu đồ tuần tự Đặt hàng...................................................................................66
3.5.10 Biểu đồ tuần tự Xem sản phẩm........................................................................67
3.5.11 Biểu đồ tuần tự Xem vị trí nhà hàng................................................................67
3.5.12 Biểu đồ tuần tự Thanh toán bằng thẻ qua hệ thống VNPAY..........................68
3.5.13 Biểu đồ tuần tự Chọn địa chỉ giao hàng...........................................................69
3.5.14 Biểu đồ tuần tự Tìm kiếm sản phẩm bằng tên.................................................70
3.5.15 Biểu đồ tuần tự Tìm kiếm bằng giọng nói.......................................................71
3.5.16 Biêu đồ tuần tự Lọc sản phẩm tìm kiếm..........................................................72
3.5.17 Biểu đồ tuần tự Cập nhập ảnh đại điện............................................................73
3.5.18 Biểu đồ tuần tự Thay đổi tên...........................................................................74
3.5.19 Biểu đồ tuần tự Cập nhập số điện thoại...........................................................75
3.5.20 Biểu đồ tuần tự Thay đổi mật khẩu..................................................................76
3.5.21 Biểu đồ tuần tự Thêm địa chỉ...........................................................................77
3.5.22 Biểu đồ tuần tự Cập nhập địa chỉ.....................................................................78
3.5.23 Biểu đồ tuần tự Xoá địa chỉ.............................................................................79
3.5.24 Biểu đồ tuần tự Xem đơn hàng đã đặt.............................................................80
3.5.25 Biểu đồ tuần tự Xem chi tiết đơn hàng............................................................81
3.5.26 Biểu đồ tuần tự Huỷ đơn hàng.........................................................................82
3.5.27 Biểu đồ tuần tự Đánh giá sản phẩm.................................................................83

Phạm Văn Phong VII Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.28 Biểu đồ tuần tự Thêm sản phẩm......................................................................84


3.5.29 Biểu đồ tuần tự Cập nhập sản phẩm................................................................85
3.5.30 Biểu đồ tuần tự Xoá sản phẩm.........................................................................86
3.5.31 Biểu đồ tuần tự Cập nhập trạng thái đơn hàng................................................87
3.5.32 Biểu đồ tuần tự Xem thống kê doanh thu........................................................88
3.5.33 Biểu đồ tuần tự Đăng xuất...............................................................................88
3.5.34 Biểu đồ tuần tự Xem thống kê tổng quan đơn hàng........................................89
3.6 Biểu đồ hoạt động......................................................................................................90
3.6.1 Biểu đồ hoạt động Đăng nhập...........................................................................90
3.6.2 Biểu đồ hoạt động Đăng ký...............................................................................91
3.6.3 Biểu dồ hoạt động Quên mật khẩu....................................................................92
3.6.4 Biểu đồ hoạt động Góp ý...................................................................................93
3.6.5 Biểu đồ hoạt động Nhắn tin...............................................................................94
3.6.6 Biểu đô hoạt động Thêm sản phẩm vào giỏ hàng..............................................95
3.6.7 Biểu đồ hoạt động Xoá sản phẩm trong giỏ hàng..............................................96
3.6.8 Biểu đồ hoạt động Thay đổi số lượng sản phẩm trong giỏ hàng.......................97
3.6.9 Biểu đồ hoạt động Đặt hàng..............................................................................98
3.6.10 Biểu đồ hoạt động Xem sản phẩm...................................................................99
3.6.11 Biểu đồ hoạt động Xem vị trí cửa hàng...........................................................99
3.6.12 Biểu đồ hoạt động Thanh toán bẳng thẻ qua VNPAY...................................100
3.6.13 Biểu đồ hoạt động Chọn địa chỉ giao hàng....................................................101
3.6.14 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng tên..........................................101
3.6.15 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng giọng nói................................102
3.6.16 Biểu đồ hoạt động Lọc sản phẩm tìm kiếm...................................................103
3.6.17 Biểu đồ hoạt động Cập nhập ảnh đại diện.....................................................103
3.6.18 Biểu đồ hoạt động Thay đổi tên.....................................................................104
3.6.19 Biểu đồ hoạt động Cập nhập số điện thoại....................................................104
3.6.20 Biểu đồ hoạt động Thay đổi mật khẩu...........................................................105
3.6.21 Biểu đồ hoạt động Đăng xuất........................................................................106
3.6.22 Biểu đồ hoạt động Thêm địa chỉ....................................................................106
3.6.23 Biểu đồ hoạt động Cập nhập địa chỉ..............................................................107
3.6.24 Biểu đồ hoạt động Xoá địa chỉ......................................................................107
3.6.25 Biểu đồ hoạt động Xem danh sách đơn hàng................................................108

Phạm Văn Phong VIII Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.26 Biểu đồ hoạt động Xem chi tiết đơn hàng.....................................................108


3.6.27 Biểu đồ hoạt động Đánh giá sản phẩm..........................................................109
3.6.28 Biểu đồ hoạt động Huỷ đơn hàng..................................................................109
3.6.29 Biểu đồ hoạt động Thêm sản phẩm...............................................................110
3.6.30 Biểu đồ hoạt động Cập nhập sản phẩm.........................................................111
3.6.31 Biểu đồ hoạt động Cập nhập trạng thái đơn hàng..........................................111
3.6.32 Biểu đồ hoạt động Xem thống kê..................................................................112
3.7 Kết chương..............................................................................................................112
CHƯƠNG 4 KẾT QUẢ CÀI ĐẶT, THỬ NGHIỆM........................................................113
4.1 Thông tin về cấu hình cài đặt..................................................................................113
4.2 Kết quả thử nghiệm.................................................................................................114
4.2.1 Giao diện chức năng Đăng nhập, Đăng ký, Quên mật khẩu............................114
4.2.2 Giao diện các chức năng cho khách hàng........................................................117
4.2.3 Giao diện các chức năng cho người quản trị...................................................134
4.2.4 Giao diện các chứng năng sử dụng chung.......................................................139
4.3 Kết chương..............................................................................................................143
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.........................................................................144
TÀI LIỆU THAM KHẢO..................................................................................................145
PHỤ LỤC...........................................................................................................................146

Phạm Văn Phong IX Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

DANH MỤC CÁC HÌNH VẼ

Hình 1-1 Giao diện trang chủ Shopee....................................................................................6


Hình 1-2 Giao diện trang chủ Amazone................................................................................7
Hình 2-1 Biểu tượng ngôn ngữ lập trình Swift nguồn [3]....................................................11
Hình 2-2 SwiftUI chạy trên nhiều thiết bị nguồn [4]...........................................................13
Hình 2-3 Kéo thả các UI......................................................................................................14
Hình 2-4 Biể tượng VNPAY nguồn [5]...............................................................................15
Hình 2-5 Mô hình hoạt động của VNPAY...........................................................................17
Hình 2-6 Biểu tượng Firebase nguồn [6].............................................................................18
Hình 2-7 Firebase Real-time Database nguồn [6]................................................................19
Hình 2-8 Firebase Authentication nguồn [6].......................................................................19
Hình 2-9 Firebase Cloud Messaging nguồn [6]...................................................................20
Hình 2-10 Mô tả cách thức của nhận diện giọng nói nguồn [7]...........................................21
Hình 3-1 Use case tổng quát................................................................................................25
Hình 3-2 Phân rã use case Đăng nhập..................................................................................26
Hình 3-3 Phân rã use case Đăng ký.....................................................................................27
Hình 3-4 Phân rã use case Quên mật khẩu...........................................................................28
Hình 3-5 Phân rã use case Nhắn tin.....................................................................................29
Hình 3-6 Phân rã use case Góp ý về ứng dụng....................................................................30
Hình 3-7 Phân rã use case Quản lý giỏ hàng.......................................................................30
Hình 3-8 Phân rã use case Thay đổi số lượng sản phẩm trong giỏ hàng.............................31
Hình 3-9 Phân rã use case Đặt hàng.....................................................................................32
Hình 3-10 Phân rã use case Xem đơn hàng đã đặt...............................................................34
Hình 3-11 Phân rã use case Đánh giá sản phẩm..................................................................36
Hình 3-12 Phân rã use case Quản lý tài khoản cá nhân.......................................................37
Hình 3-13 Phân rã use case Quản lý sổ địa chỉ....................................................................41
Hình 3-14 Phân rã use case Thêm địa chỉ............................................................................41
Hình 3-15 Phân rã use case Cập nhập địa chỉ......................................................................42
Hình 3-16 Phân rã use case Tìm kiếm sản phẩm.................................................................44
Hình 3-17 Phân rã use case Lọc sản phẩm tìm kiếm...........................................................45

Phạm Văn Phong X Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-18 Phân rã use case Xem sản phẩm.........................................................................46


Hình 3-19 Phân rã use case Xem chi tiết sản phẩm.............................................................47
Hình 3-20 Phân rã use case Xem vị trí cửa hàng.................................................................49
Hình 3-21 Phân rã use case Quản lý đơn hàng....................................................................50
Hình 3-22 Phân rã use case Cập nhập trạng thái đơn hàng..................................................50
Hình 3-23 Phân rã use case Quản lý sản phẩm....................................................................52
Hình 3-24 Phân rã use case thêm sản phẩm.........................................................................52
Hình 3-25 Phân rã use case cập nh sản phẩm......................................................................54
Hình 3-26 Phân rã use case Xem thống kê..........................................................................55
Hình 3-27 Biểu đồ lớp..........................................................................................................59
Hình 3-28 Biểu đồ thực thể..................................................................................................60
Hình 3-29 Biểu đồ tuần tự Đăng nhập.................................................................................61
Hình 3-30 Biểu đồ tuần tự Đăng ký.....................................................................................61
Hình 3-31 Biểu đồ tuần tự Quên mật khẩu..........................................................................62
Hình 3-32 Biểu đồ tuần tự Góp ý.........................................................................................63
Hình 3-33 Biểu đồ tuần tự Thêm sản phẩm vào giỏ hàng....................................................63
Hình 3-34 Biểu đồ tuần tự Nhắn tin.....................................................................................64
Hình 3-35 Biểu đồ tuần tự Xoá sản phẩm trong giỏ hàng....................................................65
Hình 3-36 Biểu đồ tuần tự Thay đổi số lượng sản phẩm trong giỏ hàng.............................65
Hình 3-37 Biểu đồ tuần tự Đặt hàng....................................................................................66
Hình 3-38 Biểu đồ tuần tự Xem sản phẩm...........................................................................67
Hình 3-39 Biểu đồ tuần tự Xem vị trí nhà hàng...................................................................67
Hình 3-40 Biểu đồ tuần tự Thanh toán bằng thẻ qua hệ thống VNPAY..............................68
Hình 3-41 Biểu đồ tuần tự Chọn địa chỉ giao hàng..............................................................69
Hình 3-42 Biểu đồ tuần tự Tìm kiếm sản phẩm bằng tên....................................................70
Hình 3-43 Biểu đồ tuần tự Tìm kiếm bằng giọng nói..........................................................71
Hình 3-44 Biểu đồ tuần tự Lọc sản phẩm tìm kiếm.............................................................72
Hình 3-45 Biểu đồ tuần tự Thay đổi ảnh đại diện................................................................73
Hình 3-46 Biểu đồ tuần tự Thay đổi tên...............................................................................74
Hình 3-47 Biểu đồ tuần tự Cập nhập số điện thoại..............................................................75
Hình 3-48 Biểu đồ tuần tự Thay đổi mật khẩu.....................................................................76

Phạm Văn Phong XI Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-49 Biểu đồ tuần tự Thêm địa chỉ..............................................................................77


Hình 3-50 Biểu đồ tuần tự Cập nhập địa chỉ........................................................................78
Hình 3-51 Biểu đồ tuần tự Xoá địa chỉ................................................................................79
Hình 3-52 Biểu đồ tuần tự Xem đơn hàng đã đặt................................................................80
Hình 3-53 Biêu đồ tuần tự Xem chi tiết đơn hàng...............................................................81
Hình 3-54 Biểu đồ tuần tự Huỷ đơn hàng đã đặt.................................................................82
Hình 3-55 Biểu đồ tuần tự Đánh giá sản phẩm....................................................................83
Hình 3-56 Biểu đồ tuần tự Thêm sản phẩm.........................................................................84
Hình 3-57 Biểu đồ tuần tự Cập nhập sản phẩm...................................................................85
Hình 3-58 Biểu đồ tuần tự Xoá sản phẩm............................................................................86
Hình 3-59 Biểu đồ Cập nhập trạng thái đơn hàng................................................................87
Hình 3-60 Biểu đồ tuần tự Xem thống kê doanh thu...........................................................88
Hình 3-61 Biểu đồ tuần tự Đăng xuất..................................................................................88
Hình 3-62 Biểu đồ tuần tự Xem thống kê tổng quan đơn hàng...........................................89
Hình 3-63 Biểu đồ hoạt động Đăng nhập.............................................................................90
Hình 3-64 Biểu đồ hoạt động Đăng ký................................................................................91
Hình 3-65 Biểu đồ hoạt động Quên mật khẩu......................................................................92
Hình 3-66 Biểu đồ hoạt động Góp ý....................................................................................93
Hình 3-67 Biểu đồ hoạt động chức năng Nhắn tin...............................................................94
Hình 3-68 Biểu đồ hoạt động Thêm sản phẩm vào giỏ hàng...............................................95
Hình 3-69 Biểu đồ hoạt động Xoá sản phẩm trong giỏ hàng...............................................96
Hình 3-70 Biểu đồ hoạt động Thay đổi số lượng sản phẩm trong giỏ hàng........................97
Hình 3-71 Biểu đồ hoạt động Đặt hàng...............................................................................98
Hình 3-72 Biểu đồ hoạt động Xem sản phẩm......................................................................99
Hình 3-73 Biểu đồ hoạt động Xem vị trí cửa hàng..............................................................99
Hình 3-74 Biểu đồ hoạt động thanh toán bằng thẻ qua VNPAY.......................................100
Hình 3-75 Biểu đồ hoạt động Chọn địa chỉ giao hàng.......................................................101
Hình 3-76 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng tên.............................................101
Hình 3-77 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng giọng nói...................................102
Hình 3-78 Biểu đồ hoạt động Lọc sản phẩm tìm kiếm......................................................103
Hình 3-79 Biểu đồ hoạt động Cập nhập ảnh đại diện........................................................103

Phạm Văn Phong XII Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-80 Biểu đồ hoạt động Thay đổi tên........................................................................104


Hình 3-81 Biểu đồ hoạt động Cập nhập số điện thoại.......................................................104
Hình 3-82 Biểu đồ hoạt động Thay đổi mật khẩu..............................................................105
Hình 3-83 Biểu đồ hoạt động Đăng xuất...........................................................................106
Hình 3-84 Biểu đồ hoạt động Thêm địa chỉ.......................................................................106
Hình 3-85 Biểu đồ hoạt động Cập nhập địa chỉ.................................................................107
Hình 3-86 Biểu đồ hoạt động Xoá địa chỉ..........................................................................107
Hình 3-87 Biểu đồ hoạt động Xem đơn hàng đã đặt..........................................................108
Hình 3-88 Biêu đồ hoạt động Xem chi tiết đơn hàng........................................................108
Hình 3-89 Biểu đồ hoạt động Đánh giá sản phẩm.............................................................109
Hình 3-90 Biểu đồ hoạt động Huỷ đơn hàng.....................................................................109
Hình 3-91 Biểu đồ hoạt động Thêm sản phẩm..................................................................110
Hình 3-92 Biểu đồ hoạt động Cập nhập sản phẩm.............................................................111
Hình 3-93 Biểu đồ hoạt động Cập nhập trạng thái đơn hàng.............................................111
Hình 3-94 Biểu đồ hoạt động Xem thống kê.....................................................................112
Hình 4-1 Máy ảo iPhone 13...............................................................................................113
Hình 4-2 Giao diện Đăng nhập..........................................................................................114
Hình 4-3 Giao diện Đăng ký..............................................................................................115
Hình 4-4 Giao diện quên mật khẩu....................................................................................116
Hình 4-5 Giao diện màn hình trang chủ.............................................................................117
Hình 4-6 Giao diện Xem thông tin chi tiết sản phẩm........................................................118
Hình 4-7 Giao diện Xem chi tiết sản phẩm phần đánh giá................................................119
Hình 4-8 Giao diện chức năng Giỏ hàng............................................................................120
Hình 4-9 Giao diện chức năng Đặt hàng............................................................................121
Hình 4-10 Giao diện chức năng chọn địa chỉ.....................................................................122
Hình 4-11 Giao diện chọn ngân hàng................................................................................123
Hình 4-12 Giao diện thanh toán bằng VNPAY.................................................................124
Hình 4-13 Giao diện chức năng Tìm kiếm bằng tên sản phẩm..........................................125
Hình 4-14 Giao diện chức năng Tìm kiếm bằng giọng nói................................................126
Hình 4-15 Giao diện tổng quát chức năng Xem vị trí cửa hàng........................................127
Hình 4-16 Giao diện khi chọn dấu mốc cửa hàng..............................................................128

Phạm Văn Phong XIII Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 4-17 Giao diện chức năng Xem đơn hàng đã đặt......................................................129
Hình 4-18 Giao diện chức năng Xem chi tiết đơn hàng.....................................................130
Hình 4-19 Giao diện chức năng Xem giới thiệu về ứng dụng...........................................131
Hình 4-20 Giao diện chức năng Thêm địa chỉ...................................................................132
Hình 4-21 Giao diện chức năng Xoá địa chỉ......................................................................133
Hình 4-22 Giao diện chức năng Xem thống kê..................................................................134
Hình 4-23 Giao chức diện năng Quản lý sản phẩm...........................................................135
Hình 4-24 Giao diện chức năng Thêm sản phẩm...............................................................136
Hình 4-25 Giao diện popup khôi phục sản phẩm...............................................................137
Hình 4-26 Giao diện Quản lý đơn hàng.............................................................................138
Hình 4-27 Giao diện chức năng Quản lý tài khoản cá nhân..............................................139
Hình 4-28 Giao diện thay đổi/cập nhập thông tin tài khoản cá nhân.................................140
Hình 4-29 Giao diện chức năng Đổi mật khẩu...................................................................141
Hình 4-30 Giao diện danh sách người/phòng Nhắn tin......................................................142
Hình 4-31 Giao diện nhắn tin.............................................................................................143

Phạm Văn Phong XIV Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

DANH MỤC CÁC BẢNG BIỂU

Bảng 3-1 Tác nhân, ý nghĩa, use case..................................................................................23


Bảng 3-2 Các use case và ý nghĩa........................................................................................24
Bảng 3-3 Kịch bản use case Đăng nhập...............................................................................26
Bảng 3-4 Kịch bản use case Đăng ký...................................................................................27
Bảng 3-5 Kịch bản use case Quên mật khẩu........................................................................28
Bảng 3-6 Kịch bản use case Nhắn tin..................................................................................29
Bảng 3-7 Kịch bản use case Góp ý về ứng dụng.................................................................30
Bảng 3-8 Kịch bản use case Xoá sản phẩm trong giỏ hàng.................................................31
Bảng 3-9 Kịch bản use case Thêm số lượng sản phẩm giỏ hàng.........................................32
Bảng 3-10 Kịch bản use case Đặt hàng................................................................................33
Bảng 3-11 Kịch bản thanh toán bằng thẻ qua VNPAY.......................................................34
Bảng 3-12 Kịch bản use case Xem đơn hàng đã đặt............................................................35
Bảng 3-13 Kịch bản use case Xem đơn hàng đã đặt............................................................35
Bảng 3-14 Kịch bản use case Huỷ đơn hàng.......................................................................36
Bảng 3-15 Kịch bản use case Đánh giá sản phẩm...............................................................37
Bảng 3-16 Kịch bản use case Thay đổi ảnh đại diện...........................................................38
Bảng 3-17 Kịch bản use case Thay đổi tên..........................................................................38
Bảng 3-18 Kịch bản use case Cập nhập số điện thoại..........................................................39
Bảng 3-19 Kịch bản use case Thay đổi mật khẩu................................................................40
Bảng 3-20 Kịch bản use case Đăng xuất..............................................................................40
Bảng 3-21 Kịch bản use case Thêm địa chỉ.........................................................................42
Bảng 3-22 Kịch bản use case Cập nhập địa chỉ...................................................................43
Bảng 3-23 Kịch bản use case Cập nhập địa chỉ...................................................................43
Bảng 3-24 Kịch bản use case Tìm kiếm sản phẩm bằng tên................................................44
Bảng 3-25 Kịch bản use case Tìm kiếm sản phẩm bằng giọng nói.....................................45
Bảng 3-26 Kịch bản use case Thêm sản phẩm vào giỏ hàng...............................................46
Bảng 3-27 Kịch bản use case Xem sản phẩm......................................................................47
Bảng 3-28 Kịch bản use case Xem thông tin chi tiết sản phẩm...........................................48
Bảng 3-29 Kịch bản use case Thêm sản phẩm vào giỏ hàng...............................................48

Phạm Văn Phong XV Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Bảng 3-30 Kịch bản use case Xem vị trí cửa hàng..............................................................49
Bảng 3-31 Kịch bản use case Cập nhập trạng thái đơn hàng...............................................51
Bảng 3-32 Kịch bản use case Huỷ đơn hàng.......................................................................52
Bảng 3-33 Kịch bản use case Thêm sản phẩm.....................................................................53
Bảng 3-34 Kịch bản use case Cập nhập thông tin sản phẩm...............................................54
Bảng 3-35 Kịch bản use case Xoá sản phẩm.......................................................................55
Bảng 3-36 Kịch bản use case Xem thống kê doanh thu.......................................................56
Bảng 3-37 Kịch bản use case Xem thống kê doanh thu.......................................................56
Bảng 3-38 Lớp, thuộc tính, phương thức.............................................................................58

Phạm Văn Phong XVI Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

DANH MỤC CÁC TỪ VIẾT TẮT

ST
Từ viết tắt Từ tiếng Anh Từ và nghĩa tiếng Việt
T

1 CSDL Cơ sở dữ liệu

2 DB Database Cơ sở dữ liệu

3 TMĐT Thương mại điện tử

4 UI User Interface Giao diện người dùng

5 FCM Firebase cloud messaging Firebase tin nhắn

6 OTP One time password Mật khẩu dùng 1 lần

Doanh nghiệp với doanh


7 B2B Business to Business
nghiệp

Doanh nghiệp với Khách


8 B2C Business to Customer
hàng

Khách hàng với Khách


9 C2C Customer to Customer
hàng

Khách hàng với Doanh


10 C2B Customer to Business
nghiệp

11 C2A Customer to Administration Khách hàng với Chính phủ

Doanh nghiệp với Chính


12 B2A Business to Administration
phủ

Phạm Văn Phong XVII Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hội nghị được tổ chức hàng


Apple Worldwide Developers
13 WWDC năm của Apple giới thiệu
Conference
các công nghệ mới

14 QR Quick Response Mã vạch ma trận

15 ATM Automatic Teller Machine Máy rút tiền tự động

16 POS Point of Sale Điểm bán hàng

Application Programming Giao diện lập trình ứng


17 API
Interface dụng

Phạm Văn Phong XVIII Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

MỞ ĐẦU

1. Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài
Hiện nay, trong thời đại bùng nổ về công nghệ, sự phát triển lớn mạnh của Internet.
Nhu cầu về các thiết bị giúp cho người dùng khác thai nguồn tài nguyên khổng lồ của thời
đoại 4.0 là rất nhiều. Các thiết bị đó phải đáp ứng được các công nghệ mới nhất phục vụ
cho các công việc thường ngày như chụp ảnh sắc nét, xử lý công việc mượt mà, khả năng
giải trí cao, thiết kệ đẹp. Do đó các thiết bị của Apple được mọi người rất ưa chuộng vì có
một hiệu năng tốt trên với giá thành, không những thế nó còn là một món đồ trang sức vì
có một giá trị cao.
Trong cuộc sống bận rộn và cũng có chút ảnh hường từ dịch bênh Covid-19 nên mọi
người đã làm quen, thích nghi với việc mua bán hàng online. Người bán hàng dễ quản lý
sản phẩm, đơn hàng, thống kê doanh thu của cửa hàng. Người dùng dễ tiếp cận đến các sản
phẩm bằng việc chỉ cần cài một ứng dụng trên những chiếc điện thoại iPhone. Bằng các
đánh giá của mọi người trên ứng dụng giúp người tiêu dùng dễ dàng đưa ra quyết định đặt
hàng.
2. Tính cấp thiết, ý nghĩa khoa học và thực tiễn của đề tài
Từ những phân tích trên, ý tưởng cho một ứng dụng mua bán trên di động hình thành
nhằm mục đích giúp cho người sử dụng cũng như của hàng thuận tiện hơn trong việc trao
đổi mua bán và giới thiệu sản phẩm tới người sử dụng.
Trong báo cáo đồ án này sẽ tập trung trình bày những nghiên cứu kiến thức cơ bản
về lập trình di động, đi sâu vào nền tảng iOS. Triển khai các bước thiết kế, xây dựng ứng
dụng giúp người mua hàng, tìm kiếm, áp dụng công nghệ bản đồ hỗ trợ hiển thị địa chỉ các
cửa hàng giúp khác hàng đổi trả bảo hành trực tiếp, thanh toán online qua thẻ ngân hàng
thuận tiện thanh toán các đơn hàng giá trị cao và tìm kiếm bằng giọng nói, giúp người
dùng tra cứu sản phẩm tiện lợi.
Đây là ứng dụng tuy không phải là mới nhưng nó đang là xu hướng phục vụ nhu cầu
của người tiêu dùng trong thởi điểm hiện tại. Do kinh nghiệm của em chưa nhiều và còn
nhiều hạn chế cũng như sai sót mong thầy cô đóng góp ý kiến để đề tài được hoàn thiện
hơn.

Phạm Văn Phong 1 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

CHƯƠNG 1 TỔNG QUAN

Trong chương này tác giả đồ án sẽ trình bày tổng quan về lập trình iOS, thương mại
điện tử và các xu hướng của thương mại điện tử. Một số ứng dụng thương mại điện tử phổ
biến trong nước và nước ngoài. Từ đó thu thập các yêu cầu về một ứng dụng thương mại
điện tử cần có.
1.1 Tổng quan về lập trình mobile iOS
Theo như bài viết trên TopCV.vn [1], gần một thập kỷ trở về đây người dùng không
còn quá xa lạ với hệ điều hành iOS có trong các thiết bị di động của hãng Apple. Nó đang
là hệ điều hành phổ biến thứ 2 trên toàn cầu, chạy phủ sóng trên các sản phẩm như iPhone.
Hệ điều hành iOS được công bố vào năm 2007 với tên gọi là iPhoneOS chỉ được
dùng cho iPhone. Năm 2010, hệ điều hành chính thức đổi thành “iOS” và dần được nghiên
cứu mở rộng để hỗ trợ cho các thiết bị công nghệ khác của Apple như iPad.
Người dùng iOS có thể thoải mái tương tác với hệ điều hành thông qua các thao tác
trên màn hình cảm ứng. Bằng cách thao tác các đoạn mã trên các công cụ lập trình người
dùng có thể tạo ra các chương trình mới. Cải thiện, nâng cấp chương trình để tăng hiệu quả
xử lý của các thiết bị thông minh hay máy tính của Apple.
Lập trình mobile iOS được hiểu là việc xây dựng, phát triển các ứng dụng cho các
thiết bị di động và tương thích với hệ điều hành iOS thông qua ngôn ngữ lập trình Swift
hoặc Object - C độc quyền của Apple.
Nghề lập trình viên iOS đang mở ra nhiều cơ hội phát triển nghề nghiệp cũng như
mức thu nhập đáng mơ ước của nhiều bạn trẻ. Mức lương trung bình của một lập trình viên
iOS khởi điểm là 15 triệu đồng trở lên với người có kinh nghiệm 1 - 2 năm. Đối với sinh
viên mới ra trường mức lương khởi điểm rơi vào khoảng 8-10 triệu đồng.
1.2 Tổng quan thương mại điện tử
1.2.1 Giới thiệu về thương mại điện tử và thương mại di động
Theo tác giả Khang Lê [2] , Thương mại điện tử là sự mua bán sản phẩm hay dịch vụ
trên các hệ thống điện tử như Internet và các mạng máy tính.
Các hoạt động thương mại điện tử chủ yếu bao gồm:

 Mua bán và trao đổi hàng hóa, dịch vụ trực tuyến


 Mua bán vé trực tuyến
 Thanh toán online

Phạm Văn Phong 2 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

 Chăm sóc và hỗ trợ khách hàng online

Thương mại di động (M-Commerce): Các giao dịch trực tuyến diễn ra trên thiết bị di
động được gọi là thương mại di động hoặc M-Commerce. Người tiêu dùng trên toàn thế
giới gần như ai cũng có thiết bị cầm tay, nên không ngạc nhiên khi thương mại di động
đang phát triển mạnh mẽ và được kỳ vọng sẽ vượt qua thương mại phi di động vào năm
2021.
Nhiều người dùng nghiên cứu về sản phẩm và mua hàng trực tuyến trên điện thoại.
Xu hướng này không có dấu hiệu chậm lại, vì vậy việc tối ưu hóa cửa hàng trực tuyến để
phù hợp với thiết bị di động là điều cần thiết.
1.2.2 Xu hướng của thương mại điện tử
Mua sắm bằng thiết bị di động đang lên ngôi: Sự tăng trưởng của việc mua hàng qua
thiết bị di động thực sự gây chú ý. Kể từ năm 2016, doanh số bán hàng qua thiết bị di động
tăng 15%. Dự đoán đến cuối năm 2021, con số này sẽ tăng lên thành 73% (theo Statista,
2019). Những con số này cho thấy rằng việc cải thiện trải nghiệm mua hàng thiết bị di
động sẽ mở ra nhiều cơ hội phát triển hơn cho các doanh nghiệp.
Mua sắm bằng giọng nói đang dần trở nên thân thuộc đối với người dùng Internet.
13% chủ sở hữu loa thông minh của Hoa Kỳ nói rằng họ đã mua hàng bằng giọng nói vào
cuối năm 2017. Con số đó được dự đoán sẽ tăng lên 55% vào năm 2022 (theo OC&C
Strategy Consultants, 2018). Tổng chi tiêu cho mua sắm bằng giọng nói cũng đã tăng lên ở
Anh.
Tự động hóa hoàn tất đơn hàng: Trước sức ép về mong muốn trải nghiệm mua hàng
hoàn hảo và tốc độ nhận hàng thần tốc trên các trang TMĐT của khách hàng, nhiều công ty
đã chuyển dần sang sử dụng công nghệ tự động hóa hoàn tất đơn hàng. Hình thức này giúp
cho doanh nghiệp có thể thực hiện việc giao hàng siêu tốc trong vòng 2h, tăng khả năng xử
lý đơn hàng, tối ưu chi phí nhân sự, kho bãi, giảm thiểu rủi ro.
Cá nhân hóa: Hơn 50% người mua hàng nói rằng trải nghiệm mua hàng trực tuyến
được cá nhân hóa là điều họ rất quan tâm (theo Bazaarvoice, 2018). Thêm vào đó, 74% các
nhà tiếp thị (marketers) cũng tin rằng cá nhân hóa có tác động mạnh mẽ và cực kỳ quan
trọng trong việc thúc đẩy mối quan hệ giữa khách hàng với một thương hiệu (theo
Everthing, 2018).
1.2.3 Các loại hình thương mại điện tử cở bản
Doanh nghiệp với Doanh nghiệp (B2B): Thương mại điện tử B2B đề cập đến tất cả
các giao dịch điện tử của hàng hóa được thực hiện giữa hai công ty. Loại thương mại điện

Phạm Văn Phong 3 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

tử này thường giải thích mối quan hệ giữa các nhà sản xuất sản phẩm và nhà phân phối sản
phẩm đến tay người tiêu dùng.
Doanh nghiệp với Khách hàng (B2C): Đây là hình thức thương mại điện tử phổ biến
nhất, thể hiện mối quan hệ mua bán giữa doanh nghiệp với người tiêu dùng. Mua sắm dưới
dạng thương mại điện tử giúp người dùng dễ dàng so sánh giá cũng như xem phản hồi
nhận xét của những người dùng trước. Đối với công ty, nó cho phép họ hiểu biết hơn về
khách hàng trên góc độ cá nhân.
Khách hàng với Khách hàng (C2C): Loại thương mại điện tử này bao gồm tất cả các
giao dịch điện tử diễn ra giữa người tiêu dùng. Các giao dịch này thường được thực hiện
thông qua việc sử dụng các mạng xã hội cá nhân như facebook, instagram và các trang web
sàn thương mại điện tử như tiki, shopee.
Khách hàng với Doanh nghiệp (C2B): Thương mại điện tử C2B diễn ra khi người
tiêu dùng cung cấp dịch vụ hoặc sản phẩm của họ cho các công ty mua hàng. Ví dụ như
một nhà thiết kế đồ họa chỉnh logo cho một công ty hoặc một nhiếp ảnh gia chụp ảnh cho
một trang web thương mại điện tử.
Doanh nghiệp với Chính phủ (B2A): Hình thức thương mại điện tử này đề cập đến
tất cả các giao dịch giữa các công ty và khu vực hành chính công. Loại hình này liên quan
đến nhiều dịch vụ, đặc biệt có thể kể đến như an sinh xã hội, việc làm và các văn bản pháp
lý.
Khách hàng với Chính phủ (C2A): Một hình thức phổ biến khác là thương mại điện
tử C2A, bao gồm tất cả các giao dịch điện tử giữa các cá nhân và khu vực hành chính công.
Ví dụ điển hình là việc khai và nộp thuế thông qua cổng thông tin điện tử của Cơ quan
thuế.
1.2.4 Chức năng và vai trò của thương mại điện tử đối với doanh nghiêp
Mở rộng quy mô thị trường: Tác động lớn nhất của thương mại điện tử đối với doanh
nghiệp là giúp công ty tiếp cận thị trường dễ hơn. Khi kinh doanh thương mại điện tử, các
doanh nghiệp sẽ dễ dàng mở rộng thị trường tại nhiều khu vực khác nhau mà không cần
tốn chi phí, nguồn lực để xây dựng các văn phòng, cửa hàng kinh doanh như thương mại
truyền thống. Hơn nữa, thời gian để mở rộng sang các thị trường mới cũng nhanh hơn.
Thay vì phải mất nhiều thời gian để tìm nguồn lực, xây dựng văn phòng mới thì công ty có
thể xây dựng và nâng cấp cửa hàng online nhắm đến các đối tượng đó.
Tối ưu hoạt động kinh doanh của doanh nghiệp: Khi kinh doanh thương mại điện tử,
doanh nghiệp có thể tiết kiệm các loại chi phí như Marketing, sản xuất, phân phối, lưu kho,
chi phí giao dịch. Ngoài ra, công ty có thể kết nối với khách hàng thường xuyên, nâng cao

Phạm Văn Phong 4 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

và củng cố quan hệ khách hàng, cập nhật thông tin sản phẩm và doanh ghiệp nhanh chóng.
Hơn nữa, doanh nghiệp cũng dễ trao đổi và giao dịch các sản phẩm âm nhạc, hình ảnh dưới
dạng số hóa.
Doanh nghiệp dễ dàng tiếp cận khách hàng: Với thương mại điện tử, doanh nghiệp
có thể tiếp cận nhiều đối tượng khách hàng tiềm năng thông qua website và các hình thức
marketing online khác như chạy quảng cáo, tối ưu hóa công cụ tìm kiếm (SEO). Điều này
sẽ giúp doanh nghiệp tăng tỷ lệ chuyển đổi và tăng doanh thu.
1.2.5 Tác động của thương mại điện tử đối với doanh nghiệp
Thay đổi mô hình kinh doanh: Thay vì kinh doanh truyền thống như trước đây,
doanh nghiệp có thể chuyển sang kinh doanh trực tuyến hoặc phối hợp hai phương thức
với nhau. Điều này giúp doanh nghiệp tiếp cận được nhiều khách hàng hơn và gia tăng
doanh thu. Ngoài ra, nhiều công ty còn triển khai “chiến lược kéo” dựa trên nhu cầu của
khách hàng. Người mua có thể thiết kế sản phẩm và đặt hàng yêu cầu thông qua mạng. Từ
đó, doanh nghiệp có thể giảm thiểu chi phí lưu kho và sản xuất các sản phẩm theo đúng
mong muốn của khách hàng.
Thay đổi cơ cấu tổ chức: Cơ cấu tổ chức của các doanh nghiệp có xu hướng thu gọn
lại do thương mại điện tử đã giúp doanh nghiệp giải quyết được vấn đề chồng chéo chức
năng của các phòng ban, tối ưu nguồn lực, nâng cao năng suất người lao động. Nhờ ứng
dụng thương mại điện tử mà doanh nghiệp có thể đồng bộ thông tin về hoạt động cung
ứng, sản xuất và phân phối giữa các nhà máy với nhau. Từ đó, doanh nghiệp phân bổ
nguồn lực hiệu quả hơn, đảm bảo sản phẩm ở các nhà máy đều đạt chỉ tiêu về chất lượng,
số lượng như doanh nghiệp đề ra.
Nâng cao hiệu quả hoạt động Marketing: Thương mại điện tử giúp cho doanh nghiệp
tối ưu các hoạt động marketing như đẩy nhanh sản phẩm ra thị trường, xây dựng thương
hiệu, cải thiện quan hệ khách hàng, tiếp cận khách hàng tốt hơn. Doanh nghiệp tối ưu được
các hoạt động marketing nhắm đến những nhóm đối tượng khách hàng tiềm năng cụ thể
thay vì quảng bá hàng loạt. Hơn nữa, doanh nghiệp cũng dễ dàng đo lường được hiệu quả
của các hoạt động marketing online, từ đó điều chỉnh và tối ưu các hoạt động marketing
đó.
1.3 Một số ứng dụng thương mạng điện thử phổ biến trong nước và nước ngoài
Shopee là ứng dụng mua sắm trực tuyến và là sàn giao dịch thương mại điện tử có trụ
sở đặt tại Singapore, thuộc sở hữu của Sea Ltd được thành lập vào năm 2009. Shopee là
một ứng dụng thương mại điện tử phổ biến ở Việt Nam và các nước Đông Nam Á lớn

Phạm Văn Phong 5 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

không chỉ tập trung vào bán các sản của một thương hiệu nào đó mà ứng dụng bán đa cửa
hàng, đa thương hiệu và sản phẩm.

Hình 1-1 Giao diện trang chủ Shopee


Ưu điểm:

 Tốc độ tải dữ liệu nhanh


 Giao diện đẹp dễ dùng, dễ thao tác
 Thông tin thể hiện chi tiết đầy đủ
 Có phần đánh giá chi tiết sản phẩm bằng số sao, hình ảnh và bình luận
 Lọc sản phẩm theo nhiều thuộc tính, loại,

Nhược điểm:

Phạm Văn Phong 6 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

 Giao diện còn khá rối mắt

Ứng dụng thương mại điện tử Amazon là một ứng dụng thương mại điện tử phổ biến
ở Mỹ và các nước khu vực Bắc Mỹ

Hình 1-2 Giao diện trang chủ Amazone


Ưu điểm:

 Tốc độ tải dữ liệu nhanh


 Giao diện đẹp dễ dùng, dễ thao tác
 Sản phẩm trên trang chủ bố trí theo từng loại dễ dàng lựa chọn.

Nhược điểm:

 Các thông tin trên danh sách sản phẩm không đầy đủ.

Phạm Văn Phong 7 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

 Phần đánh giá chỉ có số sao không có bình luận, hình ảnh

Từ các ứng dụng rút ra được các chức năng cho 2 đối tượng chính:

 Người dùng (khách hàng) gồm các chức năng: Xem thông tin sản phẩm, quản
lý giỏ hàng, đặt hàng, có nhiều phương thức thanh toán để lựa chọn, thêm
được nhiều địa chỉ giao hàng, xem lại đơn hàng đã đặt, quản lý thông tin tài
khoản, tìm kiếm bằng nhập chữ hoặc tìm kiếm bằng giọng nói, hình ảnh,
đánh giá bình luận sản phẩm đã mua.
 Người quản trị (cửa hàng) gồm các chức năng: Xem thống kê doanh thu, đơn
hàng, quản lý sản phẩm, quản lý đơn hàng, quản lý tài khoản cá nhân.
1.4 Xác định các yêu cầu của một ứng dụng thương mại điện tử cần có
Từ những ưu điểm và những điều rút ra được từ các ứng dụng Shopee và Amazone
chức năng của ứng dụng thương mại điện tử cần có:
Với chức năng về phía khách hàng:

 Chức năng xem các thông tin về sản phẩm, xem thông tin chi tiết.
 Chức năng giỏ hàng lưu trữ các sản phẩm khách hàng muốn mua.
 Chức năng đặt hàng với nhiều hình thức thanh toán. Tiêu biểu là thanh toán
khi nhận hàng và thanh toán qua thẻ ghi nợ thẻ tín dụng
 Quản lý các đơn hàng đã đặt
 Quản lý tài khoản cá nhân
 Sổ địa chỉ

Với người quản trị:

 Xem thống kê
 Quản lý đơn hàng
 Quản lý sản phẩm
 Quản lý tài khoản cá nhân

1.5 Nhiệm vụ vai trò của các vị trí trong ứng dụng
Các vai trò của người sử dụng trong ứng dụng bao gồm:

 Khách hàng: là người xem thông tin, tìm kiếm các sản phẩm. Thêm vào giỏ
hàng những sản mong muốn mua, đặt hàng chọn các phương thức thanh toán
tuỳ chọn theo sở thích. Có thể xem lại các đơn hàng đã đặt để theo dõi đơn
hàng cũng như huỷ đơn, đánh giá các sản phẩm với đơn hàng đã hoàn thành.
Chỉnh sửa các thôn tin tài khoản cá nhân. Quản lý sổ địa chỉ của mình.

Phạm Văn Phong 8 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

 Người quản trị: là chủ cửa hàng mỗi tháng có thể xem thống kê về doanh thu,
số lượng đơn hàng. Quản lý các sản phẩm trong kho, thêm sản phẩm mới, cập
nhập số lượng sản phẩm, xoá các sản phẩm không còn bán. Quản lý các đơn
hàng với các công việc cập nhập trạng thái đơn hàng, huỷ đơn hàng. Quản lý
tài khoản cá nhân.
1.6 Mô tả bài toán
Từ những tìm hiểu, thu thập được các yêu cầu từ ứng dụng khác. Tác giả xây dựng
một ứng dụng trên thiết bị di động chạy hệ điều hành iOS để phục vụ cho đồ án tốt nghiệp
sau quá trình học tập tại trường Đại học Mỏ - Địa chất. Ứng dụng được đặt tên là Papple
chuyên bán các sản phẩm mang thương hiệu Apple được chia thành hai phân quyền.
Ứng dụng theo phân quyền khách hàng có các chức năng:

 Xem được danh sách các sản phẩm và thông tin chi tiết sản phẩm. Có các
bình luận, đánh giá của các khách hàng đã mua.
 Tìm kiếm bằng nhập chữ hoặc chức năng tìm kiếm bằng giọng nói. Khi đã có
kết quả tìm kiếm, có thể lọc tìm kiếm theo giá, theo loại sản phẩm.
 Xem giỏ hàng, thêm các sản phẩm vào giỏ và thay đổi số lượng sản phẩm,
xoá sản phẩm trong giỏ hàng.
 Đặt hàng và thanh toán. Có thể thanh toán khi nhận hàng hoặc thanh toán qua
thẻ tín dụng, thẻ ghi nợ qua hệ thống VNPAY. Với thanh toán bằng thẻ thì
khách hàng cần chọn ngân hàng, nhập thông tin thẻ và tiến hành thanh toán
thì đơn hàng mới có thể đặt thành công. Đơn hàng trên 20 triệu chỉ có thể
thanh toán bằng thẻ.
 Khách hàng có thể xem các vị trí của nhà hàng trên bản đồ, chỉ đường đến
của hàng.
 Xem được các thông tin: hình ảnh đại diện, tên, gmail, số điện thoại, sổ địa
chỉ, thay đổi mật khẩu, đăng xuất khi hết phiên sử dụng. Khách hàng có thể
thay nhập tên, cập nhập số điện thoại, quản lý sổ địa chỉ.
 Xem lại, theo dõi đơn hàng đã để biết được trạng thái của đơn hàng, các sản
phẩm trong đơn, tổng tiền đơn và có thể xem chi tiết được đơn hàng. Khi đơn
hàng hoàn thành sau quá trình trải nghiệm và sử dụng sản phẩm có thể đánh
giá về các sản phẩm đã đặt mua tại cửa hàng.
 Đóng góp ý về ứng dụng đến người quản trị.
 Xem thông tin về ứng dụng cũng như cửa hàng.
 Nhắn tin với cửa hàng để được giải đáp các thắc mắc và tư vấn trực tiếp.

Phạm Văn Phong 9 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Ứng dụng theo phân quyền người quản trị:

 Xem thống kê hiện thị các thống kê doanh thu, tổng quan về đơn hàng.
 Thêm, sửa, xoá các sản phẩm, lọc các sản phẩm theo giá, loại, …
 Cập nhập trạng thái đơn hàng, huỷ đơn hàng. Lọc đơn hàng theo tháng, trạng
thái đơn hoặc các tuỳ chọn khác.
 Nhắn tin trao đổi các thông tin với khách hàng
 Cập nhập thông tin tài khoản cá nhân, cập nhập số điện thoại, thay đổi ảnh đại
diện, tên và đổi mật khẩu.
 Chuyển đổi giao diện ứng dụng giữa người quản trị và khách hàng.

1.7 Kết chương


Trong chương này đồ án đã trình bày tổng quan về, lập trình mobile iOS thương mại
điện tử, các xu hướng của thương mại điện tử trong những năm gần đây. Nêu ra một số
ứng dụng thương mại điện tử phổ biến trong nước và thế giới như Shopee, Amazone. Từ
đó thu thập các yêu cầu của một ứng dụng thương mại điện tử. Trong chương tiếp theo tác
giả xin được trình bày về các cơ sở lý thuyết được áp dụng vào sản phẩm của đồ án.

Phạm Văn Phong 10 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

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

Trong chương này em sẽ tập trung trình bày lý thuyết về ngôn ngữ lập trình Swift,
SwiftUI, tìm kiếm bằng giọng nói, thanh toán bằng thẻ ngân hàng qua hệ thống VNPAY và
dịch vụ cơ sở dữ liệu Firebase
2.1 Ngôn ngữ lập trình Swift
2.1.1 Giới thiệu ngôn ngữ lập trình Swift
Theo bài viết trên trang VnCoder [3], Swift là một ngôn ngữ lập trình hướng đối
tượng dành cho việc phát triển iOS và OS X, được giới thiệu bởi Apple tại hội nghị
WWDC 2014. Swift được mong đợi sẽ tồn tại song song cùng Objective-C, ngôn ngữ lập
trình hiện tại dành cho các hệ điều hành của Apple.
Các nhà thiết kế Swift đã lấy ý tưởng từ nhiều ngôn ngữ phổ biến khác như
Objective-C, Rust, Haskell, Ruby, Python, C # và CLU.
Swift được thiết kế là một ngôn ngữ có khả năng phòng chống lỗi cao.

Hình 2-3 Biểu tượng ngôn ngữ lập trình Swift nguồn [3]
2.1.2 Đặc điểm

 Là một ngôn ngữ có khả năng chống lỗi cao khi có nhiều cú pháp lập trình an
toàn
 Là ngôn ngữ miễn phí và mã nguồn mở.
 Sử dụng cú pháp lập trình hiện đại, bên cạnh bộ cú pháp của Objective – C
 Đơn giản để đọc và hiểu.
 Là ngôn ngữ tuyệt vời để phát triển ứng dụng trên iOS và OS X.

Phạm Văn Phong 11 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

 Swift đi kèm với một tính năng sân chơi nơi các lập trình viên Swift có thể
viết mã của họ và thực thi nó để xem kết quả ngay lập tức.
 Swift thống nhất được phần thủ tục và hướng đối tượng …

2.1.3 Ưu điểm
Ưu điểm của ngôn ngữ lập trình Swift gồm:

 Swift chạy nhanh hơn, tương đương với C++.


 Swift dễ đọc và dễ học hơn so với Objective-C (cú pháp hoàn toàn mới, ngắn
gọn hơn rất nhiều).
 Các file trong Swift thống nhất nên bảo trì code đơn giản hơn.
 Compiler của Swift tốt hơn Objective-C.
 Swift không sử dụng con trỏ giúp cho code an toàn hơn, và giúp lập trình
viên lược bỏ phần khái niệm khó nhằn về con trỏ.
 Swift quản lý bộ nhớ tốt hơn.
 Swift là mã nguồn mở: Lập trình viên có thể xem được mã nguồn, chỉnh sửa,
vá lỗi.
2.1.4 Nhược điểm
Nhược điểm của ngôn ngữ lập trình Swift gồm:

 Nhiều API không làm việc với Swift.


 Nhiều qui tắc khi khởi tạo.
 Một lượng lớn các project, phần mềm trước đó đều viết bằng Objective-C, do
đó khi cần bảo trì, phát triển và tìm kiếm Objective-C vẫn dễ tìm kiếm hơn.
2.2 Ngôn ngữ lập trình SwiftUI
2.2.1 Giới thiệu ngôn ngữ lập trình SwiftUI
Theo David Xuân [4], tại Hội nghị thường niên WWDC 2019, Apple đã ra mắt khá
nhiều công nghệ, tính năng, công cụ và Framework cải tiến khác nhau, nhưng một trong
những công nghệ nhận được nhiều sự chú ý và là tâm điểm đối với các Developer đó là
SwiftUI.
Swift UI là một framework tương tác và mang tính cách mạng, các developer của
Apple phát triển nó để thiết kế ứng dụng cho cả iOS, MacOS và tvO. Framework này đã
được đưa ra như là một sự cập nhật và bổ sung đáng được chờ đợi nhất của ngôn ngữ lập
trình Swift – cung cấp cho các nhà phát triển một giải pháp để có thể mang ứng dụng

Phạm Văn Phong 12 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

iPhone của họ sang Mac và các nền tảng khác của Apple một cách tiết kiệm thời gian và tài
nguyên cần thiết.
Framework này cũng có một tùy chọn để trải nghiệm các tính năng độc đáo như tốc
độ liên quan với chuột và bàn phím, các tính năng đặc biệt như Touch Bar và hơn thế nữa –
Trong tương lai nó chính là thứ sẽ cạnh tranh trực tiếp với Framework UI Flutter của
Google và React của Facebook, là những framework dùng để phát triển ứng dụng đa nền
tảng.
Bây giờ, trong khi bắt đầu khởi chạy phát triển SwiftUI và mang ngôn ngữ lập trình
Swift vào thị trường đa nền tảng thì nó cũng được trang bị vô số tính năng khác, khiến các
nhà phát triển ứng dụng iOS rất quan tâm đến việc sử dụng SwiftUI trong quá trình phát
triển của họ.
2.2.2 Các tính năng nổi bật của SwiftUI
SwiftUI có thể viết 1 lần và chạy trên nhiều nền tảng khác nhau của Apple:
Mặc dù được giới thiệu để viết mã hoạt động hiệu quả trên tất cả các nền tảng, một
cách hoàn toàn tự nhiên. Nó có thể truy cập tất cả các chức năng và công nghệ riêng của
bất kỳ nền tảng nào (iOS, Mac, tvOS) và từ đó mang lại trải nghiệm giao diện người dùng
thân thiện và tốc độ cực nhanh.
Bên cạnh đó, Framework SwiftUI cũng được tích hợp với các API như ARKit và tự
động tối ưu hoá mã một cách hợp lý với trải nghiệm của cả developer và người dùng iOS.

Hình 2-4 SwiftUI chạy trên nhiều thiết bị nguồn [4]


 SwiftUI đi kèm với một cú pháp khai báo giúp đơn giản đễ hiểu, cách viết mã và
quyết định giao diện người dùng (UI) của người lập trình nên làm gì.

Phạm Văn Phong 13 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

 Kéo thả các UI:

Hình 2-5 Kéo thả các UI


Một tính năng thú vị khác được giới thiệu trong framework SwiftUI là tính năng kéo
và thả. Với tính năng này, các nhà phát triển ứng dụng sẽ có thể chọn bất kỳ yếu tố nào nào
đó (Label, Text, Image, …) và đưa lên khung vẽ, tùy chỉnh các thuộc tính của nó và sắp
xếp lại các điều khiển của nó. Và phần hay ở đây là hầu hết các tùy chọn trên trình soạn
thảo trực quan này cũng sẽ đồng thời tạo ra code trong trình chỉnh sửa mã, có nghĩa là bạn
sẽ có thể theo dõi mọi sự thay đổi mới của UI ngay khi bạn tự viết mã. Điều này, về lâu
dài, sẽ cung cấp thêm sức mạnh cho Swift để thay thế Objective-C và cạnh tranh với các
ngôn ngữ lập trình như Python.
Xem trước được UI và biên dịch đồng thời:
SwiftUI framework cũng cung cấp cho các developer cơ hội để tạo nhiều hơn một
bản xem trước về thiết kế và hiển thị của họ trên nhiều thiết bị và theo các hướng khác
nhau. Điều này cuối cùng sẽ giúp họ thử nghiệm thiết kế của họ về màu sắc phông chữ và
bố cục trong các thiết bị ảo khác nhau cùng một lúc.
Tại sự kiện Apple WWDC Event 2019, chức năng máy ảo sẽ được nhúng hoàn toàn
với Xcode từ phiên bản 11 trở lên. Với điều này giúp các lập trình viên phát triển ứng dụng
iOS xây dựng và chạy các ứng dụng của họ trong thời gian thực.
Khả năng tương thích với iOS 13:

Phạm Văn Phong 14 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Trên tất cả, SwiftUI sắp ra mắt với sự hỗ trợ mặc định cho chế độ tối (Dark mode),
các kiểu động, bản địa hóa của từng nền tảng (iOS, Mac, …) và các tùy chọn trợ năng khác
làm cho nó trở thành framework UI tốt nhất để viết mã của bạn.
Với tất cả các tính năng này, framework SwiftUI được kỳ vọng sẽ mang lại sự thay
đổi lớn trong cách các nhà phát triển xây dựng ứng dụng di động iOS và tăng cường cách
tiếp cận của họ để vào nền tảng chéo mà không mất đi chức năng gốc. Và do đó, cung cấp
cho các nhà phát triển nhiều lý do hơn để nói và dùng về ngôn ngữ lập trình Swift.
2.3 Hệ thống VNPAY
2.3.1 Giới thiệu về VNPAY
Theo Meta.vn [5], VNPAY là tên thương hiệu của Công ty Cổ phần Giải pháp Thanh
toán Việt Nam, chuyên cung cấp các giải pháp thanh toán điện tử chủ yếu thông qua liên
kết với các tài khoản ngân hàng. Vnpay giúp người dùng thanh toán qua Cổng thanh toán
Vnpay-QR. Hiểu một cách đơn giản, bạn có thể thanh toán online cho các hàng hóa dịch
vụ qua Vnpay bằng mã QR (Quick Response code) nhờ tính năng QR Pay được tích hợp
sẵn với tài khoản ngân hàng.
VNPAY là dịch vụ ví điện tử áp dụng các công nghệ hiện đại giúp người dùng thanh
toán trực tuyến. Đây được coi là một dịch vụ mang tính đột phá trong lĩnh vực thanh toán.
Dịch vụ này đem đến những tiện lợi và trải nghiệm tốt cho người dùng. Đặc biệt, VNPAY
đa dạng trong thanh toán các dịch vụ mua sắm hàng ngày, thanh toán tiền điện, nước, …
Nhờ sự nhanh chóng, thao tác đơn giản cùng với các tiện ích nổi trội khác mà nhiều
đơn vị kinh doanh và khách hàng dần chuyển sang lựa chọn hình thức thanh toán này. Hầu
hết người dùng đã cài ứng dụng Mobile Banking của các ngân hàng trên điện thoại
smartphone. Khi thanh toán online, người dùng chỉ cần quét mã QR trên ứng dụng Mobile
Banking, điền số tiền cần giao dịch và xác nhận là hoàn tất việc thanh toán.

Hình 2-6 Biể tượng VNPAY nguồn [5]


2.3.2 Lợi ích khi sử dụng VNPAY
Quá trình thanh toán nhanh chóng, đơn giản, tiện lợi.
Sau khi mất nhiều thời gian lựa chọn hàng hóa ở các cửa hàng hay các trung tâm
thương mại, khách hàng thường phải xếp hàng chờ đến lượt thanh toán. Công đoạn này

Phạm Văn Phong 15 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

cũng mất khá nhiều thời gian, nhất là trong những dịp khuyến mãi lớn, lượng người mua
rất đông thì việc chờ đợi và hoàn tất thủ tục thanh toán cũng khiến nhiều khách hàng mất
công chờ đợi.

Với việc thanh toán qua thẻ ngân hàng, khách hàng cũng cần nhập mã PIN. Tuy
không mất quá nhiều thời gian nhưng với sự phát triển không ngừng của xã hội thì càng
ngày càng yêu cầu tính tối giản, nhanh chóng vượt trội trong mọi mặt.
Vnpay với mã QR ra đời giúp giảm tối đa thời gian thanh toán, hơn nữa với những
thao tác rất cơ bản, đơn giản nên mọi khách hàng đều có thể dễ dàng thực hiện. Rõ ràng là
khi việc mua sắm tiện lợi thì nhu cầu mua sắm của người dân tăng lên, kích thích cung cầu
hàng hóa và góp phần phát triển nền kinh tế.
Mua sắm không cần mang tiền mặt hoặc thẻ ngân hàng.
Chỉ với một chiếc smartphone, bạn có thể qua bất kỳ điểm bán hàng nào trên toàn
quốc hoặc trên các website thương mại điện tử để thanh toán mà không cần mang nhiều
tiền mặt hoặc sử dụng thẻ ngân hàng. Việc mang nhiều tiền mặt trên người có thể gặp rủi
ro mất mát, hay thanh toán qua thẻ ngân hàng dễ có nguy cơ bị lộ thông tin cá nhân. Trong
khi với mã QR bạn chỉ cần dùng camera di động quét mã để thanh toán là xong.
Với sự tiện lợi và nhanh chóng cũng như yếu tố bảo mật mà ngày càng nhiều người
dùng lựa chọn thanh toán qua Vnpay.
Bảo mật thông tin cho khách hàng so với việc dùng thẻ ngân hàng.
Yếu tố bảo mật thông tin cũng được nhiều người đặt lên hàng đầu. Thực tế cho thấy
nhiều người bị làm phiền bởi các cá nhân hoặc đơn vị kinh doanh khi thông tin cá nhân của
họ bị lộ qua một số website.
Tuy nhiên, thanh toán với mã QR qua Vnpay đã giải quyết được vấn đề này. Khách
hàng không cần phải nhập thông tin cá nhân, họ chỉ cần đăng nhập vào ứng dụng Mobile
Banking trên smartphone sau đó quét mã là hoàn thành quy trình thanh toán Vnpay. Đây
cũng chính là một yếu tố khá quan trọng giúp nhiều người dùng ưa chuộng việc thanh toán
qua Vnpay.
Tiết kiệm chi phí cho ngân hàng trong việc lắp đặt cây ATM, trụ POS.
Trước đây, các ngân hàng phải đầu tư nhiều hệ thống ATM với chi phí lắp đặt, bảo
trì lớn để đáp ứng việc giao dịch qua thẻ ngân hàng. Với các điểm giao dịch khác tại các
cửa hàng, siêu thị thì chi phí cho hệ thống trụ POS cũng tương tự. Việc áp dụng thanh toán

Phạm Văn Phong 16 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

qua Vnpay sẽ giảm thiểu chi phí cho những hệ thống này. Khách hàng chỉ cần thao tác trên
điện thoại di động cá nhân là hoàn tất việc thanh toán.
2.3.3 Các thức hoạt động của hệ thống VNPAY

Hình 2-7 Mô hình hoạt động của VNPAY


Các bước hoạt động thanh toán qua VNPAY:
1) Khách hàng thực hiện mua hàng trên Website TMĐT và tiến hành Thanh
toán trực tuyến cho Đơn hàng
2) Website TMĐT thành lập yêu cầu thanh toán dưới dạng URL mang thông tin
thanh toán và chuyển hướng khách hàng sang Cổng thanh toán VNPAY bằng
URL đó. Cổng thanh toán VNPAY xử lý yêu cầu Thanh toán mà Website
TMĐT gửi sang. Khách hàng tiến hành nhập các thông tin được yêu cầu để
thực hiện việc Thanh toán.
3) Khách hàng nhập thông tin để xác minh tài khoản Ngân hàng của khách hàng
và xác thực giao dịch.
4) Giao dịch thành công tại Ngân hàng, VNPAY tiến hành: Chuyển hướng
khách hàng về Website TMĐT. Thông báo cho Website TMĐT kết quả thanh
toán của khách hàng thông qua IPN URL. Merchant cập nhật kết quả thanh
toán VNPAY gửi tại URL này.
5) Merchant hiển thị kết quả giao dịch tới khách hàng.
Phạm Văn Phong 17 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

2.4 Dịch vụ cơ sở dữ liệu Firebase


2.4.1 Giới thiệu Firebase
Theo tác giả Phạm Xuân Nam [6], 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.

Hình 2-8 Biểu tượng Firebase nguồn [6]


Firebase nhanh chóng phát triển thành nền tảng phát triển ứng dụng đa năng của di
động và website như ngày nay. Nền tảng này là sự kết hợp giữa cloud với hệ thống máy
chủ của Google để tập trung chính cho 2 đối tượng là:

 Develop & test your app: phát triển và thử nghiệm các ứng dụng được thiết
kế.
 Grow & engage your audience: phân tích dữ liệu và tối ưu hóa trải nghiệm
với người dùng.
Firebase cung cấp cho chúng ta những API đơn giản, mạnh mẽ và đa nền tảng trong
việc quản lý, sử dụng database.
2.4.2 Các dịch vụ nổi bật của Firebase
Firebase Real-time Database: Dịch vụ Realtime database cho phép người dùng lưu
trữ và đồng bộ dữ liệu theo thời gian thực. Dịch vụ này được lưu trữ trực tiếp trên iCloud.
Trong trường hợp thiết bị của bạn ngoại tuyến thì chúng sẽ sử dụng tới bộ nhớ của thiết bị
và tự động đồng bộ lên server khi thiết bị online. Do đó bạn hoàn toàn có thể yên tâm về
độ tương tác.

Phạm Văn Phong 18 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 2-9 Firebase Real-time Database nguồn [6]


Firebase Authentication: Dịch vụ Authentication cung cấp cho ứng dụng một số
phương pháp xác thực thông qua email, mật khẩu, số điện thoải, tài khoản Google, tài
khoản Facebook… Với tính năng này, người dùng sẽ dễ dàng xây dựng chức năng đăng
nhập vô cùng tiện lợi và nhanh chóng.

Hình 2-10 Firebase Authentication nguồn [6]


Firebase Cloud Messaging: Firebase được xây dựng với tính năng nguyên thủy là
trò chuyện. Bởi thế Firebase cloud messaging (FCM) là tính năng cơ bản nhất của nền tảng
này, nó cho phép người dùng xây dựng ứng dụng chat và đẩy thông báo tới nhiều thiết bị
khác nhau như web, Android, iOS… Điểm nổi bật của dịch vụ này là hầu như không có bất
kỳ mã hóa nào liên quan. FCM được tích hợp hoàn toàn với Firebase Analytics, mang đến
cho bạn sự tương tác chi tiết và theo dõi chuyển đổi trong quá trình sử dụng.

Phạm Văn Phong 19 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 2-11 Firebase Cloud Messaging nguồn [6]


Firebase Firestone: Dữ liệu được lưu dưới dạng cơ sở dữ liệu hướng tài liệu giúp
bạn đơn giản hóa quá trình lấy dữ liệu thay vì phải thông qua các câu lệnh SQL phức tạp.
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 người dùng.
Trong ứng dụng em sử dụng các dịch vụ: Firebase Authentication, Firebase Real-
time database, Firebase Cloud Storage, Firebase Firestone.
2.4.3 Ưu điểm và hạn chế của Firebase
Ưu điểm nổi bật của Firebase:

 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ủ
 Học máy (Machine Learning)
 Tạo lưu lượng truy cập
 Theo dõi lỗi
 Sao lưu

Hạn chế của Firebase:

 Không phải là mã nguồn mở

Phạm Văn Phong 20 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mề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
 Không phải tất cả các dịch vụ Firebase đều miễn phí
 Firebase khá đắt và giá không ổn định
 Chỉ chạy trên Google Cloud
 Thiếu Dedicated Servers và hợp đồng doanh nghiệp
 Không cung cấp các API GraphQL

2.5 Tìm kiếm bằng giọng nói


2.5.1 Giới thiệu, và cách thức hoạt động của tìm kiếm bằng giọng nói
Nhận diện giọng nói là gì? Theo VNReview [7] Đây là một bộ máy hoặc hệ thống có
khả năng nhận và dịch (hoặc hiểu và thực hiện) các lệnh thu được từ giọng nói con người.
Nhận dạng giọng nói gồm 2 thuật ngữ: Voice recognition và Speech recognition.
Voice recognition liên quan đến việc xác định giọng nói chính xác của một cá nhân
nào đó, tương tự một phương pháp nhận diện sinh trắc học.
Speech recognition là việc xác định những từ ngữ trong câu nói rồi dịch chúng sang
ngôn ngữ máy tính.
Tìm kiếm bằng giọng nói là sử dụng chức năng nhận diện giọng nói trong mục đích
tìm kiếm kết quả thay vì nhập ký từ bằng bàn phím trong các ứng dụng hay trang web.
Các thức hoạt động của phần mềm nhận diện giọng nói:

Hình 2-12 Mô tả cách thức của nhận diện giọng nói nguồn [7]
Để chuyển giọng nói sang văn bản hoặc câu lệnh máy tính, hệ thống phải thực hiện
một quá trình gồm nhiều bước phức tạp. Khi nói, bạn sẽ tạo ra những rung động trong

Phạm Văn Phong 21 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

không khí. Bộ chuyển đổi tín hiệu tương tự sang số (Analog-to-Digital Converter, ADC)
chuyển các sóng tương tự (analog) này thành dữ liệu mà máy tính có thể hiểu được.
Để làm điều này, hệ thống thu thập các mẫu (hoặc số hóa) âm thanh bằng cách đo
chính xác sóng âm ở các khoảng thời gian gần nhau, sau đó lọc âm thanh đã được số hoá
để loại bỏ tiếng ồn, đôi khi tách chúng thành các dải tần số khác nhau. Nó cũng "bình
thường hóa" hoặc tinh chỉnh âm thanh đến một mức âm lượng không thay đổi hoặc sắp xếp
theo thời gian. Không phải lúc nào con người cũng nói với tốc độ như nhau nên âm thanh
phải được điều chỉnh cho phù hợp với tốc độ mà âm thanh mẫu được ghi nhận trong bộ
nhớ máy.
Tiếp theo, tín hiệu được chia thành nhiều phần nhỏ (thời gian khoảng vài phần trăm
giây, thậm chí là phần ngàn giây trong trường hợp có phụ âm cuối khó phân biệt như "p"
hoặc "t"). Chương trình sau đó đặt những phần âm thanh này vào các âm vị có sẵn trong
ngôn ngữ thích hợp.
2.5.2 Ưu và nhược điểm của tìm kiếm
Ưu điểm:

 Khả năng truy cập: Với những người khuyết tật không thể dùng chuột hay
bàn phím, họ có thể dùng giọng nói để hệ thống chuyển thành văn bản, giúp
nhập liệu hay điều khiển một cách dễ dàng.
 Tốc độ nhanh: Phần mềm có thể nắm bắt giọng nói của bạn với tốc độ nhanh
hơn so với khi nhập liệu bằng bàn phím, vì vậy tốc độ khi nhập liệu bằng
giọng nói sẽ cải thiện đáng kể.
 Đã hỗ trợ đa ngôn ngữ

Nhược điểm:

 Chưa thực sự ổn định: Việc đang nói mà bị ngắt giữa chừng có thể khiến bạn
"cụt hứng", đặc biệt nó có thể bối rối khi bạn lên xuống giọng hay bỗng dưng
nói nhỏ lại.
 Kho từ vựng hạn chế: Bạn phải sẵn sàng chấp nhận trường hợp phần mềm xử
lý quá lâu vì những từ vừa nói không nằm trong từ điển của nó. Đó là điều
đang được cải tiến từng ngày từng giờ.
 Các phầm mềm nhận diện đa ngôn ngữ phải mất phí.

Phạm Văn Phong 22 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

2.6 Kết chương


Trong chương này tác giả đã trình bày các cơ sở lý thuyết cùng với các ưu nhược
điểm về Swift, SwifUI, VNPAY, Firebase và tìm kiếm giọng nói. Trong chương tiếp theo,
đồ án sẽ trình bày về phân tích, thiết kế hệ thống theo hướng đối tượng UML của đề tài.

Phạm Văn Phong 23 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

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

Trong chương này: Phân tích thiết kế hệ thống, đồ án trình bày về phân tích thiết kế
hệ thống theo hướng đối tượng UML. Xác định các tác nhân, use case, kịch bản và vẽ các
use case, biểu đồ lớp, biểu đồ thực thể, biểu đồ tuần tự, biểu đồ hoạt động.
3.1 Xác định các tác nhân và các use case
3.1.1 Xác định các tác nhân và use case
Tác nhân Ý nghĩa Use case
Người quản trị Là người quản lý cửa hàng. Actor 1) Xem thống kê
này có quyền cao nhất. 2) Đăng nhập
3) Lấy lại mật khẩu
4) Quản lý đơn hàng
5) Quản lý sản phẩm
6) Nhắn tin với khách hàng
7) Chuyển đổi giao diện
8) Quản lý tài khoản cá
nhân.

Khách hàng Là người xem các sản phẩm, mua 1) Đăng nhập
các sản phẩm. 2) Đăng ký
3) Lấy lại mật khẩu
4) Xem sản phẩm
5) Quản lý giỏ hàng
6) Đặt hàng
7) Tìm kiếm sản phẩm
8) Nhắn tin với cửa hàng
9) Xem vị trí cửa hàng
10) Quản lý tài khoản cá
nhân
11) Quản lý sổ địa chỉ
12) Xem các đơn hàng đã đặt
13) Gửi góp ý
14) Xem thông tin về ứng
dụng và cửa hàng
Bảng 3-1 Tác nhân, ý nghĩa, use case

Phạm Văn Phong 24 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.1.2 Các use case và ý nghĩa

Use case Ý nghĩa


Đăng nhập Giúp người quản trị và khách khàng đăng nhập vào hệ thống
Đăng ký Giúp khách hàng đăng ký tài khoản mới
Lấy lại mật khẩu Giúp người quản trị, khách hàng lấy lại mật khẩu
Xem sản phẩm Khách hàng truy cập ứng dụng xem các sản phẩm của cửa hàng
Quản lý giỏ hàng Khách hàng có thể tăng giảm số lượng sản phẩm, xoá sản phẩm
trong giỏ hàng.
Tìm kiếm sản Giúp khách hàng tìm kiếm sản phẩm
phẩm

Xem vị trí cửa Cho phép khách hàng tìm kiếm vị trí cửa hàng trên bản đồ và chỉ
hàng đường đến cửa hàng
Quản lý tài khoản Cho phép người quản trị khách hàng thay đổi các thông tin cá nhân
cá nhân như tên, số điện thoại, mật khẩu.
Xem các đơn Giúp khách hàng xem các đơn hàng đã đặt trước đó, và huỷ đơn,
hàng đã dặt đánh giá sản phẩm
Quản lý sổ địa Giúp khách hàng thêm, sửa xoá địa chỉ giao hàng
chỉ

Góp ý Góp ý về dịch vụ, sản phẩm hoặc cái lỗi của ứng dụng
Xem thông tin về Cho phép khách hàng tìm hiểu các thông tin về cửa hàng và ứng
ứng dụng và cửa dụng
hàng

Quản lý sản phẩm Giúp người quản trị thêm các sản phẩm mới, sửa thông tin sản
phẩm, xoá sản phẩm trong hệ thống
Quản lý đơn đặt Cho phép người quản trị cập nhập trạng thái đơn hàng, huỷ đơn
hàng hàng
Xem thông kê Giúp người quản trị xem các thống kê về doanh thu, tổng quan đơn
hàng, tính tổng các sản phẩm, khách hàng, doanh thu, đơn hàng
Bảng 3-2 Các use case và ý nghĩa

Phạm Văn Phong 25 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.2 Use Case


3.2.1 Use Case tổng quát

Phạm Văn Phong 26 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-13 Use case tổng quát

3.2.2 Phân rã use case Đăng nhập

Hình 3-14 Phân rã use case Đăng nhập

Kịch bản Khách hàng hoặc người quản trị đăng nhập

Tác nhân Khách hàng, Người quản trị

Tiền điều kiện Đã có tài khoản

Hậu điều kiện Đăng nhập thành công

1) Khách hàng, người quản trị truy cập vào phần chức
năng thêm, hoặc truy cập vào các chức năng yêu cầu
đăng nhập.
2) Giao diện đăng nhập hiển thị
3) Khách hàng, người quản trị đăng nhập bằng tài khoản
Sự kiện chính đã có hoặc qua Google, Facebook
4) Khách hàng, người quản trị ấn nút đăng ký
5) Giao diện đăng nhập kiểm tra dữ kiệu và gửi thông tin
tài khoản lên Firebase
6) Firebase kiểm tra, tìm kiếm và trả về kết quả cho giao
diện đăng nhâp.
7) Đăng nhập thành công giao diện đăng nhập tự đóng cho
người dùng tiếp tục sử dụng.

Phạm Văn Phong 27 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Ngoại lệ:
1) Khách hàng nhập thiếu trường
2) Khách hàng nhập sai định dạng email
3) Khách hàng nhập sai định dạng mật khẩu
4) Khách hàng ấn nút X để thoát khỏi màn hình đăng nhập
Bảng 3-3 Kịch bản use case Đăng nhập
3.2.3 Phân rã use case Đăng ký

Hình 3-15 Phân rã use case Đăng ký

Kịch bản Khách hàng đăng ký tài khoản mới

Tác nhân Khách hàng

Tiền điều kiện Khách hàng truy cập vào chức năng đăng ký

Hậu điều kiện Khách hàng đăng ký thành công

Sự kiện chính 1) Khách hàng ấn nút đăng ký trên màn hình đăng nhập.
2) Giao diện đăng ký tài khoản hiện thị
3) Khách hàng nhập đầy đủ thông tin:
 Tên khách hàng.
 Tên tài khoản (email).
 Mật khẩu.

Phạm Văn Phong 28 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

 Nhập lại mât khẩu.


4) Ấn nút đăng ký.
5) Giao diện gửi thông tin đăng ký lên Firebase
6) Firebase kiểm tra vào lưu tài khoản mới vào CSDL
7) Firebase trả về kết quả cho giao diện đăng ký
8) Đăng ký thành công ứng dụng hiện thông báo kết quả.
Ngoại lệ:
1) Khách hàng nhập thiếu trường.
2) Khách hàng nhập sai định dạng email.
3) Khách hàng nhập sai định dạng mật khẩu.
4) Tài khoản đã tồn tại
Bảng 3-4 Kịch bản use case Đăng ký
3.2.4 Phân rã use case Quên mật khẩu

Hình 3-16 Phân rã use case Quên mật khẩu

Kịch bản Khách hàng, người quản trị quên mật khẩu

Tác nhân Khách hàng, người quản trị

Khách hàng, người quản trị truy cập vào chức năng quên
Tiền điều kiện
mật khẩu

Hậu điều kiện Khách hàng lấy được lại mật khẩu

1) Khách hàng ấn nút quên mật khẩu trên màn hình đăng
Sự kiện chính
nhập.
2) Giao diện quên mật khẩu hiện thị
3) Khách hàng, người quản trị nhập email đăng ký tài

Phạm Văn Phong 29 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

khoản.
4) Ấn nút quên mật khẩu
5) Giao diện gửi thông tin quên mật khẩu qua hệ thống
Firebase
6) Hệ thống Firebase gửi đường dẫn lấy mật khẩu về email
được gửi lên.
7) Khác hàng, người quản trị truy cập email, bấm đường
dẫn để truy cập giao diện lấy lại mật khẩu.
8) Nhập mật khẩu mới vào giao diện lấy lại mật khẩu
9) Hệ thống firebase lưu lại mật khẩu mới và trả về kết quả
10) Giao diện lấy lại mật khẩu thông báo kết quả.

Ngoại lệ:
1) Khách hàng, người quản trị nhập sai định dạng email.
2) Khách hàng, người quản trị nhập sai email đăng ký tài khoản.
3) Khác hàng nhập email không tồn tại.
Bảng 3-5 Kịch bản use case Quên mật khẩu
3.2.5 Phân rã use case Nhắn tin

Hình 3-17 Phân rã use case Nhắn tin

Kịch bản Khách hàng, người quản trị Nhắn tin

Tác nhân Khách hàng, người quản trị

Khách hàng, người quản trị đã đăng nhập và truy cập vào
Tiền điều kiện
chức năng Nhắn tin

Phạm Văn Phong 30 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hậu điều kiện Gửi và nhận tin nhắn trực tiếp

1) Khách hàng, người quản trị truy cập chức năng Nhắn
tin.
2) Giao diện danh sách phòng chat hiện thị
3) Giao diện phòng chat lây dữ liệu phòng chat từ
Firebase xử lý và in lên giao diện
4) Khách hàng, người quản trị chọn phòng nhắn tin
5) Giao diện nhắn tin lấy dữ liệu tin nhắn từ Firebase hiện
Sự kiện chính
thị danh sách tin nhắn.
6) Khách hàng, người quản trị nhập tin nhắn chữ hoặc
chọn hình ảnh vào trường nhập tin nhắn và ấn gửi
7) Giao diện gửi tin nhắn mới lên Firebase
8) Firebase trả lại kết quả cho giao diện nhắn tin
9) Giao diện danh sách tin nhắn cập nhhập lại danh sách
tin nhắn

Bảng 3-6 Kịch bản use case Nhắn tin


3.2.6 Phân rã use case Góp ý về ứng dụng

Hình 3-18 Phân rã use case Góp ý về ứng dụng

Kịch bản Khách hàng góp ý về ứng dụng

Tác nhân Khách hàng

Tiền điều kiện Khách hàng truy cập vào chức năng gửi góp ý

Phạm Văn Phong 31 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hậu điều kiện Gửi được góp ý cho cửa hàng.

1) Khách chọn chức năng gửi góp ý trong phần chức năng
thêm.
2) Giao diện diện góp ý hiện thị
Sự kiện chính 3) Khách hàng nhập các góp ý cần gửi và ấn gửi.
4) Giao diện góp ý tạo email góp ý và gửi vào email của
người quản trị
5) Giao diện thông báo kết quả gửi góp ý.

Bảng 3-7 Kịch bản use case Góp ý về ứng dụng


3.2.7 Phân rã use case Quản lý giỏ hàng

Hình 3-19 Phân rã use case Quản lý giỏ hàng

a. Kịch bản use case Xoá sản phẩm trong giỏ hàng

Kịch bản Khách hàng xoá sản phẩm trong giỏ hàng

Tác nhân Khách hàng

Tiền điều kiện Khách hàng, người quản truy cập chức năng giỏ hàng

Hậu điều kiện Khách hàng quản lý xoá được giỏ hàng

Phạm Văn Phong 32 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

1) Khách hàng ấn nút giỏ hàng ở màn hình trang chủ, màn
hình chi tiết sản phẩm.
2) Ứng dụng chuyển sang Giao diện giỏ hàng
3) Giao diện lấy dữ liệu sản phẩm giỏ hàng trong bộ nhớ
ứng dụng và hiện thị lên màn hình
Sự kiện chính 4) Khách hàng chọn sản phẩm muốn xoá vuốt từ phải
sang trái để xoá.
5) Giao diện cập nhập giao diện và gửi dữ liệu giỏ hàng
sau khi xoá đến bộ nhớ ứng dụng
6) Bộ nhớ lưu lại dữ liệu

Ngoại lệ:
1. Chưa có sản phẩm nào trong giỏ hàng
Bảng 3-8 Kịch bản use case Xoá sản phẩm trong giỏ hàng

b. Phân rã use case Thay đổi số lượng sản phẩm trong giỏ hàng và kịch bản

Hình 3-20 Phân rã use case Thay đổi số lượng sản phẩm trong giỏ hàng

Kịch bản Khách hàng thay đổi số lượng trong giỏ hàng

Tác nhân Khách hàng

Tiền điều kiện Khách hàng, người quản truy cập chức năng giỏ hàng

Phạm Văn Phong 33 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hậu điều kiện Khách hàng thay đổi được số lượng trong giỏ hàng

1) Khách hàng ấn nút giỏ hàng ở màn hình trang chủ,


màn hình chi tiết sản phẩm.
2) Ứng dụng chuyển sang Giao diện giỏ hàng
3) Giao diện lấy dữ liệu sản phẩm giỏ hàng trong bộ nhớ
ứng dụng và hiện thị lên màn hình
4) Khách hàng muốn thay đổi số lượng sản phẩm trong
giỏ: bấm nút + để thêm số lượng, bấm dấu – giảm số
Sự kiện chính lượng
5) Giao diện kiểm tra số lượng còn lại của sản phẩm
trong cửa hàng.
6) Giao diện cập nhập giao diện và gửi dữ liệu giỏ hàng
sau khi tăng giảm số lượng sản phẩm đến bộ nhớ ứng
dụng
7) Bộ nhớ lưu lại dữ liệu

Ngoại lệ:
1) Chưa có sản phẩm nào trong giỏ hàng
Bảng 3-9 Kịch bản use case Thêm số lượng sản phẩm giỏ hàng
3.2.8 Phân rã use case Đặt hàng

Hình 3-21 Phân rã use case Đặt hàng

Kịch bản Khách hàng đặt hàng

Tác nhân Khách hàng

Tiền điều kiện Khách hàng truy cập chức năng đặt hàng

Phạm Văn Phong 34 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hậu điều kiện Khách hàng đặt hàng thành công

1) Từ màn hình giỏ hàng khách hàng ấn nút tiến hàng đặt
hàng
2) Ứng dụng chuyển sang giao diện đặt hàng và gửi theo
dữ liệu các sản phẩm trong giỏ hàng
3) Hiện thị giao diện đặt hàng
4) Khách hàng chọn địa chỉ giao hàng
5) Ứng dụng chuyển sang giao diện chọn địa chỉ giao
hàng
Sự kiện chính 6) Giao điện dịa chỉ giao hàng lấy dữ liệu từ Firebase và
hiện thị lên màn hình
7) Khách hàng chọn dịa chỉ giao hàng
8) Ứng dụng lưu lại dữ liệu và chuyển về giao diện đặt
hàng
9) Chọn phương thức thanh toán
10) Khách hàng ấn nút xác nhận đặt hàng
11) Giao diện gửi thông tin đặt hàng lên Firebase
12) Firebase lưu vào CSDL đơn hàng.

Ngoại lệ:
1) Khách hàng chưa chọn địa chỉ ứng dụng không cho đặt hàng.
2) Khách hàng chưa có địa chỉ giao hàng cần thêm địa chỉ giao hàng
Bảng 3-10 Kịch bản use case Đặt hàng

a. Kịch bản thanh toán bằng thẻ qua hệ thống VNPAY

Kịch bản Khách hàng thanh toán bằng thẻ

Tác nhân Khách hàng

Khách hàng truy cập chọn thanh thoán bằng thẻ ở màn
Tiền điều kiện
hình đặt hàng

Hậu điều kiện Khách hàng thanh toán thành công

Phạm Văn Phong 35 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

1) Khách hàng ấn nút đặt hàng


2) Ứng dụng chuyển sang giao diện danh sách ngân hàng
3) Khách hàng chọn ngân hàng của thẻ của mình đang
dùng
4) Ứng dụng chuyển sang giao diện chọn điền các thông
tin thanh toán
5) Khách hàng điền các thông tin về số thẻ hoặc tài khoản
Sự kiện chính smart banking
6) Khách hàng ấn nút thanh toán
7) Hệ thống VNPAY gửi OTP xác nhận
8) Nhập OTP xác nhận
9) Hệ thông VNPAY xử lý và trả về kết quả
10) Giao diện thanh toán chuyển về giao diện đặt hàng
11) Giao diện đặt hàng hiện thị thông báo
12) Khách ấn nút tiếp tục mua sắm.

Ngoại lệ:
1) Khách hàng không đủ tiên trong tài khoản thanh toán bằng VNPAY
2) Thẻ đã bị khoá
3) Quên mật khẩu thẻ.

Bảng 3-11 Kịch bản thanh toán bằng thẻ qua VNPAY

Phạm Văn Phong 36 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.2.9 Phân rã use case Xem đơn hàng đã đặt

Hình 3-22 Phân rã use case Xem đơn hàng đã đặt

a. Kịch bản use case Xem danh sách đơn hàng

Kịch bản Khách hàng xem danh sách đơn hàng

Tác nhân Khách hàng

Khách hàng truy cập chức năng Xem được đơn hàng đã
Tiền điều kiện
đặt

Hậu điều kiện Khách hàng xem được danh sách đơn hàng đã đặt

1) Khách hàng chọn chức năng Xem đơn hàng đã đặt ở


Sự kiện chính
phần.
2) Giao diện xem đơn hàng đã đặt đơn hàng gửi yêu cầu
lấy dữ liệu đơn hàng từ Firebase
3) Firebase tìm kiếm dữ liệu đơn hàng của khách hàng và
trả về cho giao diện
4) Giao diện xử lý dữ liệu trả về và in kết quả lên màn
hình.

Phạm Văn Phong 37 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

5) Giao diện xem đơn hàng được chia thành các tab: Tất
cả, chờ xác nhận, xác nhận, chờ vận chuyển, đang vận
chuyển, hoàn thành và huỷ.
6) Khách hàng có thể bấm vào từng tab để xem danh sách
đơn hàng theo trạng thái

Ngoại lệ:
1) Màn hình hiện thị không có đơn hàng, do khách hàng chưa đặt đơn hàng
nào

Bảng 3-12 Kịch bản use case Xem đơn hàng đã đặt

b. Kịch bản use case Xem thông tin chi tiết đơn hàng

Kịch bản Khách hàng xem chi tiết đơn hàng

Tác nhân Khách hàng

Khách hàng truy cập chức năng Xem được đơn hàng đã
Tiền điều kiện
đặt

Hậu điều kiện Khách hàng xem được chi tiết đơn hàng

1) Khách hàng chọn chức năng Xem đơn hàng đã đặt ở


phần.
2) Giao diện xem đơn hàng đã đặt đơn hàng gửi yêu cầu
lấy dữ liệu đơn hàng từ Firebase
3) Firebase tìm kiếm dữ liệu đơn hàng của khách hàng và
Sự kiện chính trả về cho giao diện
4) Giao diện xử lý dữ liệu trả về và in kết quả lên màn
hình.
5) Khách hàng chọn vào một đơn hàng bất kì
6) Giao diện xem đơn hàng chuyển sang giao diện xem chi
tiết đơn hàng

Ngoại lệ:
1) Màn hình hiện thị không có đơn hàng, do khách hàng chưa đặt đơn hàng
nào

Phạm Văn Phong 38 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Bảng 3-13 Kịch bản use case Xem đơn hàng đã đặt

c. Kịch bản use case Huỷ đơn hàng

Kịch bản Khách hàng huỷ đơn hàng

Tác nhân Khách hàng

Khách hàng trị truy cập vào chức năng Xem đơn hàng đã
Tiền điều kiện
đặt

Hậu điều kiện Khách hàng huỷ được đơn hàng

1) Khách hàng truy cập chức năng xem đơn hàng đã đặt
2) Giao diện xem đơn hàng đã đặt đơn hàng gửi yêu cầu
lấy dữ liệu đơn hàng từ Firebase
3) Firebase tìm kiếm dữ liệu đơn hàng của khách hàng và
trả về cho giao diện
4) Giao diện xử lý dữ liệu trả về và in kết quả lên màn
Sự kiện chính hình.
5) Khách hàng chọn một đơn hàng để chuyển sang giao
diện chi tiết đơn hàng.
6) Bấm nút huỷ trên giao diện chi tiết đơn hàng
7) Giao diện xem đơn hàng gửi thông tin đơn hàng huỷ lên
Firebase
8) Firebase cập nhập dữ liệu vào đơn hàng
9) Giao diện cập nhập giao diện đơn hàng đã huỷ

Ngoại lệ:
1) Chưa có đơn hàng giao diện hiện thị không tìm thấy đơn hàng
2) Đơn hàng đã chuyển sang trạng thái đang vận chuyển nút huỷ được ẩn và
không thể huỷ đơn hàng
Bảng 3-14 Kịch bản use case Huỷ đơn hàng

d. Phân rã và kịch bản use case Đánh giá sản phẩm

Phạm Văn Phong 39 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-23 Phân rã use case Đánh giá sản phẩm

Kịch bản Khách hàng đánh giá sản phẩm

Tác nhân Khách hàng

Tiền điều kiện Khách hàng truy cập chức năng Xem chi tiết đơn hàng

Hậu điều kiện Khách hàng đánh giá được các sản phẩm

1) Khách hàng chọn đơn hàng đã hoàn thành ở giao diện


danh sách đơn hàng
2) Giao diện chi tiết đơn hàng hiện thị
3) Khách hàng bấm nút đánh giá sản phẩm
4) Giao diện đánh giá sản phẩm hiện thị
Sự kiện chính 5) Khách hàng nhập đánh giá, chọn số sao, thêm cách hình
ảnh về sản phẩm và ấn nút đánh giá
6) Giao diện đánh giá gửi thông tin đánh giá sản phẩm lên
Firebase
7) Firebase lưu vào CSDL đánh giá và trả về kết quả
8) Giao diện nhận kết quả và đưa ra thông báo cho khách
hàng

Bảng 3-15 Kịch bản use case Đánh giá sản phẩm

Phạm Văn Phong 40 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.2.10 Phân rã use case Quản lý tài khoản cá nhân

Hình 3-24 Phân rã use case Quản lý tài khoản cá nhân

a. Kịch bản use case Thay đổi ảnh đại diện

Kịch bản Khách hàng, người quản trị thay đổi ảnh đại diện

Tác nhân Khách hàng, người quản trị

Khách hàng, người quản trị truy cập vào chức năng quản
Tiền điều kiện
lý tài khoản

Hậu điều kiện Khách hàng thay đổi được ảnh đại diện

1) Khách hàng ấn vào hình ảnh đại diện trong phần quản lý
Sự kiện chính
tài khoản
2) Giao diện quản lý tài khoản hiện thị giao diện chọn ảnh
3) Khách hàng, người quản trị chọn ảnh đại diện mới
4) Giao diện quản lý tài khoản tải ảnh mới lên Firebase
5) Firebase cập nhập dữ liệu thông tin tài khoản và trả về
kết quả
6) Giao diện quản lý tài khoản cập nhập và hiện thị ảnh đại

Phạm Văn Phong 41 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

diện mới.

Ngoại lệ:
1) Ảnh đại diện tải lên không thành công.

Bảng 3-16 Kịch bản use case Thay đổi ảnh đại diện

b. Kịch bản use case Thay đổi tên

Kịch bản Khách hàng, người quản trị thay tên

Tác nhân Khách hàng, người quản trị

Khách hàng, người quản trị truy cập vào chức năng quản
Tiền điều kiện
lý tài khoản

Hậu điều kiện Khách hàng thay đổi được tên

1) Khách hàng ấn nút hình bút cạnh tên


2) Giao diện quản lý tài khoản hiện thị form popup thay
đổi tên
3) Khách hàng, người quản trị nhập tên mới
Sự kiện chính 4) Giao diện quản lý tài khoản gửi thông tin tên mới lên
Firebase
5) Firebase cập nhập dữ liệu thông tin tài khoản và trả về
kết quả
6) Giao diện quản lý tài khoản cập nhập và hiện thị tên mới

Bảng 3-17 Kịch bản use case Thay đổi tên

c. Kịch bản use case Cập nhập số điện thoại

Kịch bản Khách hàng, người quản trị cập nhập số điện thoại

Tác nhân Khách hàng, người quản trị

Tiền điều kiện Khách hàng, người quản trị truy cập vào chức năng quản
Phạm Văn Phong 42 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

lý tài khoản

Hậu điều kiện Khách hàng thay đổi được ảnh đại diện

1) Khách hàng ấn vào dòng số điện thoại trên giao diện


quản lý tài khoản
2) Giao diện quản lý tài khoản hiện thị form popup nhập số
điện thoại mới
3) Khách hàng, người quản trị nhập số điện thoại mới
4) Form kiểm tra định dạng số điện thoại
Sự kiện chính 5) Giao diện quản lý tài khoản gửi thông tin số điện thoại
mới lên Firebase
6) Firebase cập nhập dữ liệu thông tin tài khoản và trả về
kết quả
7) Giao diện quản lý tài khoản cập nhập và hiện thị số điện
thoại mới

Ngoại lệ:
1) Khách hàng, người quản trị nhập sai định dạng số điện thoại

Bảng 3-18 Kịch bản use case Cập nhập số điện thoại

d. Kịch bản use case Thay đổi mật khẩu

Kịch bản Khách hàng, người quản trị cập nhập số điện thoại

Tác nhân Khách hàng, người quản trị

Khách hàng, người quản trị truy cập vào chức năng quản
Tiền điều kiện
lý tài khoản

Hậu điều kiện Khách hàng thay đổi được ảnh đại diện

1) Khách hàng ấn vào dòng thay đổi mật khẩu


Sự kiện chính
2) Giao diện quản lý tài khoản chuyển sang giao diện đổi
mật khẩu

Phạm Văn Phong 43 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3) Giao diện mật khẩu hiện thị trường nhập mật khẩu cũ
4) Khách hàng, người quản trị nhập mật khẩu cũ ván ấn nút
xác nhận
5) Giao diện quên mật khẩu tiến hành đăng nhập lại
6) Firebase xác thực và trả về kết quả
7) Giao diện quên mật khẩu hiện trường nhập mật khẩu
mới
8) Giao diện quên mật khẩu gửi thông tin mật khẩu mới lên
Firebase
9) Firebase lưu lại dữ liệu vào CSDL tài khoản

Ngoại lệ:
1) Khách hàng, người quản trị nhập không đúng định dạng mật khẩu yêu cầu
gồm tối thiểu 8 chữ số có chữ in hoa, chữ in thường, chữ số và ký thự đặc
biệt

Bảng 3-19 Kịch bản use case Thay đổi mật khẩu

e. Kịch bản use case Đăng xuất

Kịch bản Khách hàng, người quản trị đăng xuất

Tác nhân Khách hàng, người quản trị

Khách hàng, người quản trị truy cập vào chức năng quản
Tiền điều kiện
lý tài khoản

Hậu điều kiện Khách hàng thay đăng xuất được

1) Khách hàng ấn vào nút đăng xuất trong giao diện quản
lý tài khoản
2) Ứng dụng đăng xuất khỏi phiên làm viêc, xoá dữ liệu
Sự kiện chính
giỏ hàng, xoá dữ liệu người dùng
3) Giao diện quản lý tài khoản tự động thoát

Bảng 3-20 Kịch bản use case Đăng xuất

Phạm Văn Phong 44 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.2.11 Phân rã use case Quản lý sổ địa chỉ

Hình 3-25 Phân rã use case Quản lý sổ địa chỉ

a. Phân rã use case Thêm địa chỉ và kịch bản

Hình 3-26 Phân rã use case Thêm địa chỉ

Kịch bản Khách hàng thêm địa chỉ

Tác nhân Khách hàng

Tiền điều kiện Khách hàng truy cập vào Sổ địa chỉ

Hậu điều kiện Khách hàng thêm được địa chỉ mới

Phạm Văn Phong 45 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

1) Khách hàng sử truy cập chức năng Sổ địa chỉ


2) Giao diện quản lý sổ địa chỉ yêu cầu lấy dữ liệu từ
Firebase
3) Firebase tìm kiếm dữ liệu địa chỉ và trả về kết quả cho
giao diện
4) Giao diện quản lý sổ địa chỉ hiện thị danh sách các địa
chỉ
5) Khách hàng ấn nút thêm địa chỉ
Sự kiện chính 6) Giao diện thêm địa chỉ được hiện thị
7) Khách hàng nhập đầy đủ các thông tin về địa chỉ gồm:
Tên người nhận, số điện thoại người nhận, đia chỉ người
nhận
8) Khách hàng ấn nút thêm địa chỉ
9) Giao diện thêm địa chỉ kiểm tra thông tin nhập và gửi
lên Firebase
10) Firebase thêm địa chỉ mới vào cơ sở dữ liệu và trả về kết
quả
11) Giao diện thêm địa chỉ hiện thị thông báo

Ngoại lệ:
1) Khách hàng chưa nhập đầy đủ các trường cần nhập

Bảng 3-21 Kịch bản use case Thêm địa chỉ

b. Phân rã use case Cập nhập địa chỉ và kịch bản

Hình 3-27 Phân rã use case Cập nhập địa chỉ

Phạm Văn Phong 46 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Kịch bản Khách hàng cập nhập địa chỉ

Tác nhân Khách hàng

Tiền điều kiện Khách hàng truy cập vào Sổ địa chỉ

Hậu điều kiện Khách hàng cập nhập địa chỉ

1) Khách hàng sử truy cập chức năng Sổ địa chỉ


2) Giao diện quản lý sổ địa chỉ yêu cầu lấy dữ liệu từ
Firebase
3) Firebase tìm kiếm dữ liệu địa chỉ và trả về kết quả cho
giao diện
4) Giao diện quản lý sổ địa chỉ hiện thị danh sách các địa
chỉ
5) Khách hàng ấn nút sửa địa chỉ trên giao diện quản lý sổ
Sự kiện chính địa chỉ
6) Giao diện cập nhập địa chỉ hiện thị
7) Khách hàng nhập các thông tin địa chỉ cần thay đổi
8) Khách hàng ấn nút cập nhập đại chỉ
9) Giao diện cập nhập địa chỉ kiểm tra thông tin nhập và
gửi lên Firebase
10) Firebase cập nhập địa chỉ vào cơ sở dữ liệu và trả về kết
quả
11) Giao diện thêm địa chỉ hiện thị thông báo

Bảng 3-22 Kịch bản use case Cập nhập địa chỉ

c. Kịch bản use case Xoá địa chỉ

Kịch bản Khách hàng xoá địa chỉ

Tác nhân Khách hàng

Tiền điều kiện Khách hàng truy cập vào Sổ địa chỉ

Phạm Văn Phong 47 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hậu điều kiện Khách hàng cập nhập địa chỉ

1) Khách hàng sử truy cập chức năng Sổ địa chỉ


2) Giao diện quản lý sổ địa chỉ yêu cầu lấy dữ liệu từ
Firebase
3) Firebase tìm kiếm dữ liệu địa chỉ và trả về kết quả cho
giao diện
4) Giao diện quản lý sổ địa chỉ hiện thị danh sách các địa
Sự kiện chính chỉ
5) Khách hàng giữ vào 1 ô địa chỉ muốn xoá và ấn nút xoá
6) Giao diện quản lý sổ địa chỉ gửi thông tin địa chỉ xoá lên
Firebase
7) Firebase xoá địa chỉ trong cơ sở dữ liệu
8) Giao diện quản lý sổ địa chỉ cập nhập sau khi xoá

Bảng 3-23 Kịch bản use case Cập nhập địa chỉ

3.2.12 Phân rã use case Tìm kiếm sản phẩm

Hình 3-28 Phân rã use case Tìm kiếm sản phẩm

a. Kịch bản use case Tìm kiếm sản phẩm bằng tên

Kịch bản Khách hàng, người quản trị tìm kiếm sản phẩm bằng tên

Tác nhân Khách hàng, người quản trị

Tiền điều kiện Khách hàng, người quản trị truy cập vào chức năng tìm

Phạm Văn Phong 48 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

kiếm sản phẩm

Hậu điều kiện Khách hàng, người quản trị tìm kiếm được sản phẩm

1) Khách hàng truy cập chức năng tìm kiếm sản phẩm.
2) Giao diện tìm kiếm sản phẩm hiện thị
3) Khách hàng, người quản trị nhập từ tìm kiếm vào ô tìm
kiếm
4) Giao diện tìm kiếm gửi thông tin tìm kiếm lên Firebase
Sự kiện chính 5) Firebase tìm kiếm trong cơ sở dữ liệu sản phẩm và trả về
kết quả
6) Giao diện tìm kiếm xử lý dữ liệu và hiện thị các kết quả
tìm kiếm
7) Khách hàng, người quản trị lọc có thể các sản phẩm tìm
kiếm

Ngoại lệ:
1) Khách hàn, người quản trị nhập tên sản phẩm không có trong cơ sở dữ
liệu giao diện tìn kiếm sản phẩm sẽ báo không tìm thấy sản phẩm

Bảng 3-24 Kịch bản use case Tìm kiếm sản phẩm bằng tên

b. Kịch bản use case Tìm kiếm sản phẩm bằng giọng nói

Khách hàng, người quản trị tìm kiếm sản phẩm bằng
Kịch bản
giọng nói

Tác nhân Khách hàng, người quản trị

Khách hàng, người quản trị truy cập vào chức năng tìm
Tiền điều kiện
kiếm sản phẩm

Hậu điều kiện Khách hàng, người quản trị tìm kiếm được sản phẩm

Sự kiện chính 1) Khách hàng truy cập chức năng tìm kiếm sản phẩm.
2) Giao diện tìm kiếm sản phẩm hiện thị
3) Khách hàng, người quản trị ấn nút tìm kiếm bằng giọng
Phạm Văn Phong 49 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

nói
4) Nút tìm kiếm bằng giọng nói chuyển màu xanh khách
hàng bắt đầu nói
5) Hệ thống chuyển đổi giọng nói sang văn bản thu giọng
nói và chuyển sang văn bản
6) Giao diện tìm kiếm gửi thông tin tìm kiếm lên Firebase
7) Firebase tìm kiếm trong cơ sở dữ liệu sản phẩm và trả về
kết quả
8) Giao diện tìm kiếm xử lý dữ liệu và hiện thị các kết quả
tìm kiếm
9) Khách hàng, người quản trị lọc có thể các sản phẩm tìm
kiếm
Ngoại lệ:
1) Khách hàng, người quản trị nói tên sản phẩm không có trong cơ sở dữ
liệu giao diện tìn kiếm sản phẩm sẽ báo không tìm thấy sản phẩm
2) Khách hàng nói quá nhỏ, không rõ từ sẽ không thể thu dữ liệu giọng nói
Bảng 3-25 Kịch bản use case Tìm kiếm sản phẩm bằng giọng nói

c. Phân rã use case và kịch bản use case Lọc sản phẩm tìm kiếm

Hình 3-29 Phân rã use case Lọc sản phẩm tìm kiếm

Kịch bản Khách hàng, người quản trị lọc sản phẩm tìm kiếm

Tác nhân Khách hàng, người quản trị

Tiền điều kiện Khách hàng đã tìm kiếm và có kết quả tìm kiếm

Phạm Văn Phong 50 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hậu điều kiện Khách hàng lọc được tìm kiếm

1) Khách hàng, người quản trị nhập từ tìm kiếm vào ô tìm
kiếm
2) Giao diện tìm kiếm gửi thông tin tìm kiếm lên Firebase
3) Firebase tìm kiếm trong cơ sở dữ liệu sản phẩm và trả về
kết quả
Sự kiện chính
4) Giao diện tìm kiếm xử lý dữ liệu và hiện thị các kết quả
tìm kiếm
5) Khách hàng, người quản trị ấn nút lọc và chọn kiểu lọc
6) Giao diện tìm kiếm lọc các sản phẩm và cập nhập lại
giao diện

Bảng 3-26 Kịch bản use case Thêm sản phẩm vào giỏ hàng
3.2.13 Phân rã use case Xem sản phẩm

Hình 3-30 Phân rã use case Xem sản phẩm

Kịch bản Khách hàng xem sản phẩm

Tác nhân Khách hàng

Tiền điều kiện Khách hàng truy cập vào ứng dụng

Hậu điều kiện Khách hàng xem được các thông tin sản phẩm

Phạm Văn Phong 51 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

1) Truy cập vào ứng dụng, các sản phẩm được hiện thị ở
màn hình trang chủ và các phần sản phẩm tương tự
2) Giao diện danh sách các sản phẩm hiện thị
3) Giao diện danh sách sản phẩm yêu cầu lấy dữ liệu sản
phẩn từ Firebase
4) Firebase tìm kiếm và trả về dữ liệu sản phẩm
5) Giao diện danh sách sản phẩm xử lý kết quả và in lên
màn hình các thông tin sản phẩm rút gọn
Sự kiện chính
6) Khách hàng vuốt, cuộn màn hình xem các sản phẩm
7) Khách lọc các sản phẩm theo: loại, giá
8) Khách hàng chọn vào 1 sản phẩm nếu muốn xem thông
tin chi tiết của sản phẩm đó
9) Hệ thống chuyển sang giao diện thông tin chi tiết sản
phẩm và hiện thị thông tin chi tiết sản phẩm vừa chọn
10) Khách hàng có thể thêm sản phẩm vào giỏ hàng
11) Khách hàng quay trở lại màn hình danh sách sản phẩm
để tiếp tục xem cac sản phẩm khác

Bảng 3-27 Kịch bản use case Xem sản phẩm

d. Phân rã use case và kịch bản use case Xem thông tin chi tiết sản phẩm

Hình 3-31 Phân rã use case Xem chi tiết sản phẩm
Kịch bản Khách hàng thêm xem thông tin chi tiết sản phẩm

Tác nhân Khách hàng

Tiền điều kiện Khách hàng Xem thông tin chi tiết sản phẩm
Phạm Văn Phong 52 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hậu điều kiện Khách hàng xem được thông tin chi tiết sản phẩm

1) Truy cập vào ứng dụng, các sản phẩm được hiện thị ở
màn hình trang chủ và các phần sản phẩm tương tự
2) Giao diện danh sách các sản phẩm hiện thị
3) Giao diện danh sách sản phẩm yêu cầu lấy dữ liệu sản
phẩn từ Firebase
4) Firebase tìm kiếm và trả về dữ liệu sản phẩm
Sự kiện chính 5) Giao diện danh sách sản phẩm xử lý kết quả và in lên
màn hình các thông tin sản phẩm rút gọn
6) Khách hàng chọn vào 1 sản phẩm nếu muốn xem thông
tin chi tiết của sản phẩm đó gồm: tên sản phẩm, giá,
giảm giá, số lượng sản phẩm, loại thiết bị, màu sắc,
dung lượng, kích thước màn hình, mô tả về sản phẩm,
tất cả ảnh sản phẩm, các đánh giá về sản phẩm

Bảng 3-28 Kịch bản use case Xem thông tin chi tiết sản phẩm

e. Kịch bản use case Thêm sản phẩm vào giỏ hàng

Kịch bản Khách hàng thêm sản phẩm vào giỏ hàng

Tác nhân Khách hàng

Tiền điều kiện Khách hàng Xem thông tin chi tiết sản phẩm

Hậu điều kiện Khách hàng thêm được sản phẩm vào giỏ hàng

1) Khách hàng chọn một sản phẩm trong danh sách sản
Sự kiện chính
phẩm
2) Giao diện thông tin chi tiết sản phẩm hiện thị
3) Khách hàng ấn nút thêm vào giỏ hàng phía dưới màn
hình
4) Giao diện danh thông tin chi tiết sản phẩm gửi dữ liệu
sản phẩm giỏ hàng đến bộ nhớ ứng dụng
5) Khách hàng vuốt, cuộn màn hình xem các sản phẩm

Phạm Văn Phong 53 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

6) Khách lọc các sản phẩm theo: loại, giá


7) Khách hàng chọn vào 1 sản phẩm nếu muốn xem thông
tin chi tiết của sản phẩm đó
8) Hệ thống chuyển sang giao diện thông tin chi tiết sản
phẩm và hiện thị thông tin chi tiết sản phẩm vừa chọn
9) Khách hàng có thể thêm sản phẩm vào giỏ hàng
10) Khách hàng quay trở lại màn hình danh sách sản phẩm
để tiếp tục xem cac sản phẩm khác

Bảng 3-29 Kịch bản use case Thêm sản phẩm vào giỏ hàng
3.2.14 Phân rã use case Xem vị trí cửa hàng

Hình 3-32 Phân rã use case Xem vị trí cửa hàng

Kịch bản Khách hàng xem vị trí cửa hàng

Tác nhân Khách hàng

Tiền điều kiện Khách hàng truy cập vào chức năng xem vị trí cửa hàng

Hậu điều kiện Khách hàng xem được vị trí cửa hàng

1) Khách hàng truy cập chức năng xem vị trí cửa hàng
Sự kiện chính
2) Giao diện Xem vị trí được hiện thị

Phạm Văn Phong 54 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3) Khách hàng chọn các dấu mốc để xem chi tiết hơn vị trí
của cửa hàng
4) Giao diện Xem vị trí cửa hàng sẽ hiện thị nút chỉ đường
5) Khách hàng ấn nút chỉ đường ứng dụng sẽ chuyển sang
ứng dụng Google Maps (nếu đã cài đặt) hoặc chuyển
sang website Google Maps trên trình duyệt

Bảng 3-30 Kịch bản use case Xem vị trí cửa hàng
3.2.15 Phân rã use case Quản lý đơn hàng

Hình 3-33 Phân rã use case Quản lý đơn hàng

a. Phân rã use case và kịch bản Cập nhập trạng thái đơn hàng

Hình 3-34 Phân rã use case Cập nhập trạng thái đơn hàng

Phạm Văn Phong 55 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Kịch bản Người quản trị cập nhập trạng thái đơn hàng

Tác nhân Người quản trị

Tiền điều kiện Người quản trị truy cập vào chức năng quản lý đơn hàng

Hậu điều kiện Người quản trị cập nhập được trạng thái đơn hàng

1) Người quản trị truy cập chức năng quản lý đơn hàng
2) Giao diện quản lý đơn hàng gửi yêu cầu lấy dữ liệu đơn
hàng từ Firebase
3) Firebase tìm kiếm dữ liệu đơn hàng và trả về cho giao
diện
4) Giao diện xử lý dữ liệu trả về và in kết quả lên màn
hình.
5) Người quản trị có thể lọc các đơn hàng theo tháng, theo
Sự kiện chính khoảng thời gian
6) Bấm nút cập trạng thái đơn hàng trên mỗi đơn hàng. Nút
cập nhập trạng thái đơn hàng sẽ thay đổi theo thứ tự:
Xác nhận, chờ vận chuyển, đang vận chuyển và hoàn
thành
7) Quản lý đơn hàng gửi thông tin trạng thái đơn hàng lên
Firebase sau mỗi lần cập nhập
8) Firebase cập nhập dữ liệu vào đơn hàng
9) Giao diện cập nút cập nhập trạng thái sau mỗi lần bấm
và hiện thị

Ngoại lệ:
1) Chưa có đơn hàng giao diện hiện thị không tìm thấy đơn hàng
2) Đơn hàng đã hoàn thành
Bảng 3-31 Kịch bản use case Cập nhập trạng thái đơn hàng

b. Kịch bản use case Huỷ đơn hàng

Kịch bản Người quản trị huỷ đơn hàng

Tác nhân Người quản trị

Phạm Văn Phong 56 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Tiền điều kiện Người quản trị truy cập vào chức năng quản lý đơn hàng

Hậu điều kiện Người quản trị huỷ được đơn hàng

1) Người quản trị truy cập chức năng quản lý đơn hàng
2) Giao diện quản lý đơn hàng gửi yêu cầu lấy dữ liệu đơn
hàng từ Firebase
3) Firebase tìm kiếm dữ liệu đơn hàng và trả về cho giao
diện
4) Giao diện xử lý dữ liệu trả về và in kết quả lên màn
Sự kiện chính hình.
5) Người quản trị có thể lọc các đơn hàng theo tháng, theo
khoảng thời gian
6) Bấm nút huỷ trên đơn hàng
7) Quản lý đơn hàng gửi thông tin huỷ đơn hàng lên
Firebase
8) Firebase cập nhập dữ liệu vào đơn hàng
9) Giao diện cập nhập giao diện đơn hàng đã huỷ

Ngoại lệ:
1) Chưa có đơn hàng giao diện hiện thị không tìm thấy đơn hàng
2) Đơn hàng đã chuyển sang trạng thái đang vận chuyển nút huỷ được ẩn và
không thể huỷ đơn hàng
Bảng 3-32 Kịch bản use case Huỷ đơn hàng
3.2.16 Phân rã use case Quản lý sản phẩm

Hình 3-35 Phân rã use case Quản lý sản phẩm

Phạm Văn Phong 57 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

a. Phân rã use case và kịch bản use case Thêm sản phẩm

Hình 3-36 Phân rã use case thêm sản phẩm

Kịch bản Người quản trị thêm sản phẩm

Tác nhân Người quản trị

Tiền điều kiện Người quản trị truy cập vào chức năng quản lý sản phẩm

Hậu điều kiện Người quản trị thêm được sản phẩm mới

1) Người quản trị sử truy cập chức năng quả lý sản phẩm
Sự kiện chính
2) Giao diện quản lý sản phẩm yêu cầu lấy dữ liệu từ
Firebase
3) Firebase tìm kiếm dữ liệu sản phẩm và trả về kết quả
cho giao diện
4) Giao diện quản lý sản phẩm hiện thị danh sách các sản
phẩm
5) Người quản trị ấn nút dấu + dưới cùng bên phải giao
diện quản lý sản phẩm
6) Giao diện thêm sản phẩm được hiện thị
7) Người quản trị nhập đầy đủ các thông tin về tên sản
phẩm, giá, giảm giá, số lượng sản phẩm, chọn loại thiết
Phạm Văn Phong 58 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

bị, chọn màu sắc, chọn dung lượng, chọn kích thước
màn hình, nhập mô tả về sản phẩm, thêm ảnh sản phẩm
8) Người quản trị ấn nút thêm sản phẩm
9) Giao diện thêm sản phẩm kiểm tra thông tin nhập và gửi
lên Firebase
10) Firebase thêm sẩn phẩm mới vào cơ sở dữ liệu và trả về
kết quả
11) Giao diện thêm sản phẩm hiện thị thông báo

Ngoại lệ:
1) Người quản trị chưa nhập đầy đủ các trường cần nhập
2) Người quản trị chưa chọn loại, màu sắc, bộ nhớ
3) Người quản trị chưa thêm ảnh sản phẩm

Bảng 3-33 Kịch bản use case Thêm sản phẩm

b. Phân rã use case và kịch bản use case Cập nhập sản phẩm

Hình 3-37 Phân rã use case cập nh sản phẩm

Kịch bản Người quản trị cập nhập thông tin sản phẩm

Phạm Văn Phong 59 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Tác nhân Người quản trị

Tiền điều kiện Người quản trị truy cập vào chức năng quản lý sản phẩm

Hậu điều kiện Người quản trị cập nhập được thông tin sản phẩm

1. Người quản trị sử truy cập chức năng quả lý sản phẩm
2. Giao diện quản lý sản phẩm yêu cầu lấy dữ liệu từ
Firebase
3. Firebase tìm kiếm dữ liệu sản phẩm và trả về kết quả
cho giao diện
4. Giao diện quản lý sản phẩm hiện thị danh sách các sản
phẩm
5. Người quản trị ấn nút cập nhập trên sản phẩm
Sự kiện chính
6. Giao diện cập nhập sản phẩm được hiện thị
7. Người quản trị cập nhập các thông tin mới của sản phẩm
8. Người quản trị ấn nút cập nhập sản phẩm
9. Giao diện cập nhập sản phẩm kiểm tra thông tin nhập và
gửi lên Firebase
10. Firebase cập nhập dữ liệu sẩn phẩm vào cơ sở dữ liệu và
trả về kết quả
11. Giao diện thêm sản phẩm hiện thị thông báo

Bảng 3-34 Kịch bản use case Cập nhập thông tin sản phẩm

c. Kịch bản use case Xoá sản phẩm

Kịch bản Người quản trị xoá sản phẩm

Tác nhân Người quản trị

Tiền điều kiện Người quản trị truy cập vào chức năng quản lý sản phẩm

Hậu điều kiện Người quản trị xoá được sản phẩm

1) Người quản trị sử truy cập chức năng quả lý sản phẩm
Sự kiện chính
2) Giao diện quản lý sản phẩm yêu cầu lấy dữ liệu từ

Phạm Văn Phong 60 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Firebase
3) Firebase tìm kiếm dữ liệu sản phẩm và trả về kết quả
cho giao diện
4) Giao diện quản lý sản phẩm hiện thị danh sách các sản
phẩm
5) Người quản trị ấn nút xoá trên sản phẩm muốn xoá
6) Giao diện gửi dữ liệu xoá sản phẩm lên Firebase
7) Firebase cập nhập dữ liệu sẩn phẩm vào cơ sở dữ liệu và
trả về kết quả
8) Giao diện thêm sản phẩm hiện thị thông báo

Bảng 3-35 Kịch bản use case Xoá sản phẩm


3.2.17 Phân rã use case Xem thống kê

Hình 3-38 Phân rã use case Xem thống kê

d. Kịch bản phân rã use case Xem thống kê doanh thu

Kịch bản Người quản trị xem thống kê doanh thu

Tác nhân Người quản trị

Tiền điều kiện Người quản trị truy cập vào chức năng xem thống kê

Phạm Văn Phong 61 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hậu điều kiện Người quản trị xem được thống kê doanh thu

1) Người quản trị chọn chức năng xem thống kê


2) Giao diện thống kê gửi yêu cầu lấy dữ liệu từ doanh thu
Firebase
Sự kiện chính 3) Firebase tìm kiếm dữ liệu thống kê doanh thu và trả về
kết quả
4) Giao diện thống kê xử lý hiện thị kết quả doanh thu

Ngoại lệ:

1) Chưa có dữ liệu về doanh thu các biểu đồ sẽ không hoạt động.

Bảng 3-36 Kịch bản use case Xem thống kê doanh thu

e. Kịch bản phân rã use case Xem thống kê tổng quan đơn hàng

Kịch bản Người quản trị xem thống kê tổng quan đơn hàng

Tác nhân Người quản trị

Tiền điều kiện Người quản trị truy cập vào chức năng xem thống kê

Hậu điều kiện Người quản trị xem được thống kê tổng quan đơn hàng

1) Người quản trị chọn chức năng xem thống kê


2) Giao diện thống kê gửi yêu cầu lấy dữ liệu về đơn hàng
3) Firebase tìm kiếm dữ liệu thống kê đơn hàng và trả về
Sự kiện chính kết quả
4) Giao diện thống kê xử lý kết quả hiện thị thống kê tổng
quan đơn hàng

Ngoại lệ:

1) Chưa có dữ liệu đơn hàng biểu đồ sẽ không hoạt động.

Bảng 3-37 Kịch bản use case Xem thống kê doanh thu
Phạm Văn Phong 62 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.3 Biểu đồ lớp


3.3.1 Xác định các lớp, thuộc tính, phương thức

Lớp Thuộc tính Phương thức

- Mã đơn hàng - Tạo đơn hàng


- Tên khách hàng - Cập nhập trạng thái đơn hàng
- Số điện thoại khách hàng - Huỷ đơn hàng
- Ngày mua - Lấy đơn hàng
- Ngày cập nhập
Đơn hàng
- Trạng thái đơn hàng
- Trạng thái đánh giá
- Phương thức đánh giá
- Tiền hàng
- Phí ship
- Mã sản phẩm - Thêm sản phẩm
- Tên - Xoá sản phẩm
- Mã loại - Cập nhập sản phẩm
- Giá - Lấy sản phẩm
- Số lượng
Sản phẩm - Mã màu sắc
- Mã kích thước màn hình
- Mã bộ nhớ
- Mô tả
- Ngày cập nhập
- Mã đánh giá
- Mã ảnh sản phẩm - Thêm ảnh
Ảnh sản phẩm - Tên ảnh - Cập nhập ảnh
- Xoá ảnh
- Mã màu sắc - Lấy màu sắc
Màu sắc
- Tên màu sắc
Dung lượng bộ - Mã dung lượng bộ nhớ - Lấy dung lượng bộ nhớ
nhớ - Dung lượng
- Mã đánh giá - Thêm đánh giá
- Đánh giá
- Ảnh
Đánh giá - Tên người đánh giá
- Ảnh người đánh giá
- Số sao
- Mã đơn sản phẩm
- Mã loại - Lấy loại sản phẩm
Loại sản phẩm
- Tên lại

Phạm Văn Phong 63 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Lớp Thuộc tính Phương thức

- Mã vị trí - Lấy vị trí


- Kinh độ
Vị trí cửa hàng
- Vĩ độ
- Mô tả
Kích thước màn - Mã kích thước màn hình - Lấy kích thước màn hình
hình - Kích thước
- Mã tài khoản - Đăng nhập
Tài khoản - Tên tài khoản - Đăng ký
- Mật khẩu - Quên mật khẩu
- Đăng xuất
- Mã thông tin tài khoản - Lấy thông tin
- Họ tên - Cập nhập thông tin
Thông tin tài - Email
khoản - Số điện thoại
- Mã phân quyền
- Mã sổ địa chỉ
- Mã phân quyền - Lấy phân quyền
Phân quyền
- Loại phân quyền
Phương thức - Mã phương thức - Lấy phương thức
thanh toán - Phương thức
- Mã sản phẩm - Lấy sản phẩm giỏ hàng
Sản phẩm đặt
- Mã đơn hàng - Xoá sản phẩm giỏ hàng
hàng
- Số lượng sản phẩm - Cập nhập số lượng
- Mã phòng chat - Thêm phòng chat
Phòng chat - Tên phòng chat - Lấy phòng chat
- Ảnh đại diện
- Mã tin nhắn - Lấy tin nhắn
- Tin nhắn - Gửi tin nhắn
Tin nhắn - Trạng thái
- Mã người nhận
- Tin nhắn ảnh
- Mã sổ địa chỉ - Thêm dịa chỉ
Sổ địa chỉ - Xoá địa chỉ
- Cập nhập địa chỉ
- Mã địa chỉ - Lấy địa chỉ
- Họ tên
Địa chỉ - Số điện thoại
- Địa chỉ chi tiết
- Mã sổ địa chỉ

Phạm Văn Phong 64 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Lớp Thuộc tính Phương thức

- Mã doanh thu - Lấy doanh thu


- Năm - Cập nhập doanh thu
Doanh thu - Tháng
- Tổng doanh thu
- Ngày cập nhập
Bảng 3-38 Lớp, thuộc tính, phương thức
3.3.2 Biểu đồ lớp

Hình 3-39 Biểu đồ lớp

Phạm Văn Phong 65 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.4 Biểu đồ thực thể

Phạm Văn Phong 66 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-40 Biểu đồ thực thể


3.5 Biểu đồ tuần tự
3.5.1 Biểu đồ tuần tự Đăng nhập

Hình 3-41 Biểu đồ tuần tự Đăng nhập

Phạm Văn Phong 67 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.2 Biểu đồ tuần tự Đăng ký

Hình 3-42 Biểu đồ tuần tự Đăng ký

Phạm Văn Phong 68 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.3 Biểu đồ tuần tự Quên mật khẩu

Hình 3-43 Biểu đồ tuần tự Quên mật khẩu

Phạm Văn Phong 69 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.4 Biểu đồ tuần tự Góp ý

Hình 3-44 Biểu đồ tuần tự Góp ý


3.5.5 Biểu đồ tuần tự Thêm sản phẩm vào giỏ hàng

Hình 3-45 Biểu đồ tuần tự Thêm sản phẩm vào giỏ hàng

Phạm Văn Phong 70 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.6 Biểu đồ tuần tự Nhắn tin

Hình 3-46 Biểu đồ tuần tự Nhắn tin

Phạm Văn Phong 71 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.7 Biểu đồ tuần tự Xoá sản phẩm trong giỏ hàng

Hình 3-47 Biểu đồ tuần tự Xoá sản phẩm trong giỏ hàng
3.5.8 Biểu đồ tuần tự Thay đổi số lượng sản phẩm trong giỏ hàng

Hình 3-48 Biểu đồ tuần tự Thay đổi số lượng sản phẩm trong giỏ hàng

Phạm Văn Phong 72 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.9 Biểu đồ tuần tự Đặt hàng

Hình 3-49 Biểu đồ tuần tự Đặt hàng

Phạm Văn Phong 73 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.10 Biểu đồ tuần tự Xem sản phẩm

Hình 3-50 Biểu đồ tuần tự Xem sản phẩm


3.5.11 Biểu đồ tuần tự Xem vị trí nhà hàng

Hình 3-51 Biểu đồ tuần tự Xem vị trí nhà hàng

Phạm Văn Phong 74 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.12 Biểu đồ tuần tự Thanh toán bằng thẻ qua hệ thống VNPAY

Hình 3-52 Biểu đồ tuần tự Thanh toán bằng thẻ qua hệ thống VNPAY
Phạm Văn Phong 75 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.13 Biểu đồ tuần tự Chọn địa chỉ giao hàng

Hình 3-53 Biểu đồ tuần tự Chọn địa chỉ giao hàng


Phạm Văn Phong 76 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.14 Biểu đồ tuần tự Tìm kiếm sản phẩm bằng tên

Hình 3-54 Biểu đồ tuần tự Tìm kiếm sản phẩm bằng tên
Phạm Văn Phong 77 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.15 Biểu đồ tuần tự Tìm kiếm bằng giọng nói

Phạm Văn Phong 78 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-55 Biểu đồ tuần tự Tìm kiếm bằng giọng nói

Phạm Văn Phong 79 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.16 Biêu đồ tuần tự Lọc sản phẩm tìm kiếm

Hình 3-56 Biểu đồ tuần tự Lọc sản phẩm tìm kiếm

Phạm Văn Phong 80 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.17 Biểu đồ tuần tự Cập nhập ảnh đại điện

Hình 3-57 Biểu đồ tuần tự Thay đổi ảnh đại diện

Phạm Văn Phong 81 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.18 Biểu đồ tuần tự Thay đổi tên

Phạm Văn Phong 82 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-58 Biểu đồ tuần tự Thay đổi tên

Phạm Văn Phong 83 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.19 Biểu đồ tuần tự Cập nhập số điện thoại

Hình 3-59 Biểu đồ tuần tự Cập nhập số điện thoại

Phạm Văn Phong 84 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.20 Biểu đồ tuần tự Thay đổi mật khẩu

Hình 3-60 Biểu đồ tuần tự Thay đổi mật khẩu


Phạm Văn Phong 85 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.21 Biểu đồ tuần tự Thêm địa chỉ

Hình 3-61 Biểu đồ tuần tự Thêm địa chỉ


Phạm Văn Phong 86 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.22 Biểu đồ tuần tự Cập nhập địa chỉ

Phạm Văn Phong 87 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-62 Biểu đồ tuần tự Cập nhập địa chỉ

Phạm Văn Phong 88 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.23 Biểu đồ tuần tự Xoá địa chỉ

Hình 3-63 Biểu đồ tuần tự Xoá địa chỉ

Phạm Văn Phong 89 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.24 Biểu đồ tuần tự Xem đơn hàng đã đặt

Phạm Văn Phong 90 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-64 Biểu đồ tuần tự Xem đơn hàng đã đặt

Phạm Văn Phong 91 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.25 Biểu đồ tuần tự Xem chi tiết đơn hàng

Hình 3-65 Biêu đồ tuần tự Xem chi tiết đơn hàng

Phạm Văn Phong 92 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.26 Biểu đồ tuần tự Huỷ đơn hàng

Phạm Văn Phong 93 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-66 Biểu đồ tuần tự Huỷ đơn hàng đã đặt

Phạm Văn Phong 94 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.27 Biểu đồ tuần tự Đánh giá sản phẩm

Hình 3-67 Biểu đồ tuần tự Đánh giá sản phẩm


Phạm Văn Phong 95 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.28 Biểu đồ tuần tự Thêm sản phẩm

Phạm Văn Phong 96 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-68 Biểu đồ tuần tự Thêm sản phẩm

Phạm Văn Phong 97 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.29 Biểu đồ tuần tự Cập nhập sản phẩm

Phạm Văn Phong 98 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-69 Biểu đồ tuần tự Cập nhập sản phẩm

Phạm Văn Phong 99 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.30 Biểu đồ tuần tự Xoá sản phẩm

Phạm Văn Phong 100 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-70 Biểu đồ tuần tự Xoá sản phẩm

Phạm Văn Phong 101 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.31 Biểu đồ tuần tự Cập nhập trạng thái đơn hàng

Phạm Văn Phong 102 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-71 Biểu đồ Cập nhập trạng thái đơn hàng


3.5.32 Biểu đồ tuần tự Xem thống kê doanh thu

Hình 3-72 Biểu đồ tuần tự Xem thống kê doanh thu


3.5.33 Biểu đồ tuần tự Đăng xuất

Hình 3-73 Biểu đồ tuần tự Đăng xuất

Phạm Văn Phong 103 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.5.34 Biểu đồ tuần tự Xem thống kê tổng quan đơn hàng

Hình 3-74 Biểu đồ tuần tự Xem thống kê tổng quan đơn hàng
Phạm Văn Phong 104 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6 Biểu đồ hoạt động


3.6.1 Biểu đồ hoạt động Đăng nhập

Hình 3-75 Biểu đồ hoạt động Đăng nhập

Phạm Văn Phong 105 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.2 Biểu đồ hoạt động Đăng ký

Hình 3-76 Biểu đồ hoạt động Đăng ký

Phạm Văn Phong 106 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.3 Biểu dồ hoạt động Quên mật khẩu

Hình 3-77 Biểu đồ hoạt động Quên mật khẩu

Phạm Văn Phong 107 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.4 Biểu đồ hoạt động Góp ý

Hình 3-78 Biểu đồ hoạt động Góp ý

Phạm Văn Phong 108 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.5 Biểu đồ hoạt động Nhắn tin

Hình 3-79 Biểu đồ hoạt động chức năng Nhắn tin

Phạm Văn Phong 109 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.6 Biểu đô hoạt động Thêm sản phẩm vào giỏ hàng

Hình 3-80 Biểu đồ hoạt động Thêm sản phẩm vào giỏ hàng

Phạm Văn Phong 110 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.7 Biểu đồ hoạt động Xoá sản phẩm trong giỏ hàng

Hình 3-81 Biểu đồ hoạt động Xoá sản phẩm trong giỏ hàng

Phạm Văn Phong 111 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.8 Biểu đồ hoạt động Thay đổi số lượng sản phẩm trong giỏ hàng

Hình 3-82 Biểu đồ hoạt động Thay đổi số lượng sản phẩm trong giỏ hàng

Phạm Văn Phong 112 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.9 Biểu đồ hoạt động Đặt hàng

Hình 3-83 Biểu đồ hoạt động Đặt hàng

Phạm Văn Phong 113 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.10 Biểu đồ hoạt động Xem sản phẩm

Hình 3-84 Biểu đồ hoạt động Xem sản phẩm

Phạm Văn Phong 114 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.11 Biểu đồ hoạt động Xem vị trí cửa hàng

Hình 3-85 Biểu đồ hoạt động Xem vị trí cửa hàng

Phạm Văn Phong 115 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.12 Biểu đồ hoạt động Thanh toán bẳng thẻ qua VNPAY

Hình 3-86 Biểu đồ hoạt động thanh toán bằng thẻ qua VNPAY

Phạm Văn Phong 116 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.13 Biểu đồ hoạt động Chọn địa chỉ giao hàng

Hình 3-87 Biểu đồ hoạt động Chọn địa chỉ giao hàng

Phạm Văn Phong 117 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.14 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng tên

Hình 3-88 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng tên

Phạm Văn Phong 118 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.15 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng giọng nói

Hình 3-89 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng giọng nói

Phạm Văn Phong 119 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.16 Biểu đồ hoạt động Lọc sản phẩm tìm kiếm

Hình 3-90 Biểu đồ hoạt động Lọc sản phẩm tìm kiếm

Phạm Văn Phong 120 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.17 Biểu đồ hoạt động Cập nhập ảnh đại diện

Hình 3-91 Biểu đồ hoạt động Cập nhập ảnh đại diện

Phạm Văn Phong 121 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.18 Biểu đồ hoạt động Thay đổi tên

Hình 3-92 Biểu đồ hoạt động Thay đổi tên

Phạm Văn Phong 122 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.19 Biểu đồ hoạt động Cập nhập số điện thoại

Hình 3-93 Biểu đồ hoạt động Cập nhập số điện thoại

Phạm Văn Phong 123 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.20 Biểu đồ hoạt động Thay đổi mật khẩu

Hình 3-94 Biểu đồ hoạt động Thay đổi mật khẩu

Phạm Văn Phong 124 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.21 Biểu đồ hoạt động Đăng xuất

Hình 3-95 Biểu đồ hoạt động Đăng xuất


3.6.22 Biểu đồ hoạt động Thêm địa chỉ

Hình 3-96 Biểu đồ hoạt động Thêm địa chỉ

Phạm Văn Phong 125 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.23 Biểu đồ hoạt động Cập nhập địa chỉ

Hình 3-97 Biểu đồ hoạt động Cập nhập địa chỉ

Phạm Văn Phong 126 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.24 Biểu đồ hoạt động Xoá địa chỉ

Hình 3-98 Biểu đồ hoạt động Xoá địa chỉ


3.6.25 Biểu đồ hoạt động Xem danh sách đơn hàng

Hình 3-99 Biểu đồ hoạt động Xem đơn hàng đã đặt

Phạm Văn Phong 127 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.26 Biểu đồ hoạt động Xem chi tiết đơn hàng

Hình 3-100 Biêu đồ hoạt động Xem chi tiết đơn hàng
3.6.27 Biểu đồ hoạt động Đánh giá sản phẩm

Hình 3-101 Biểu đồ hoạt động Đánh giá sản phẩm

Phạm Văn Phong 128 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.28 Biểu đồ hoạt động Huỷ đơn hàng

Hình 3-102 Biểu đồ hoạt động Huỷ đơn hàng

Phạm Văn Phong 129 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.29 Biểu đồ hoạt động Thêm sản phẩm

Hình 3-103 Biểu đồ hoạt động Thêm sản phẩm

Phạm Văn Phong 130 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.30 Biểu đồ hoạt động Cập nhập sản phẩm

Hình 3-104 Biểu đồ hoạt động Cập nhập sản phẩm

Phạm Văn Phong 131 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

3.6.31 Biểu đồ hoạt động Cập nhập trạng thái đơn hàng

Hình 3-105 Biểu đồ hoạt động Cập nhập trạng thái đơn hàng
3.6.32 Biểu đồ hoạt động Xem thống kê
Gộp hoạt động Xem thống kê doanh thu và Xem thống kê tổng quan đơn hàng.

Phạm Văn Phong 132 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 3-106 Biểu đồ hoạt động Xem thống kê


3.7 Kết chương
Trong chương này đồ án đã xác định được các tác nhân, use case, kịch bản và vẽ các
use case, biểu đồ lớp, biểu đồ thực thể, biểu đồ tuần tự, biểu đồ hoạt động. Trong chương
tiếp theo tác giả sẽ trình về kết quả cài đặt và thử nghiệm sản phẩm qua các giao diện chính
của ứng dụng.

Phạm Văn Phong 133 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

CHƯƠNG 4
KẾT QUẢ CÀI ĐẶT, THỬ NGHIỆM

Trong chương này đồ án trình bày kết quả cài đặt, thử nghiệm, đưa ra các giao diện
chính của phần mềm, kết quả thử nghiệm.
4.1 Thông tin về cấu hình cài đặt
Các yêu cầu về cấu hình:

 MacOS: Phiên bản 12.0 trở lên


 xCode: Phiên bản 13.0 trở lên
 Cocoapod: Phiên bản 1.5 trở lên
 Điện thoại và máy ảo: Phiên bản iOS 15.0 trở lên

Cấu hình đang được thử nghiệm:

 MacOS: Phiên bản 12.4


 xCode: Phiên bản 13.5
 Cocoapod: Phiên bản 1.11.3
 Điện thoại và máy ảo: iOS 15.5

Ứng dụng được demo trên máy ảo iPhone 13

Phạm Văn Phong 134 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 4-107 Máy ảo iPhone 13

Phạm Văn Phong 135 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

4.2 Kết quả thử nghiệm


4.2.1 Giao diện chức năng Đăng nhập, Đăng ký, Quên mật khẩu.
A. Giao diện chức năng Đăng nhập

Hình 4-108 Giao diện Đăng nhập


Để bắt đầu các phiên làm việc yêu cầu đăng nhập hoặc khách hàng, người quản trị
chủ động đăng nhập. Giao diện đăng nhập có nút ẩn màn hình khi không muốn đăng nhập,
logo và lời chào được hiện thị ở phía trên cùng, tiếp theo là các trường nhập tài khoản và
mật khẩu. Ở dưới các ô nhập là nút đăng nhập và các nút đăng nhập bằng Facebook,
Google. Phía dưới là nút quên mật khẩu để chuyển sang màn hình quên mật khẩu, nút đăng
ký để chuyển sang màn hình đăng kí.

Phạm Văn Phong 136 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

B. Giao diện chức năng Đăng ký

Hình 4-109 Giao diện Đăng ký


Nếu khách hàng chưa có tài khoản hoặc muốn đăng ký tài khoản mới sau khi truy
cập chức năng đăng ký, giao diện đăng ký xuất hiện với các thành phần như giao diện phần
đăng nhập có logo và lời chào được hiện thị ở phía trên cùng, tiếp theo là các trường nhập
tên tài khoản, tài khoản theo gmail và mật khẩu, nhập mật khẩu. Phía dưới là nút đăng
nhập để quay trở lại màn hình đăng nhập khi đã đăng ký tài khoản thành công hoặc không
muốn đăng ký nữa.

Phạm Văn Phong 137 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

C. Giao diện chức đăng Quên mật khẩu

Hình 4-110 Giao diện quên mật khẩu


Khi khách, người quản trị hàng quên mật khẩu trong lúc đăng nhập có thể ấn nút
Quên mật khẩu để chuyển sang màn hình Quên mật khẩu. Giao diện Quên mật khẩu xuất
hiện với logo và banner ở phía trên, có 1 trường nhập gmail đã đăng ký tài khoản và nút
lấy lại mật khẩu ở phía dưới cùng.

Phạm Văn Phong 138 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

4.2.2 Giao diện các chức năng cho khách hàng


D. Giao diện chức năng Xem sản phẩm

Hình 4-111 Giao diện màn hình trang chủ


Khi mở ứng dụng màn hình trang chủ sẽ xuất hiện đầu tiên. Hiện thị ra các thành
phần như: Nút tìm kiếm phí trên cùng bên cạnh là nút giỏ hàng. Các banner quảng quảng
cáo ở phía dưới được trình chiếu dưới dạng slideshow. Các danh mục sản phẩm được bố trí
giữa banner và sản phẩm. Các sản phẩm được trình bày phía dưới theo hàng ngang hoặc
theo hàng dọc chia thành hai cột. Khi chọn vào 1 sản phẩm bất kì ta sẽ xem được thông tin
chi tiết sản phẩm như hình 4-5.

Phạm Văn Phong 139 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

E. Giao diện chức năng Xem chi tiết sản phẩm

Hình 4-112 Giao diện Xem thông tin chi tiết sản phẩm
Sau khi chọn vào một sản phẩm bất kì giao diện thông tin chi tiết sản phẩm sẽ được
hiện thị. Giao diện trình bày các thông tin về sản phẩm một cách chi tiết hơn gồm: Các
hình ảnh sản phẩm được trình chiếu dưới dạng slideshow, các thông tin về giảm giá, cấc
hình. Và dưới cùng là các nút chuyển sang giao diện chat, mua ngay, thêm vào giỏ hàng.
Khi kéo xuống dưới ta có phần mô tả và các đánh giá của khách hàng khác đã từng mua
sản phẩm.
Phạm Văn Phong 140 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 4-113 Giao diện Xem chi tiết sản phẩm phần đánh giá
Khách hàng có thể trực quan xem các đánh giá về sản phẩm để đưa ra các lựa chọn
cho bản thân. Mỗi một đánh giá được hiện thị bởi các thành phần số sao được chấm điểm,
các bình luận và các hình ảnh của sản phẩm. Trong giao diện Xem chi tiết sản phẩm chỉ
hiện thị tối đa 3 đánh giá nên khách hàng muốn xem thêm nhiều có thể ấn nút Xem thêm
đánh giá.

Phạm Văn Phong 141 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

F. Giao diện chức năng Quản lý giỏ hàng

Hình 4-114 Giao diện chức năng Giỏ hàng


Sau khi thêm các đơn hàng vào giỏ, khách hàng truy cập chức năng Giỏ hàng để xem
và quản lý các sản phẩm. Trên mỗi đơn hàng có nút dấu cộng và trừ để thêm bớt số lượng
sản phẩm. Khi muốn xoá một sản phẩm trong giỏ hàng thi chỉ cần giữ và vuốt sản phẩm
cần xoá từ phải qua trái. Ở phía dưới màn hình là tổng số tiền sản phẩm trong giỏ và nút
Thanh toán để chuyển sang giao diện chức năng Đặt hàng

Phạm Văn Phong 142 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

G. Giao diện chức năng Đặt hàng

Hình 4-115 Giao diện chức năng Đặt hàng


Giao diện chức năng gồm 3 mục chính đó là: Địa chỉ giao hàng, đơn đặt, phương
thức thanh toán, tổng tiền. Với mục địa chỉ giao hàng ta có thể ấn vào để chọn các địa chỉ
giao hàng, thêm địa chỉ mới nếu chưa có. Ở dưới là mục hiện thị các sản phẩm từ giỏ hàng
mà khách hàng muốn đặt. Mục phương thức thanh toán có 2 lựa chọn thanh toán khi nhận
hàng hoặc trả bằng thẻ tín dụng/thẻ ghi nợ. Với những đơn hàng trên 20 triệu đồng chỉ
thanh toán được bằng hình thức trả băng thẻ tín dụng/ghi nợ nên phương thức thanh toán

Phạm Văn Phong 143 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

khi nhận hàng bị ẩn đi. Sau khi xem xét các thông tin tao có thể ấn nút đặt hàng phía dưới
cùng để hệ thống tiến hành đặt hàng.
H. Giao diện chức năng chọn địa chỉ

Hình 4-116 Giao diện chức năng chọn địa chỉ


Khi chọn vào chức năng địa chỉ giao hàng trên giao điện đặt hàng giao diện chức
năng Chọn địa chỉ sẽ được hiện thị. Giao diện hiện thị các địa chị đã thêm trước đó và có
Phạm Văn Phong 144 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

nút thêm địa chỉ. Có nút sửa trên từng địa chỉ để khách hàng dễ dàng thay đổi thông tin địa
chỉ.
I. Giao diện chức đăng thanh toán bằng thẻ qua VNPAY

Hình 4-117 Giao diện chọn ngân hàng

Phạm Văn Phong 145 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Bước đầu của thanh toán khách hàng phải chọn loại ngân đang sử dụng. Danh sách
ngân hàng bố trí thành 2 cột gồm có tên và biểu tượng giúp khách hàng đễ dàng chọn đúng
ngân hàng mình đang sử dụng

Hình 4-118 Giao diện thanh toán bằng VNPAY

Phạm Văn Phong 146 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Sau khi chọn xong ngân hàng mình sử dụng giao diện thanh toán sẽ được hiện thị.
Gồm có giá tiền phải thanh toán, loại hàng thanh toán, có mã QR và các ông nhập thông tin
thẻ hoặc tài khoản banking.
J. Giao diện chức năng Tìm kiếm

Hình 4-119 Giao diện chức năng Tìm kiếm bằng tên sản phẩm
Khách hàng chọn vào biểu tượng hình kính lúp ở thanh tab bar để truy cập chức năng
tìm kiếm. Nhập tên sản phẩm tìm kiếm giao diện hiện thị các sản phẩm tương ứng, nếu
Phạm Văn Phong 147 Lớp CNPM K62A
Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

không có sản phẩm giống tên tìm kiếm giao diện sẽ hiện thị thông báo không tìm thấy sản
phẩm. Có nút lọc để khách hàng thuận thiện cho việc lọc các sản phẩm theo loại, giá.
Khách hàng có thể chọn nút micro để sử dụng chức năng tìm kiếm bằng giọng nói.

Hình 4-120 Giao diện chức năng Tìm kiếm bằng giọng nói

Phạm Văn Phong 148 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Khi chức năng được kích hoạt khách hàng nói to rõ ràng tên sản phẩm để hệ thống
tìm kiếm sản phẩm.
K. Giao diện chức năng Xem vị trí cửa hàng

Hình 4-121 Giao diện tổng quát chức năng Xem vị trí cửa hàng
Giao diện chức Xem vị trí cửa hàng sẽ hiện thị tổng quát tất cả các dấu vị trí của
hàng trên bản đồ khi mới truy cập. Sau khi chọn một dấu mốc trên bản đồ giao diện sẽ
phóng gần vào vị trí cửa hàng được chọn và hiện thị nút chỉ đường nhứ hình 4-16

Phạm Văn Phong 149 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 4-122 Giao diện khi chọn dấu mốc cửa hàng
Sau khi chọn một dấu mốc của vị trí của cửa hàng, nút chỉ đường sẽ được xuất hiện
thị.Bấm nút chỉ đường hệ thống sẽ chuyển sang ứng dụng Google Masp hoặc website
Google Maps kèm theo dữ liệu vị trí cửa hàng để sử chụng chức năng dẫn đường.

Phạm Văn Phong 150 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

L. Giao diện chức năng Xem đơn hàng đã đặt

Hình 4-123 Giao diện chức năng Xem đơn hàng đã đặt
Giao diện chức năng Xem đơn hàng đã đặt được chia theo trạng thái của đơn hàng để
khách hàng dễ thàng theo dễ đơn hàng. Bấm vào một đơn hàng để xem chi tiết đơn hàng

Phạm Văn Phong 151 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

M. Giao diện chức năng Xem chi tiết đơn hàng

Hình 4-124 Giao diện chức năng Xem chi tiết đơn hàng
Giao diện hiện thị các thông tin chi tiết về đơn hàng gồm: Trạng thái, hình thức thanh
toán, các sản phẩm đã đặt, ngày nhận. ngày thanh toán, giá tiền một các chi tiết giúp người
dùng nắm bắt lại được các thông tin về đơn hàng.

Phạm Văn Phong 152 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

N. Giao diện xem Giới thiệu về ứng dụng

Hình 4-125 Giao diện chức năng Xem giới thiệu về ứng dụng
Giao diện tập trung hiện thị các thông tin về ứng dụng.

Phạm Văn Phong 153 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

O. Giao diện Quản lý sổ địa chỉ


Truy cập chức năng Sổ địa chỉ trong phần Quản lý tài khoản giao diện sẽ hiện thị
tương tự như chức năng Chọn địa chỉ gồm các danh sách địa chỉ đã thêm, và nút thêm địa
chỉ. Khi ấn nút Thêm địa chỉ ta được giao diện:

Hình 4-126 Giao diện chức năng Thêm địa chỉ


Giao diện Thêm địa chỉ gồm các phần chính trường nhập tên, số điện thoại, nhập địa
chỉ cụ thể và cái nút chọn thành phố, quận huyện, phường xã một cách thuận tiện.

Phạm Văn Phong 154 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Giao diện Cập nhập địa chỉ tương chỉ như giao diện Thêm địa chỉ nhưng được in sẵn
nhưng thông tin địa chỉ cũ

Hình 4-127 Giao diện chức năng Xoá địa chỉ


Để xoá một địa chỉ Khách hàng ấn giữ vào một ô địa chỉ bất kì và chọn nút Xoá địa
chỉ.

Phạm Văn Phong 155 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

4.2.3 Giao diện các chức năng cho người quản trị
A. Giao diện chức năng Xem thống kê

Hình 4-128 Giao diện chức năng Xem thống kê


Giao diện chức năng Xem thống kê hiện thị tổng quát về doanh thu, đơn hàng, sản
phẩm, khách hàng cửa cửa hàng. Doanh thu được hiện thị dưới dạng biêu đồ cột. Tổng
quan đơn hàng được thể hiện qua biểu đồ hình tròn.

Phạm Văn Phong 156 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

B. Giao diện chức năng Quản lý sản phẩm

Hình 4-129 Giao chức diện năng Quản lý sản phẩm


Hiện thị danh sách các sản phẩm có trong cửa hàng. Có nút thêm sản phẩm mới hình
dấu cộng góc phỉa phía dưới. Trên mỗi sản phẩm có các nút chức năng: Cập nhật, xoá.
Bấm vào một sản phẩm bất kì để xem chi tiết về sản phẩm. Khi bấm vào nút thêm sản
phẩm mới giao diện chức năng Thêm sản phẩm được hiện thị như hình 4-23:

Phạm Văn Phong 157 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 4-130 Giao diện chức năng Thêm sản phẩm


Giao diện thêm sản phẩm gồm các trường nhập thông tin, các tuỳ chọn về cấu hình
thiết bị. Có nút thêm ảnh các sản phẩm.

Phạm Văn Phong 158 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Khi người quản trị xoá một sản phẩm có thể khôi phục lại sản phẩm vừa xoá. Sau khi
ấn nút xoá sẽ có một popup hiện thị chức năng khôi phục sản phẩm như hình phía dưới:

Hình 4-131 Giao diện popup khôi phục sản phẩm

Phạm Văn Phong 159 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

C. Giao diện chức năng Quản lý đơn hàng

Hình 4-132 Giao diện Quản lý đơn hàng


Giao diện hiện thị danh sách các đơn hàng đã được khách hàng đặt. Có nút lọc các
đơn hàng. Trên mỗi đơn hàng có mã đơn hàng, trạng thái và các thông tin ngắn gọn về sản
phẩm, tổng tiền đơn, và các nút cập nhập trạng thái đơn hàng.

Phạm Văn Phong 160 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

4.2.4 Giao diện các chứng năng sử dụng chung


A. Giao diện chức năng Quản lý tài khoản

Hình 4-133 Giao diện chức năng Quản lý tài khoản cá nhân
Giao diện chức năng Quản lý tài khoản hiện thị các thông tin về tài khoản. Và các
nút Sổ địa chỉ để mở mục Quản lý sổ địa chỉ, Đổi mật khẩu để khách hàng, người quản trị
có thể đổi mật khẩu và cuối cùng là nút Đăng xuất tài khoản.

Phạm Văn Phong 161 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 4-134 Giao diện thay đổi/cập nhập thông tin tài khoản cá nhân
Khi bấm vào các nút đổi tên, đổi số điện thoại form thay đổi thông tin sẽ được hiện
thị lên dạng popup. Khách hàng nhập các thông tin mới và lưu lại một cách tiện lợi.

Phạm Văn Phong 162 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 4-135 Giao diện chức năng Đổi mật khẩu


Giao diện hiện thị trường nhập mật khẩu cũ đầu tiên để khách hàng, người quản trị
xác nhận lại tài khoản, sau khi xác nhận thành công trường nhập mật khẩu mới sẽ được
xuất hiện.

Phạm Văn Phong 163 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

B. Giao diện chức năng Nhắn tin

Hình 4-136 Giao diện danh sách người/phòng Nhắn tin


Hiện thị danh sách phòng nhắn tin được đặt theo tên của người nhận tin nhắn. Khi
chọn vào một phòng chat bất kì sẽ chuyển sang giao diện nhắn tin như hình phía dưới:

Phạm Văn Phong 164 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

Hình 4-137 Giao diện nhắn tin


Giao diện nhắn tin gồm: Tên và ảnh phòng chat ở phía trên cùng, phía dưới là danh
sách tin nhắn, dưới cùng là ô nhập tin nhắn, nút chọn ảnh, nút gửi tin nhắn.

Phạm Văn Phong 165 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

4.3 Kết chương


Trong chương cuối tác giả trình bày các thông tin cấu hình cài đặt và cái giao diện
chính của ứng dụng. Tiếp đến là các kết luận và hướng phát triển của đề tài.

Phạm Văn Phong 166 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Kết luận:
Đồ án đã được xây dựng dựa bằng việc áp dụng các môn học: Hệ quản trị dữ liệu, Cơ
dở dữ liệu, Ngôn ngữ mô hình hoá UML, Phân tích thiết kế hệ thống, Lập trình ứng dụng
di động, … sau quá trình học tập tại trường Đại học Mỏ - Địa Chất. Cùng với những kinh
nghiệm được nhà trường tổ chức đi thực tập tại các công ty, doanh nghiệp và những kiến
thức tự tìm tòi học hỏi. Từ đó làm nền tảng cho việc thực hiện đề tài “Xây dựng ứng dụng
mobile iOS bán hàng thương hiệu Apple bằng SwiftUI, Firebase”.
Qua các bước: Thu thập phân tích yêu cầu yêu, tiến hành phân tích đặc tả, phân tích
thiết kế hệ thống, lập trình ứng dụng tác giả đã thực hiện thành công được đề tài. Mặc dù
còn nhiều lỗi trong quá trình hoạt động. Nhưng tác giả đã hoàn thiện các nhiệm vụ được
giao của đồ án tốt nghiệp.
Nhìn chung thì em đã làm được một số kết quả như sau:

 Nêu được tầm quan trọng, ý nghĩa thiết thực của đề tài, mục tiêu cần thực
hiện rồi từ đó khảo sát, xây dựng ứng dụng đem lại giá cho cửa hàng và
khách hàng.
 Em đã có cơ hội vận dụng những kiến thức đã được học, thực hiện đầy đủ các
công đoạn phát triển phần mềm, và vận dụng được tối đa năng lực bản thân,
cải thiện khả năng tìm kiếm.
 Ứng sau bản đáp ứng được yêu cầu ban đầu đề ra – một ứng dễ dùng, hiệu
quả, tiết kiệm thời gian mua bán.
Chưa áp dụng được các công nghệ như tìm kiếm bằng hình ảnh, push notifications,
tích hợp các phương thức thanh toán bằng Momo, Viettel Pay, …
Do điều kiện thời gian, khuôn khổ một đồ án tốt nghiệp không thể bao quát được mọi
vấn đề của một ứng dụng thương mại điện tử nên đồ án chỉ giới hạn và xoay quanh một số
tính năng chính mà một hệ thống bán hàng có.
Hướng phát triển:
Ứng dụng bán hàng thương hiệu Apple của em hứa hẹn sẽ giải quyết được nhiều bài
toán cho cá nhân cũng như cho cửa hàng nhưng ứng dụng hiện tại thì cần phải phát triển
thêm nữa. Ứng dụng cần tối ưu hoá, cải thiện hiệu năng của giúp cả thiện trải nghiệm của
người dùng. Áp dụng các công nghệ mới cho ứng dụng. Phát triển thêm các chức năng cho
khách hàng và người quản trị. Đưa ứng dụng được sử dụng vào thực tế trong các cửa hàng.

Phạm Văn Phong 167 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

TÀI LIỆU THAM KHẢO

[1] TopCV, "Lập trình IOS là gì? Lương của lập trình viên IOS có cao không?,"
Công ty cổ phần TopCV Việt Nam, 2022. [Online]. Available:
https://www.topcv.vn/lap-trinh-ios. [Accessed 10 6 2022].

[2] K. Lê, "THƯƠNG MẠI ĐIỆN TỬ LÀ GÌ? TỔNG QUAN VỀ TMĐT Ở VIỆT
NAM," Magenest JSC, 9 5 2022. [Online]. Available:
https://magenest.com/vi/thuong-mai-dien-tu-la-gi/. [Accessed 29 5 2022].

[3] VNCoder, "Bài 1: Tổng quan ngôn ngữ Swift - Lập trình Swift cơ bản,"
VNCODER, 2020. [Online]. Available: https://vncoder.vn/bai-hoc/tong-quan-
ngon-ngu-swift-115. [Accessed 3 6 2022].

[4] D. Xuân, "Swift UI là gì? và toàn bộ những tính năng nổi bật về SwiftUI,"
Cafedev, 3 9 2019. [Online]. Available: https://cafedev.vn/gioi-thieu-toan-bo-
nhung-tinh-nang-noi-bat-ve-swiftui/. [Accessed 3 6 2022].

[5] Meta.vn, "Vnpay là gì? Cách thanh toán qua Vnpay," CÔNG TY CỔ PHẦN
MẠNG TRỰC TUYẾN META, [Online]. Available:
https://meta.vn/hotro/vnpay-la-gi-cach-thanh-toan-qua-vnpay-7988. [Accessed 3
6 2022].

[6] P. X. Nam, "Tìm hiểu sơ lược về Firebase," Viblo, 21 3 2021. [Online].


Available: https://viblo.asia/p/tim-hieu-so-luoc-ve-firebase-Eb85oeOmZ2G.
[Accessed 10 6 2022].

[7] VnReview, "Phần mềm nhận diện giọng nói hoạt động như thế nào?," Công ty
Cổ phần Bkav, 5 9 2017. [Online]. Available:
https://vnreview.vn/thread-old/phan-mem-nhan-dien-giong-noi-hoat-dong-nhu-
the-nao.2265035. [Accessed 10 6 2022].

Phạm Văn Phong 168 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

PHỤ LỤC

Các mã nguồn tham khảo và sử dụng trong sản phẩm của đồ án tốt nghiệp:

 Mã nguồn lấy địa chỉ IP của máy chạy hệ điều hành iOS cho việc thanh toán bằng
thẻ qua VNPAY:
func getIPAddress() -> String {

var address: String?

var ifaddr: UnsafeMutablePointer<ifaddrs>? = nil

if getifaddrs(&ifaddr) == 0 {

var ptr = ifaddr

while ptr != nil {

defer { ptr = ptr?.pointee.ifa_next }

guard let interface = ptr?.pointee else { return "" }

let addrFamily = interface.ifa_addr.pointee.sa_family

if addrFamily == UInt8(AF_INET) || addrFamily ==


UInt8(AF_INET6) {

let name: String = String(cString: (interface.ifa_name))

if name == "en0" || name == "en2" || name == "en3" ||


name == "en4" || name == "pdp_ip0" || name == "pdp_ip1" || name ==
"pdp_ip2" || name == "pdp_ip3" {

var hostname = [CChar](repeating: 0, count:


Int(NI_MAXHOST))

getnameinfo(interface.ifa_addr,
socklen_t((interface.ifa_addr.pointee.sa_len)), &hostname,
socklen_t(hostname.count), nil, socklen_t(0), NI_NUMERICHOST)

address = String(cString: hostname)

freeifaddrs(ifaddr)

return address ?? ""

Phạm Văn Phong 169 Lớp CNPM K62A


Đồ án tốt nghiệp chuyên ngành Công Nghệ Phần Mềm

 Mã nguồn mã hoá HNMAC một chuỗi :


func hmac(algorithm: CryptoAlgorithm, key: String) -> String {

let str = self.cString(using: String.Encoding.utf8)

let strLen = Int(self.lengthOfBytes(using: String.Encoding.utf8))

let digestLen = algorithm.digestLength

letresult= UnsafeMutablePointer<CUnsignedChar>.allocate(capacity:
digestLen)

let keyStr = key.cString(using: String.Encoding.utf8)

let keyLen = Int(key.lengthOfBytes(using: String.Encoding.utf8))

CCHmac(algorithm.HMACAlgorithm, keyStr!, keyLen, str!, strLen,


result)

let digest = stringFromResult(result: result, length: digestLen)

result.deallocate(capacity: digestLen)

return digest

Phạm Văn Phong 170 Lớp CNPM K62A

You might also like