Tải bản đầy đủ (.docx) (74 trang)

Tìm hiểu hệ thống gợi ý sản phẩm và xây dựng ứng dụng minh hoạ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.11 MB, 74 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
--------

ĐỒ ÁN 2 - SE122.L11
Đề tài:

Tìm hiểu hệ thống gợi ý sản phẩm và xây dựng
ứng dụng minh hoạ
Giáo Viên HD: ThS. Trần Anh Dũng
Thực Hiện:
1. Nguyễn Phi Khang – 17520616
2. Nguyễn Quang Khang – 17520617

Tp HCM, 22/01/2021


LỜI CẢM ƠN
Đầu tiên, với tất cả lòng biết ơn và sự kính trọng, chúng em xin trân trọng cảm ơn
quý thầy, cô khoa Công Nghệ Phần Mềm, cũng như các thầy, cô đang công tác tại
trường Đại học Công nghệ Thông tin – ĐHQG-HCM đã dùng tất cả tri thức và tâm
huyết để truyền đạt những kiến thức, kinh nghiệm quý báu cho chúng em trong suốt
quá trình học tập và rèn luyện tại ngôi trường này. Đặc biệt, chúng em xin gửi lời tri
ân chân thành và sâu sắc đến Ths. Trần Anh Dũng – người thầy hướng dẫn đã hết sức
tận tâm, nhiệt tình hỗ trợ và hết lịng giúp đỡ cho nhóm chúng em trong suốt quá
trình thực hiện đồ án 2. Những định hướng, bổ sung, góp ý của thầy là nguồn cảm
hứng và nền tảng cơ sở góp phần giúp chúng em có những nghiên cứu đúng đắn, đạt
được kết quả tốt nhất trong việc xây dựng, phát triển ứng dụng và hoàn thiện khóa
luận tốt nghiệp. Tiếp theo, chúng em xin được phép gửi lời cảm ơn đặc biệt đến gia
đình và người thân. Gia đình ln là chỗ dựa tinh thần vững chắc, là nguồn động lực


lớn giúp chúng em vượt qua mọi khó khăn, phấn đấu hồn thành tốt khóa luận này.
Cuối cùng, nhóm chúng em xin gửi lời cảm ơn đến các anh, chị và các bạn sinh viên
trường Đại học Cơng nghệ Thơng tin đã nhiệt tình hỗ trợ, chia sẻ ý kiến, góp ý giúp
chúng em trong suốt thời gian thực hiện đồ án 2. Một lần nữa, chúng em xin chân
thành cảm ơn và xin gửi lời chúc sức khỏe đến q thầy, cơ.

TP. Hồ Chí Minh, ngày 22 tháng 01 năm 2021
Nhóm tác giả

2


NHẬN XÉT
(của giảng viên hướng dẫn)
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................

........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................
........................................................................................................................................................................

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ

CỘNG HỒ XÃ HỘI CHỦ NGHĨA

MINH

VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập – Tự Do – Hạnh Phúc

CÔNG NGHỆ THÔNG TIN
__________________________
3

__________________________



ĐỀ CƯƠNG CHI TIẾT

Tên đề tài: Tìm hiểu hệ thống gợi ý sản phẩm và xây dựng ứng dụng minh hoạ.
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 14/9/2020 - 02/01/2021
Sinh viên thực hiện:
1. Nguyễn Phi Khang
- 17520616
2. Nguyễn Quang Khang - 17520617
Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực
hiện, kết quả mong đợi của đề tài)
 Mục tiêu:
- Thứ nhất là nghiên cứu về các công nghệ lập trình Java, MySql, lập trình
ứng dụng với Flutter, hiểu được Machine Learning cơ bản và các thuật
toán gợi ý sản phẩm cụ thể là Content-based và Collaborative. Có thể áp
-

dụng trong ứng dụng minh hoạ của đề tài tìm hiểu này.
Thứ hai là sử dụng các thuật tốn gợi ý sản phẩm để có khả năng ứng
dụng vào thực tiễn, gợi ý cho người dùng các sản phẩm tốt nhất trong số

các sản phẩm phù hợp.
Nhóm hi vọng dựa trên nền tảng lý thuyết đã được thầy cô truyền thụ lại, kết
hợp với sự tìm hiểu cơng nghệ của nhóm, Đồ án 2 của nhóm sẽ đạt được mục
đích như mong đợi.
 Đối tượng: Hướng đến người dùng sản phẩm.
 Phương pháp thực hiện: làm việc với nhóm 02 thành viên, phân chia công
việc phù hợp với năng lực và kinh nghiệm của từng người, thực hiện đồ án
theo lượng công việc và thời gian đã được lập kế hoạch chi tiết. Các vấn đề
liên quan đến đồ án đều được trao đổi trực tiếp giữa các thành viên.

 Kết quả mong đợi:
- Đối với hệ thống gợi ý sản phẩm:
Hiểu được bài toán khuyến nghị
Hiểu được 2 phương pháp khuyến nghị chính: Content-based và
Collaborative.
Hệ thống gợi ý sản phẩm có thể gợi ý sản phẩm hiệu quả cho: người
4


dùng mới (chưa có dữ liệu rating) và người dùng cũ (dựa trên
-

collaborative filtering).
Đối với ứng dụng minh hoạ:
Với khách hàng là người dùng chưa đăng nhập, có thể xem sản phẩm,
tìm kiếm sản phẩm và đăng ký tài khoản.
Với khách hàng là người dùng đã đăng nhập có thể thực hiện chức
năng đặt mua sản phẩm, xem sản phẩm, quản lý sản phẩm mình u
thích, quản lý sản phẩm trong giỏ hàng, quản lý địa chỉ nhận hàng,
chat với shop, xem tình trạng đơn hàng và bình luận đánh giá sản
phẩm sau khi mua hàng thành công.
Admin là người quản trị thực hiện các chức năng quản lý sản phẩm,
quản lý đơn hàng, quản lý danh mục sản phẩm, quản lý tài khoản

-

người dùng.
Các tiêu chí khác:
Tính thẩm mỹ: Ứng dụng có giao diện đẹp, dễ sử dụng tâm lý thoải
mái cuốn hút khách hàng khi sử dụng.

Đối với nhà quản trị có thể cập nhật, thêm xóa sửa đổi thông tin liên
quan đến mặt hàng và các vấn đề khác.

Kế hoạch thực hiện: (Mô tả kế hoạch làm việc và phân chia công việc các thành
viên tham gia)
Với thời gian thực hiện từ 21/09/2020 tới 02/01/2021 (15 tuần), nhóm chia thành 6
sprint với 2 giai đoạn cụ thể:
STT

Cơng việc

Giai đoạn 1: Tìm hiểu về các kiến thức cơ bản liên
quan hệ thống gợi ý và xây dựng ứng dụng minh
hoạ cơ bản.
Sprint 1: Tìm hiểu các hệ thống gợi ý
1
- Hệ thống gợi ý là gì?
1.1

2
5

- Hệ thống gợi ý áp dụng cho việc gì?
- Các thuật tốn được áp dụng?
Sprint 2: Tìm hiểu về Machine Learning
cơ bản

Thời gian thực hiện
7 Tuần
(21/09/2020 – 08/11/2020)

1 Tuần
Tuần 1
(21/09/2020 – 27/09/2020)
2 Tuần


- Machine Learning là gì?
2.1

3

3.1

- Ngơn ngữ để viết Machine Learning?
- Nhập mơn cơ bản
Sprint 3: Tìm hiểu về Backend và

- Thiết kế cơ sở dữ liệu

- Xây dựng các màn hình cần thiết.

- Fetch API từ backend.
Giai đoạn 2: Tìm hiểu sâu về hệ thống gợi ý và áp
dụng vào ứng dụng
Sprint 4: Nghiên cứu thực hiện hệ thống
4
gợi ý
- Nghiên cứu phương pháp gợi ý sản phẩm
4.1
content-based, collaborative.

4.2
5
5.1

5.2

(28/09/2020 - 11/10/2020)
4 Tuần

Frontend
- Tìm hiểu về Java, MySQL.
- Xây dựng API cần thiết cho sản phẩm
- Tìm hiểu Flutter.

3.2

Tuần 2 – Tuần 3

- Xây dựng code thử nghiệm và đánh giá
Sprint 5: Áp dụng hệ thống gợi ý vào ứng
dụng
- Tích hợp gợi ý sản phẩm cho người dùng

Tuần 4 - Tuần 7
(12/10/2020 – 08/11/2020)

8 tuần
(09/11/2020 – 02/01/2021)
4 Tuần


Tuần 8 – Tuần 11
(09/11/2020 - 29/11/2020)

2 Tuần

vào ứng dụng
- Áp dụng gợi ý sản phẩm cho người dùng

Tuần 12 – Tuần 13

mới và collaborative filtering cho người

(30/11/2020 – 20/12/2020)

dùng cũ.
2 Tuần
6

Sprint 6: Hoàn thiện sản phẩm

Tuần 14 – Tuần 15
(21/12/2020 – 02/01/2021)

Xác nhận của CBHD

TP. HCM, ngày 16 tháng 09 năm

(Ký tên và ghi rõ họ tên)

2020

Sinh viên

6


(Ký tên và ghi rõ họ tên)

MỤC LỤC
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI...............................................................10
1.1. NHU CẦU THỰC TẾ CỦA ĐỀ TÀI:...................................................................10
1.2. CÁC DỰ ÁN ĐỐI THỦ.......................................................................................10
1.2.1. Sapo........................................................................................................10
1.2.2. KiotViet...................................................................................................11
1.3. ĐỐI TƯỢNG NGHIÊN CỨU...............................................................................12
1.4. PHẠM VI NGHIÊN CỨU..................................................................................13
1.5. PHƯƠNG PHÁP NGHIÊN CỨU.........................................................................13
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT........................................................................14
2.1. FLUTTER.......................................................................................................14
2.1.1. Giới thiệu về Flutter...............................................................................14
2.2.2. Tại sao sử dụng Flutter?.........................................................................15
2.3. JAVA SPRING..................................................................................................15
2.3.1. Giới thiệu về Java Spring.......................................................................15
2.3.2. Tại sao sử dụng Java Spring...................................................................16
2.3. HỆ QUAN
̉ TRỊ CSDL MYSQL..........................................................................16
2.3.1. Giới thiệu MySQL...................................................................................16
2.3.2. Tại sao sử dụng MySQL..........................................................................17
2.4.1. Khái niệm Firebase.................................................................................17
2.4.2. Chức năng chính của Google Firebase...................................................18
2.4.3. Lợi ích của Google Firebase...................................................................18

CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.....................................20
3.1. KIẾN TRÚC HỆ THỐNG..................................................................................20
3.2. MƠ HÌNH PHÂN RÃ CHỨC NĂNG....................................................................21
3.3. MƠ HÌNH USECASE........................................................................................21
3.3.1. Sơ đồ usecase..........................................................................................21
7


3.3.2. Danh sách các Actor...............................................................................22
3.3.3. Danh sách các Use Case........................................................................23
3.3.4. Đặc tả Use Case.....................................................................................25
3.4. THIẾT KẾ DỮ LIỆU........................................................................................31
3.4.1. Class Diagram........................................................................................31
3.4.2. Mô tả chi tiết các loại dữ liệu trong mô hình..........................................32
CHƯƠNG 4. HIỆN THỰC ỨNG DỤNG MUA SẮM THỜI TRANG.................41
4.1. TỔNG QUAN VỀ ỨNG DỤNG ECOMMERCE....................................................41
4.2. ĐẶC TẢ GIAO DIỆN CỦA ỨNG DỤNG..............................................................41
4.2.1. Quản lí đăng nhập..................................................................................41
4.2.2. Giao diện trang chủ...................................................................................43
4.2.3. Giao diện danh mục...................................................................................44
4.2.4. Giao diện tìm kiếm.....................................................................................47
4.2.5. Giao diện giỏ hàng.....................................................................................48
4.2.6. Giao diện chat............................................................................................49
4.2.7. Giao diện yêu thích....................................................................................50
4.2.8. Giao diện thông tin Profile.........................................................................51
4.2.9. Giao diện chi tiết sản phẩm........................................................................52
4.2.10. Giao diện lọc sản phẩm............................................................................53
CHƯƠNG 5: ÁP DỤNG RECOMMEND SYSTEM..............................................55
5.1. MỘT SỐ ĐỊNH NGHĨA........................................................................................55
5.1.1. Collaborative Filtering..............................................................................55

5.1.2. Neighborhood-based Collaborative Filtering (NBCF)...............................55
5.1.3. Utility Matrix..............................................................................................55
5.1.4. Cosine Similarity........................................................................................56
5.1.5. Root Mean Squared Error (RMSE)............................................................57
5.2. PHƯƠNG PHAṔ THƯC
̣ HIÊN
̣ ...........................................................................58
5.2.1. Content-based Recommendation................................................................58
5.2.2. Neighborhood-based Collaborative Filtering............................................62
5.3. ÁP DUN
̣ G VAO
̀ DỮ LIÊU
̣ MÂU
̃ VƠÍ PYTHON...................................................68
5.3.1. Content-based Recommendation.............................................................68
5.3.2. Neighborhood-based Collaborative Filtering............................................71
5.4. ĐAN
́ H GIA.́ ..........................................................................................................73
5.4.1. So sánh các thuật toán...............................................................................73
5.4.2. Nhận xét.....................................................................................................73
5.5. ÁP DUN
̣ G VƠÍ PROJECT.................................................................................75
CHƯƠNG 6: KẾT LUẬN, HƯỚNG PHÁT TRIỂN..............................................77
6.1.
6.2.
6.3.
8

ƯU ĐIỂM.........................................................................................................77
NHƯỢC ĐIỂM..................................................................................................77

HƯỚNG PHÁT TRIỂN.......................................................................................77


9


CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI
1.1.

Nhu cầu thực tế của đề tài:

- Hiện nay, nền kinh tế đang trên đà phát triển mạnh, đời sống của người dân cũng từ
đó mà đi lên, vì vậy thói quen ăn mặc và xu hướng thời gian luôn là một vấn đề nóng
hổi trong xã hội. Các shop vừa và nhỏ mọc lên như nấm, dẫn đến việc cần thiết của
những app thương mại điện tử hướng đến các shop start-up, cần bức đà để phát triển.
Do đó các chủ shop ln ln muốn tìm kiếm một ứng dụng có thể tạo sự khác biệt,
tạo ra chất riêng của shop để cạnh tranh giữ vị thế so với các shop khác. Tuy nhiên, đó
cũng là một vấn đề rất khó khăn đối với nhà phát triển ứng dụng để tạo ra sự hài lòng
với các chủ shop. Nhận thấy vấn đề này, nhóm đã quyết định đi sâu vào E-commerce
và tạo ra sự khác biệt cho các chủ shop vừa và nhỏ là những shop đang chiếm tỉ lệ lớn
trong ngành thời trang.
1.2.

Các dự án đối thủ

1.2.1. Sapo
- Ưu điểm:
+ Hiện nay, có thể nói ưu điểm lớn nhất của phần mềm Sapo chính là ứng dụng
cơng nghệ rất tốt vào việc hỗ trợ quản lý và bán hàng đa kênh, đồng bộ đơn
hàng từ cách kênh khác nhau như website, facebook, sàn TMĐT.

+ Phần mềm cịn có ưu điểm nổi bật là tích hợp đơn vị vận chuyển, đơn hàng
sau khi tạo trên phần mềm sẽ được xử lý và chuyển ngay lập tức đến các đối tác
vận chuyển, giúp các chủ shop rút ngắn quy trình giao hàng và nắm bắt chính
xác trạng thái của đơn hàng.
+ Phần mềm Sapo cũng tách biệt màn hình bán hàng tại cửa hàng và bán
online, giúp chun biệt hóa các tính năng, thơng tin chuyên môn bán hàng của
từng bên, dễ dàng báo cáo riêng biệt về hóa đơn, doanh thu và đo lường hiệu
quả giữa 2 kênh online và offline.

10


+ Cung cấp đa dạng các phương thức thanh toán, bao gồm: thanh toán bằng
tiền mặt, chuyển khoản, quẹt thẻ, COD, thanh tốn bằng điểm, và mới đây là
hình thức thanh toán qua QR Code.
- Nhược điểm:
+ Giao diện phần mềm Sapo tuy đẹp mắt nhưng menu hiển thị khá nhiều mục,
người xem sẽ khó nhớ khi mới nhìn vào. Đồng thời với người mới sử dụng sẽ
có phần thấy bối rối với quá nhiều loại báo cáo (hơn 20 loại báo cáo), có thể
nên bỏ bớt hoặc ẩn đi vì nhiều báo cáo khơng thực sự cần thiết.
+ Phần mềm Sapo chỉ phân quyền cho nhân viên đến các tính năng như vai trị,
chi nhánh. Thao tác nhân viên trong trang tính hiện vẫn chưa ổn định, cần cải
tiến thêm.
1.2.2. KiotViet
- Ưu điểm:
+ Phần mềm phù hợp với đa số ngành nghề, như thời trang, tạp hoá, siêu thị,
mỹ phẩm, điện tử…. cả bán buôn và bán lẻ.
+ Phù hợp với những doanh nghiệp, chủ shop chỉ tập trung vào bán tại cửa
hàng, quản lý đa chi nhánh. Nếu bạn chỉ bán hàng tại cửa hàng và khơng có ý
định mở rộng kinh doanh như bán hàng online thì Kiotviet là lựa chọn khá tốt.

+ Phần mềm Kiotviet có thể phân quyền chi tiết cho từng tài khoản, không cần
phải là tài khoản chủ cửa hàng mà tài khoản nhân viên cũng có thể xóa, sửa
đơn hàng nếu được cấp quyền
+ Kiotviet chỉ cung cấp một màn hình duy nhất cho cả bán hàng online và bán
tại cửa hàng. Điều này có ưu điểm là người dùng chỉ cần làm quen với một màn
hình tạo đơn bán hàng duy nhất.
+ Bán hàng ngay cả khi mất kết nối Internet.
- Nhược điểm:

11


+ Như đã nói ở trên, phần mềm Kiot Viet chỉ phù hợp với những ai đang bán
hàng offline tại cửa hàng. Còn sau này, khi việc kinh doanh phát triển đến một
mức độ nào đó sẽ khơng thể thiếu việc phát triển online, lúc này sẽ gây khó
khăn trong khâu quản lý, báo cáo. Vấn đề phát sinh là không tách bạch được
các báo cáo về bán hàng tại cửa hàng và bán hàng online nên sẽ khó đo lường
hiệu quả riêng của từng kênh.
+Việc phân quyền chi tiết cho từng tài khoản cũng gây ra nhược điểm là sẽ khó
kiểm sốt nếu nhân viên khơng trung thực và có ý định gian lận.
+Ngồi ra, phần mềm Kiot Viet có giao diện quản trị chưa được hiện đại và
thân thiện, các phần được bố cục khá phức tạp. Các báo cáo cũng chưa trực
quan và khơng có các báo cáo chuyên sâu. Giao diện quản lý của phần mềm
trên điện thoại cũng không được hiển thị tốt như trên máy tính.
+Phần mềm khơng hỗ trợ bán hàng online và khơng kết nối với vận chuyển nếu
shop có nhu cầu ship hàng.
+ Bên cạnh đó, các phương thức thanh tốn của Kiotviet cũng mới hỗ trợ 3
hình thức là tiền mặt, thẻ và chuyển khoản.
+ Về dịch vụ chăm sóc khách hàng, hỗ trợ kỹ thuật thì có hơi chậm. Có thể do
có nhiều khách hàng sử dụng nên mức độ tiếp cận thông tin và xử lý vấn đề bị

chậm hơn.
1.3.

Đối tượng nghiên cứu

- Khoá luận này hướng đến nghiên cứu các đối tượng sau:
+ Các công nghệ:
 Flutter
 Java Spring Boot
 MySQL
+ Giao diện: Quy tắc thiết kế F-layout, quy tắc phối màu mono.
12


+ Thuật toán: Thuật toán gợi ý sản phẩm Content-based và Collaborative
Filtering.
- Đối tượng trong phạm vị đề tài hướng đến:
+ Những doanh nghiệp, nhà bán hàng trong và ngoài nước.
+ Người tiêu dùng trong nước và quốc tế.
1.4.

Phạm vi nghiên cứu

- Ứng dụng Ecommerce được nhóm xây dựng bằng ngôn ngữ Flutter trên môi trường
Android/iOS và Server được xây dựng bằng ngơn ngữ Java.
- Tìm hiểu về hệ thống gợi ý sản phẩm đối với 2 phương pháp: Content-based method,
Collaborative filtering method dựa trên các khía cạnh:
+ Ý tưởng
+ Phương thức
+ Ưu, nhược điểm.

- Triển khai, đánh giá độ chính xác của từng phương pháp dựa trên dữ liệu thử
nghiệm. - Áp dụng hệ thống gợi ý sản phẩm vào ứng dụng Ecommerce để gợi ý sản
phẩm cho người dùng.
1.5.

Phương pháp nghiên cứu

- Cách tiếp cận: ứng dụng được xây dựng dựa theo mơ hình BloC trên nền tảng
Android.
- Nhóm đã sử dụng các phương pháp nghiên cứu:
+ Phương pháp đọc tài liệu.
+ Phương pháp phân tích các ứng dụng TMĐT hiện có.
+ Phương pháp thực nghiệm.

13


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1. Flutter
2.1.1. Giới thiệu về Flutter
- Flutter là một công cụ mới được cung cấp bởi Google cho phép các nhà phát triển
xây dựng các ứng dụng đa nền tảng có thể được thực hiện trong các hệ thống khác
nhau chẳng hạn như Android hay iOS, Web và Desktop chỉ với một codebase chung.
- Các đặc điểm của Flutter:
+ Cross-platform: build đa nền tảng có thể được thực hiện trong các hệ thống
khác nhau chẳng hạn như Android hay iOS ,web và desktop chỉ với một
codebase chung.
+ Phát triển nhanh (đối với developer): Với Flutter Hot Reload giúp bạn nhanh
chóng và dễ dàng thử nghiệm, xây dựng giao diện người dùng, thêm tính năng
và sửa lỗi.

+ Xây dựng UI đẹp và dễ dàng: Làm hài lịng người dùng của bạn với các tiện
ích Material Design and Cupertino tích hợp sẵn của Flutter, API chuyển động
phong phú, Scrolling tự nhiên mượt mà trên các nền tảng.
+ Framework hiện đại và reactive: Dễ dàng tạo giao diện người dùng của bạn với
framework hiện đại, reactive của Flutter và tập hợp các platform, layout và
widget phong phú. Giải quyết các thách thức giao diện người dùng khó khăn của
bạn với các API mạnh mẽ và linh hoạt cho 2D, animation, gesture, hiệu ứng và
hơn thế nữa.
+ Truy cập các tính năng và SDK native: Làm cho ứng dụng của bạn trở nên
sống động với API của platform, SDK của bên thứ ba và native code. Flutter cho
phép bạn sử dụng lại mã Java, Swift và ObjC hiện tại của mình và truy cập các
tính năng và SDK native trên iOS và Android.
+ Phát triển ứng dụng thống nhất: Flutter có các cơng cụ và thư viện để giúp bạn
dễ dàng đưa ý tưởng của mình vào cuộc sống trên iOS và Android. Nếu bạn chưa
có kinh nghiệm phát triển trên thiết bị di động, thì Flutter là một cách dễ dàng và
nhanh chóng để xây dựng các ứng dụng di động tuyệt đẹp. Nếu bạn là một nhà
phát triển iOS hoặc Android có kinh nghiệm, bạn có thể sử dụng Flutter cho các
View của bạn.
2.2.2. Tại sao sử dụng Flutter?

14


- Flutter là một mã nguồn mở được cung cấp một cách nhanh chóng và rõ ràng cho
các nhà phát triển để xây dựng các ứng dụng gốc trên cả iOS và Android.
- Thông qua “Stateful Hot Reload” and “Hot Restart”, Flutter giúp lưu lại những trạng
thái và update những thay đổi bạn đã thực hiện không cần phải chạy Gradle build
khác. Do đó thời gian q trình phát triển sản phẩm được giảm xuống đáng kể.
- Flutter có một cơ chế rất đặc biệt cho với các flat-form khác đó là “Everything is a
widget” giúp các developers dễ dàng xây dựng giao diện cũng như dễ dàng thay đổi

và quản lý UI.
- Hiện nay, Flutter đang rất được ưa chuộng với các developer bởi sự linh hoạt, đơn
giản và nhanh chóng trong việc phát triền sản phẩm.
2.3.

Java Spring

2.3.1. Giới thiệu về Java Spring
- Spring là một Framework phát triển các ứng dụng Java được sử dụng bởi hàng triệu
lập trình viên. Nó giúp tạo các ứng dụng có hiệu năng cao, dễ kiểm thử, sử dụng lại
code…
- Spring nhẹ và trong suốt (nhẹ: kích thước nhỏ, version cơ bản chỉ khoảng 2MB;
trong suốt: hoạt động một cách trong suốt với lập trình viên)
- Spring là một mã nguồn mở, được phát triển, chia sẻ và có cộng đồng người dùng rất
lơn.
- Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là:
Dependency Injection và Aspect Oriented Programming.
- Những tính năng core (cốt lõi) của Spring có thể được sử dụng để phát triển Java
Desktop, ứng dụng mobile, Java Web. Mục tiêu chính của Spring là giúp phát triển các
ứng dụng J2EE một cách dễ dàng hơn dựa trên mơ hình sử dụng POJO (Plain Old
Java Object).

15


2.3.2. Tại sao sử dụng Java Spring
- Spring framework hỗ trợ POJO. Vì vậy, bạn sẽ khơng bao giờ cần đến EJB
(Enterprise Java Beans - thường cần sử dụng trong các Framework khác). Do triển
khai POJO, framework này thực sự rất nhẹ, vì nó khơng phải nhận bất kỳ interface bổ
sung nào.

- Spring Framework được tổ chức tốt và rất linh hoạt. Bạn sẽ không gặp bất kỳ rắc rối
nào để sử dụng nó. Mặc dù là số lượng các class và các package của Spring
Framework là khá lớn.
- Spring framework cung cấp một giao diện quản lý giao dịch đáng tin cậy. Nó được
thiết kế tốt để sử dụng các giao dịch local cũng như các giao dịch global.
- Bạn có thể lập trình và kiểm thử một ứng dụng với Spring framework rất đơn giản và
dễ dàng.
- Spring dễ tích hợp với các Framework khác.
- Tính Module mạnh mẽ. Nó cung cấp nhiều module như: Spring Core, Spring AOP,
Spring IoC, Spring MVC, Spring JDBC, Spring ORM, Spring Transitions.
2.3.

Hệ quản trị csdl MySql

Hình 2.3: Sự phát triển và độ phổ biến của MySQL
2.3.1. Giới thiệu MySQL
16


- MySQL là một hệ quản trị cơ sở dữ liệu nhanh và tiện gọn, dễ dàng sử dụng để
tương tác với các công nghệ tiên tiến ngày nay như C#, Java, PHP,… Nó được phát
triển với cơng ty MYSQL AB ở Thụy Điển năm 2004 và sau nhiều lần thay đổi chủ sở
hữu, cuối cùng nó đã vào tay gã khổng lồ Oracle vào năm 2010.
2.3.2. Tại sao sử dụng MySQL
- Nó khá phổ biến với giới lập trình viên bởi:
+ MySQL là mã nguồn mở, hoàn toàn miễn phí khi sử dụng.
+ MySQL sử dụng form chuẩn thuộc hệ SQL.
+ MySQL dễ dàng xử lý ngay cả trên các tập dữ liệu lớn.
+ MySQL hỗ trợ giao dịch nhanh. Giao dịch ACID (Atomic-Consistent-IsolatedDurable) hồn thiện .
2.4.


Google Firebase Cloud

Hình 2.4: Google Firebase Cloud
2.4.1. Khái niệm Firebase
- Firebase là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đám
mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng
bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu.
17


- Ra mắt muộn hơn các công nghệ khác, Firebase được ra đời vào năm 2014 và được
google mua lại vào năm 2016. Từ đó Firebase đã tăng từ 110.000 lên 470.000 nhà phát
triển và vẫn đang nắm giữ tốc độ tăng trưởng đáng kể. Firebase được tin dùng và phổ
biến bởi vì nó giúp nhà phát triển có thể xây dựng hệ thống Client – Server mà công
sức cũng như chi phí bỏ ra cho phía Server giảm đi đáng kể.
2.4.2. Chức năng chính của Google Firebase
- Realtime Database – Cơ sở dữ liệu thời gian thực
+ Dữ liệu được firebase lưu trữ có dạng JSON và được đồng bộ cơ sỡ dữ liệu
đến tất cả user theo thời gian thực. Điều này sẽ giúp xây dựng hệ thống đa nền
tảng và tất cả user cùng dùng chung một database được cung cấp với firebase,
điều tuyệt vời hơn là firebase tự động cập nhật mỗi khi có sự thay đổi dữ liệu.
- Firebase Authentication – Hệ thống xác thực của Firebase
+ Firebase dễ dàng tích hợp các cơng nghệ xác thực của các ông lớn trên internet
như Google, Facebook,…hoặc một hệ thống xác thực tự xây dựng trong ứng
dụng ở bất kỳ nền tảng nào như Android, iOS.
- Firebase storage
+ Firebase storage lưu trữ được nhiều dạng dữ liệu như tập tin, hình ảnh, video
một cách dễ dàng. Ngồi ra nó cịn tích hợp Google security giúp tải lên và tải về
các ứng dụng firebase một cách tiện lợi.

- Firebase Cloud Messaging
+ Bên cạnh các tính năng trên, Firebase còn cung cấp địch vụ Cloud Messaging,
một giải pháp đa nền tảng, cho phép mọi người gửi thông điệp miễn phí dưới
dạng tin nhắn theo thời gian thực.
2.4.3. Lợi ích của Google Firebase
- Triển khai ứng dụng cực nhanh
+ Với firebase, lập trình viên sẽ giảm được nhiều thời gian cho việc xây dựng và
phát triển và đồng bộ cơ sở dữ liệu, nó diễn ra nhanh chóng và tự động qua các
18


API mà Firebase cung cấp. Ngồi ra, nếu lập trình viên muốn xây dựng ứng
dụng đa nền tảng, điều này hồn tồn dễ dàng vì Firebase cũng hỗ trợ đa nền
tảng.
+ Khơng chỉ có vậy, q trình đăng ký và đăng nhập vào ứng dụng sẽ tiện lợi và
dễ dàng hơn bằng các hệ thống xác thực mà Firebase đã cung cấp.
- Bảo mật
+ Firabase hoạt động dựa vào nền tảng đám mây và thực hiện kết nối băng giao
thức bảo mật SSL, vì thế bảo mật dữ liệu cũng như đường truyền giữa client và
server sẽ được đảm bảo nghiêm ngặt. Ngoài ra, việc phân quyền cho người dùng
chỉ đơn giản với cú pháp javascript cũng được nâng cao hơn, bởi chỉ người nào
được cấp phép mới có thể chỉnh sửa dữ liệu.
- Tính linh hoạt và khả năng mở rộng
+ Firebase cho phép nhà phát triển xây dựng server của riêng mình để thuận tiện
trong quá trình quản lý. Firebase sử dụng hệ quản trị cơ sở dữ liệu là NoSQL,
giúp database dễ dàng mở rộng các bảng, các trường tùy theo ý thích của mỗi lập
trình viên.

19



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

Kiến trúc hệ thống

Hình 3.1: Sơ đồ kiến trúc hệ thống
20


3.2.

Mơ hình phân rã chức năng

Hình 3.2: Sơ đồ phân rã chức năng
- Mơ hình phân rã chức năng cho phép xác định phạm vi các chức năng được xây
dựng và phát triển trong ứng dụng, cho phép người sử dụng có một cái nhìn tổng thể
về các chức năng có trong ứng dụng thơng qua việc biểu diễn phân rã có thứ bậc đơn
giản các chức năng của ứng dụng.
3.3.

Mơ hình usecase

3.3.1. Sơ đồ usecase
Hình 3.3.1: Sơ đồ use case tổng quát
3.3.2. Danh sách các Actor
STT
1

Tên Actor

Khách hàng

Ý nghĩa/Ghi Chú
2.4.1.1. Là người xem sản phẩm của shop
2.4.1.2. Thêm sản phẩm vào mục yêu thích nếu
2.4.1.3.

21

thích sản phẩm
Thêm sản phẩm vào giỏ hàng nếu có ý


2.4.1.4.
2.4.1.5.
2

admin

định mua
Mua sản phẩm nếu đã quyết định
Đánh giá sản phẩm khi đã nhận được hàng,

để cho khách hàng khác cân nhắc
2.4.1.6. Kiểm suyệt các sản phẩm nếu có hàng mới
2.4.1.7. Quản lý thu nhập
2.4.1.8. Quản lý tồn kho
2.4.1.9. Quản lý đơn hàng
2.4.1.10. Cập nhật trạng thái vận chuyển hàng
2.4.1.11. Hỗ trợ khách hàng


3.3.3. Danh sách các Use Case
STT
1
2

Tên use case

Ý nghĩa

Use case Mức tổng

Đưa ra các actor có trong hệ thống quản lý, và

quát

chức năng chính của mỗi actor.

Use case Chưa đăng

Đánh giá mức độ yêu thích ứng dụng của người

nhập

dùng (quyết định tiếp tục sự dụng ứng dụng hay
không)

22



3

Use case Đăng nhập

Yêu cầu đăng nhập để xác thực trong ứng dụng

4

Use case Quản lý

Quản lý người dùng để ứng dụng hoạt động tốt

người dùng

hơn (đảm bảo tính cơng bằng)

5
6

Use case Quản lý danh Quản lý các danh mục sản phẩm hàng hóa
mục sản phẩm

(thêm, sửa, xóa danh mục)

Use case Quản lý sản

Quản lý sản phẩm (thêm, sửa, xóa sản phẩm)

phẩm
7

8

Use case Quản lý đơn

Quản lý đơn hàng (sửa đơn hàng, hủy, duyệt

hàng

đơn hàng)

Use case Quản lý

Quản lý các mục quảng cáo (thêm, sửa, xóa)

quảng cáo
9

Use case Quản lý bài

Thêm, xóa, sửa các bài viết, hướng dẫn trong

viết

ứng dụng

10

Use case Xem bài viết

Xem bài viết


11

Use case Lưu bài viết

Thêm, xóa bài viết vào mục lưu trữ

12

Use case Đặt nhắc nhở Thêm nhắc nhở để xem lại bài viết vào thời

13

xem bài viết

gian khác

Use case Quản lý địa

Thêm, xóa, sửa địa chỉ giao hàng

chỉ giao hàng
14
15

Use case Quản lý giỏ

Quản lý giỏ hàng (thêm, xóa, sửa sản phẩm

hàng


trong giỏ hàng)

Use case Xem tình

Theo dõi tình trạng đơn hàng

trạng đơn hàng
16

Use case Tìm kiếm

Tìm kiếm sản phẩm theo từ khóa

sản phẩm
17

Use case Xem sản

Xem chi tiết thông tin sản phẩm

phẩm
18
19

Use case Quản lý sản

Quản lý danh mục sản phẩm yêu thích (thêm,

phẩm u thích


xóa khỏi danh mục)

Use case Đánh giá sản

Đánh giá của khách hàng về sản phẩm

phẩm
23


20

Use case Đặt hàng sản

Khách hàng đặt hàng sản phẩm của MyStore

phẩm
21

Use case Chat

Khách hàng liên lạc với người bán

22

Use case Thống kê

Xem thống kê doanh thu trong khoảng thời gian


doanh thu
23

Use case Liên hệ

Liên hệ với admin hệ thống

admin
Bảng 3.3.2. Danh sách các Actor
3.3.4. Đặc tả Use Case
3.3.4.1. Đặc tả Use case Đăng nhập

Đổi mật khẩu
Tên Use Case
Đăng nhập
Mô tả
Chức năng đăng nhập của người dùng
Người thực hiện
Khách hàng, admin
Điều kiện trước xử lí
Màn hình ở screen đăng nhập
Sau xử lí(sau Use-case)2.4.1.11.1.1.1. Đăng nhập thành cơng: Hiển thị profile, có
thêm các chức năng u thích,đơn hàng,profile,…
2.4.1.11.1.1.2. Đăng thất bại: Mẫu khẩu hiện tại không đúng.
Thông báo đăng nhập không thành cơng
Nếu username và password khơng thỏa validate ,

Ngoại lệ(Exception)
Dịng sự kiện chính
Dịng sự kiện khác


1.
2.
3.
1.

nút đăng nhập sẽ bị disable
Hệ thống hiển thị màn hình đăng nhập.
Khách hàng nhập username và mật khẩu mới.
Click đăng nhập
Hệ thống kiểm tra nhập username, mật khẩu có

chính xác hay khơng.
2. Thơng báo lỗi hoặc chuyển sang màn hình Home
24


3.3.4.2. Đặc tả Usecase Quản lý giỏ hàng

Quản lý giỏ hàng
Tên Use Case
Mơ tả
Người thực hiện
Điều kiện trước xử lí
Sau xử lí(sau Use-case)
Ngoại lệ(Exception)
Dịng sự kiện chính

Quản lý giỏ hàng
Xem, sửa, xóa các item trong giỏ hàng, thanh tốn

Khách hàng
Màn hình ở screen Giỏ hàng
1. Cập nhật , xóa thơng tin Giỏ hàng
2. Thanh toán Giỏ hàng
1. Hệ thống hiển thị màn hình Giỏ hàng.
2. Khách hàng click vào các button thêm hoặc giảm
số lượng của item để điều chỉnh số lượng, hoặc

Dòng sự kiện khác

nhấn button dấu X để xóa item
3. Chọn các Item cần tương tác để xóa,sửa.
1. Có thể tích chọn các item cần tương tác để đặt
hàng, thanh tốn

3.3.4.3. Đặc tả Usecase xem tình trạng đơn hàng

Quản lý đơn hàng
Tên Use Case
Mô tả
25

Xem đơn hàng
Xem các đơn hàng đã đặt và xem tình trạng đơn hàng


×