Professional Documents
Culture Documents
DATN 1721050390 Pham Van Phong Final
DATN 1721050390 Pham Van Phong Final
Á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.
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.
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
Đồ á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.
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.
MỤC LỤC
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
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
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
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
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 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
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
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.
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ó.
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.
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:
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).
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
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 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.
• Các thông tin trên danh sách sản phẩm không đầy đủ.
• 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.
• 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.
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.
Ứ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.
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
Hình 2-1 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.
• 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:
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ọ.
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.
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:
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.
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 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 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.
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.
• 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.
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-10 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 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.
• 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í.
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.
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
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
3.1.2 Các use case và ý nghĩa
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
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
đã có hoặc qua Google, Facebook
Sự kiện chính 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.
Ngoại lệ:
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
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
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
Sự kiện chính 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
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
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-8 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
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
Sự kiện chính giỏ: bấm nút + để thêm số lượng, bấm dấu – giảm số
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
Sự kiện chính 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
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
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
3.2.9 Phân rã use case Xem đơn hàng đã đặt
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
Tiền điều kiện Khách hàng truy cập chức năng Xem được đơn hàng đã đặ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
Bảng 3-13 Kịch bản use case Xem đơn hàng đã đặt
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
hình.
Sự kiện chí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-15 Kịch bản use case Đánh giá sản phẩm
3.2.10 Phân rã use case Quản lý tài khoản cá nhâ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 lý
Tiền điều kiện
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ý
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
Sự kiện chính 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
diện mới.
Ngoại lệ:
Bảng 3-16 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ị 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 lý
Tiền điều kiện
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
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
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ỉ
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ệ:
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ổ
đị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ỉ
Bảng 3-23 Kịch bản use case Cập nhập địa chỉ
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ị
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
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 giọng
Kịch bản
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
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
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
Sự kiện chính 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-17 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
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
Sự kiện chính 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ự
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-19 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
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ị ở
Sự kiện chính 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
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
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
Sự kiện chính 5) Khách hàng vuốt, cuộn màn hình xem các sản phẩ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
Bảng 3-30 Kịch bản use case Xem vị trí cửa 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-22 Phân rã use case Cập nhập trạng thái đơn hàng
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
Sự kiện chính 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
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
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
a. Phân rã use case và kịch bản use case Thêm sản phẩm
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. Phân rã use case và kịch bản use case Cập nhập sản phẩm
Kịch bản Người quản trị cập nhập thông tin 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ị 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
Sự kiện chính 5. Người quản trị ấn nút cập nhập trên sản phẩm
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
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ê 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ệ:
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ệ:
Bảng 3-37 Kịch bản use case Xem thống kê doanh thu
Hình 3-33 Biểu đồ tuần tự Thêm sản phẩm vào giỏ hàng
Hình 3-35 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-36 Biểu đồ tuần tự Thay đổi số lượng sản phẩm trong giỏ hàng
3.5.12 Biểu đồ tuần tự Thanh toán bằng thẻ qua hệ thống VNPAY
Hình 3-40 Biểu đồ tuần tự Thanh toán bằng thẻ qua hệ thống VNPAY
Hình 3-42 Biểu đồ tuần tự Tìm kiếm sản phẩm bằng tên
Hình 3-62 Biểu đồ tuần tự Xem thống kê tổng quan đơn hàng
3.6.6 Biểu đô hoạt động Thêm sản phẩm vào giỏ hàng
Hình 3-68 Biểu đồ hoạt động Thêm sản phẩm vào giỏ hàng
3.6.7 Biểu đồ hoạt động Xoá sản phẩm trong giỏ hàng
Hình 3-69 Biểu đồ hoạt động Xoá sản phẩm trong giỏ hàng
3.6.8 Biểu đồ hoạt động Thay đổi số lượng sản phẩm trong giỏ hàng
Hình 3-70 Biểu đồ hoạt động Thay đổi số lượng sản phẩm trong giỏ hàng
3.6.12 Biểu đồ hoạt động Thanh toán bẳng thẻ qua VNPAY
Hình 3-74 Biểu đồ hoạt động thanh toán bằng thẻ qua VNPAY
Hình 3-75 Biểu đồ hoạt động Chọn địa chỉ giao hàng
3.6.14 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng tên
Hình 3-76 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng tên
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-77 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng giọng nói
Hình 3-78 Biểu đồ hoạt động Lọc sản phẩm tìm kiếm
3.6.17 Biểu đồ hoạt động Cập nhập ảnh đại diện
Hình 3-79 Biểu đồ hoạt động Cập nhập ảnh đại diện
Hình 3-88 Biêu đồ hoạt động Xem chi tiết đơn hàng
Hình 3-93 Biểu đồ hoạt động Cập nhập trạng thái đơn 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
Gộp hoạt động Xem thống kê doanh thu và Xem thống kê tổng quan đơn hàng.
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:
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-6 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.
Hình 4-7 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á.
I. Giao diện chức đăng thanh toán bằng thẻ qua VNPAY
Hình 4-13 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 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-14 Giao diện chức năng Tìm kiếm bằng giọng nói
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.
Hình 4-15 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
Hình 4-16 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.
Hình 4-17 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
Hình 4-18 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.
Hình 4-19 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.
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:
4.2.3 Giao diện các chức năng cho người quản trị
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-27 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.
Hình 4-28 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.
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.
[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Ụ 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 {
if getifaddrs(&ifaddr) == 0 {
getnameinfo(interface.ifa_addr,
socklen_t((interface.ifa_addr.pointee.sa_len)), &hostname,
socklen_t(hostname.count), nil, socklen_t(0), NI_NUMERICHOST)
freeifaddrs(ifaddr)
letresult= UnsafeMutablePointer<CUnsignedChar>.allocate(capacity:
digestLen)
result.deallocate(capacity: digestLen)
return digest