Professional Documents
Culture Documents
Email: Phamvanphong3699@gmail.com
Đồ á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
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
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
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
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ó.
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:
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
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
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.
Nhược điểm:
Ứ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ỹ
Nhược điể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ỉ
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.
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.
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.
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.
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:
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.
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.
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.
2.3.3 Các thức hoạt động của hệ thống VNPAY
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.
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
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í.
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
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
Kịch bản Khách hàng hoặc người quản trị đăng nhập
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.
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ý
Tiền điều kiện Khách hàng truy cập vào chức năng đăng ký
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.
Kịch bản Khách hàng, người quản trị quên mật khẩu
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
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
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
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
Tiền điều kiện Khách hàng truy cập vào chức năng gửi góp ý
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 ý.
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
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-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
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
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
Tiền điều kiện Khách hàng truy cập chức năng đặt hà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
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
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
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
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
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
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
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
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
Bảng 3-15 Kịch bản use case Đánh giá sản phẩm
Kịch bản Khách hàng, người quản trị thay đổi ảnh đại diện
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
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
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
Kịch bản Khách hàng, người quản trị cập nhập số điện thoại
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
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
Kịch bản Khách hàng, người quản trị cập nhập số điện thoại
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
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
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
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
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
Ngoại lệ:
1) Khách hàng chưa nhập đầy đủ các trường cần nhập
Tiền điều kiện Khách hàng truy cập vào Sổ địa chỉ
Bảng 3-22 Kịch bản use case Cập nhập địa chỉ
Tiền điều kiện Khách hàng truy cập vào Sổ đị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
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
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
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
Tiền điều kiện Khách hàng đã tìm kiếm và có kết quả 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
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
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
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
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
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
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
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ị
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
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
Kịch bản Người quản trị cập nhập trạng thái đơn hàng
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
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
a. Phân rã use case và kịch bản use case Thêm sản phẩm
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. 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
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
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ừ
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
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
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
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
Ngoại lệ:
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
Hình 3-45 Biểu đồ tuần tự Thêm sản phẩm vào 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
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
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
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.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
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
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
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
Hình 3-87 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-88 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-89 Biểu đồ hoạt động Tìm kiếm sản phẩm bằng giọng nói
Hình 3-90 Biểu đồ hoạt động Lọc sản phẩm tìm kiếm
Hình 3-91 Biểu đồ hoạt động Cập nhập ảnh đại diện
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
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.
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:
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á.
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ỉ
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
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
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
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
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.
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
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.
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.
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ũ
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ê
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-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.
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.
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].
[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