ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
TÀI LIỆU ĐẶC TẢ
Đồ án 1
Phát triển ứng dụng mua sắm và thử quần áo trên mobile
với Android
Giảng viên hướng dẫn: Ths. Nguyễn Thị Thanh Trúc
Danh sách thành viên nhóm:
Trần Thanh Lâm – 18520082
Nguyễn Thành Đạt – 18520579
LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học
Công nghệ Thông tin – ĐHQG TP.HCM, em đã được trang bị các kiến thức cơ bản cùng
các kỹ năng thực tế để có thể hồn thành Đồ án 1 của nhóm.
Để hồn thành đồ án này, với lịng biết ơn sâu sắc em xin gửi lời cảm ơn chân thành đến:
Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo
điều kiện thuận lợi để sinh viên tìm kiếm, nghiên cứu thơng tin với hệ thống thư viện
hiện đại, đa dạng các loại sách và tài liệu
Gần gũi hơn là những lời tốt đẹp nhất xin gửi đến đến cơ Nguyễn Thị Thanh Trúc
đã tận tình giúp đỡ, định hướng cách tư duy và hướng làm việc khoa học. Đó là những
góp ý hết sức quý báu khơng chỉ trong q trình thực hiện luận văn mà còn là hành trang
tiếp bước cho em trong quá trình học tập và làm việc sau này.
Sau cùng, xin chúc quý Thầy Cô trong khoa Công nghệ Phần mềm nói riêng cũng
như các giáo viên tại trường Cơng nghệ thơng tin nói chung thật dồi dào sức khỏe, niềm
tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình.
Thành phố Hồ Chí Minh, 10 tháng 06 năm 2021
Sinh viên 1
Nguyễn Thành Đạt
Sinh viên 2
Trần Thanh Lâm
2
Mục lục
1.
2.
3.
Giới thiệu chung
6
1.1. Đặt vấn đề
6
1.2. Giải quyết bài tốn
7
Các cơng nghệ sử dụng trong đồ án
8
2.1. Sơ đồ quy trình xử lý hàng hóa
8
2.2. Cơng nghệ sử dụng
8
2.3. Mô tả chi tiết
9
2.3.1. Flutter – Dart
9
2.3.2. PostgreSQL
10
Use Case
11
3.1. Bảng yêu cầu nghiệp vụ
11
3.2. Sơ đồ use case tổng quát
13
3.3.
16
Sơ đồ use case phân rã
3.3.1 Usecase đăng nhập khách hàng
16
3.3.2 Usecase quản lý đăng nhập admin
16
3.3.3 Usecase quản lý đơn hàng
17
3.3.4 Usecase quản lý danh mục sản phẩm
18
3.3.5 Usecase quản lý sản phẩm
18
3.3.6 Usecase quản lý banner
19
3.3.7 Usecase quản lý khách hàng
20
3.3.8 Usecase thử sản phẩm
20
3.3.9 Usecase quản lí giỏ hàng
21
3
3.3.10 Use case thanh toán
22
4.
Thiết kế cơ sở dữ liệu
23
5.
Relationship Diagram
24
6.
Class Diagram
24
7.
Sequence Diagram
26
7.1
Đặt hàng và thanh toán
26
7.2
Quản lý sản phẩm
27
7.3
Quản lý danh mục sản phẩm
28
7.4
Quản lý banner
29
30
7.6. Thử đồ
31
8.
7.5 Quản lý khách hàng
Activity Diagram
32
Đăng nhập
32
8.2
Đặt hàng và thanh toán
32
8.3
Quản lý mặt hàng
33
8.4
Quản lý banner
33
8.5
Quản lý khách hàng
34
8.6
Thử sản phẩm
34
Thiết kế giao diện
35
9.
8.1
9.1
Trang chủ
35
9.2
Màn hình sản phẩm và chi tiết sản phẩm
35
9.4
Màn hình giỏ hàng và thanh tốn
36
9.11 Màn hình quản lý khách hàng
10
36
. Tổng quan Machine Learning Fashion-MNIST cho việc thử đồ
4
37
10.1
Giới thiệu Fashion-MNIST
37
10.2
Tại sao Fashion-MNIST được tạo ra
38
10.2.1 Nguồn gốc
38
10.2.2 Lấy dữ liệu:
39
10.3
Chi tiết sử dụng
39
10.3.1 Tải dữ liệu với Python (yêu cầu NumPy)
39
10.3.2 Tải dữ liệu với Tensorflow
40
10.3.3 Tải dữ liệu với các thư viện Machine Learning khác
40
10.3.4
41
Tải dữ liệu với ngôn ngữ khác
11.
Tasksheet
42
12.
Tổng kết
43
13.
Hướng phát triển
43
14.
Tài liệu tham khảo
43
5
1. Giới thiệu chung
1.1. Đặt vấn đề
Trong thời đại kỷ nguyên số, việc sở hữu một ứng dụng thương mại điện tử là một trong
những yếu tố tiên quyết để gia tăng doanh số và phát triển doanh nghiệp. Nó khơng cịn
là một thuật ngữ xa lạ đối với mọi người và mọi cửa hàng đều sở hữu cho mình một ứng
dụng để kinh doanh, quảng cáo thương hiệu.
Những lợi ích khi doanh nghiệp sở hữu một ứng dụng thương mại điện tử:
+ Tăng lợi nhuận
+ Tiết kiệm chi phí vì khơng cần phải bỏ ra một khoản tiền lớn để thuê mặt bằng, thuê và
đào tạo đội ngũ nhân viên,... mà vẫn thu được lợi nhuận cao nếu như bạn biết kết hợp với
một số chiến lược Marketing online.
+ Gia tăng khả năng tương tác với khách hàng
+ Nâng cao khả năng cạnh tranh với đối thủ
+ Quảng bá thương hiệu
Chuyển đổi từ ứng dụng có giao diện cũ sang một ứng dụng thương mại điện tử chuyên
nghiệp đang là xu hướng thu hút rất nhiều doanh nghiệp hiện nay. Ở các ứng dụng
thương mại lớn, doanh nghiệp sẽ thiết lập cấu trúc ứng dụng rất rõ ràng và khoa học để
người mua dễ dàng tìm thấy sản phẩm phù hợp một cách nhanh nhất. Cấu trúc đó được
tích hợp các bộ lọc tìm kiếm để phân luồng rõ ràng các cấp độ như lọc theo giá cả, theo
độ phổ biến, chất liệu sản phẩm, kích cỡ,... Nhờ vậy mà trải nghiệm mua sắm của khách
hàng sẽ trở nên đơn giản hơn.
Các đặc điểm nổi bật của một ứng dụng thương mại điện tử:
+ Thao tác thuận tiện, nhanh chóng
+ Cung cấp thơng tin nhanh – chính xác – đầy đủ nhất
+ Dễ dàng tương tác với người bán
6
+ Hình thức thanh tốn đa dạng
1.2. Giải quyết bài tốn
Xây dựng một ứng dụng thương mại điện tử có đầy đủ các tính năng cơ bản cùng với
giao diện thân thiện với người dùng. Ứng dụng bao gồm hai đối tượng sử dụng chính:
khách hàng, chủ cửa hàng(hoặc nhân viên) với mỗi đối tượng sẽ có những chức năng
riêng biệt.
Các chức năng phục vụ đối tượng khách hàng:
+ Quản lý tài khoản
+ Quản lý giỏ hàng
+ Thanh toán
+ Thử quần áo
+ Gợi ý sản phẩm
Các chức năng phục vụ đối tượng chủ cửa hàng ( hoặc nhân viên):
+ Quản lý tài khoản
+ Quản lý sản phẩm
+ Quản lý đơn hàng
+ Quản lý Banners
+ Quản lý khách hàng
7
2. Các công nghệ sử dụng trong đồ án
2.1.
Sơ đồ quy trình xử lý hàng hóa
Nhà cung cấp chở hàng đến
Nhập kho
Phân loại sắp xếp
Cập nhật trình trạng trên Webservice
Bán hàng
Quy trình xử
lý hàng hóa
Đóng gói
Vận chuyển
Khách hàng đặt hàng trên ứng dụng
Hệ thông chuyển hàng về kho
Nhân viên lấy hàng và đóng gói
Cập nhật trình trạng hàng vào kho
Lấy hàng và giao cho khách
Chuyển biên lai về kho
Giải đáp thắc mắc
Hậu mãi
Xử lý hàng không người nhận
Xử lý hàng hóa bị trả lại
2.2. Cơng nghệ sử dụng
Trong q trình thực hiện đồ án, nhóm đã sử dụng một số phần mềm, cơng cụ
phục vụ cho việc tìm hiểu và xây dựng đề tài bao gồm:
-
PostgreSQL : hệ thống cơ sở dữ liệu quan hệ đối tượng mã nguồn mở
-
Flutter : xây dựng phần mềm để viết mã và tạo ứng dụng.
-
iTextSharp v5.5.13: Framework hỗ trợ xuất file đuôi .pdf
-
StarUML: Phần mềm đặc tả hệ thống bằng sơ đồ UML.
8
2.3.
Mơ tả chi tiết
2.3.1. Flutter – Dart
Từ góc độ software stack, Flutter bao gồm các lớp sau:
1. Lớp thấp nhất là lớp runtime được xây dựng trong C++, cần giao tiếp HĐH
theo một số cách hạn chế – đến Open GL, API truy cập, tệp và mạng IO, v.v …
Phía trên cùng của lớp này là API chuyển sang mã Dart.
2. Một lớp liên kết chủ yếu là cho thiết lập ban đầu.
3. Một lớp render là một mơ hình view điển hình với các đối tượng tồn tại
lâu. Lớp này xử lý những thứ như bố cục, vẽ, chỉnh sửa văn bản, cử chỉ, v.v.
4. Một lớp widget bao gồm các thứ có thời gian tồn tại ngắn mơ tả giao diện
người dùng sẽ trông như thế nào trong một framework duy nhất. Flutter áp
dụng mơ hình lập trình reactive trong đó UI được xây dựng lại mỗi khi trạng
thái thay đổi.
5. Một lớp thể hiện thẩm mỹ thiết kế cụ thể, ví dụ Thiết kế Vật liệu cho Android.
Một số khía cạnh của Dart khiến nó phù hợp với Flutter là:
1. Nó có một garbage collector thế hệ rất nhanh. Điều này rất hữu ích vì Flutter
tn theo mơ hình lập trình reactive trong đó các đối tượng UI được tạo và hủy
nhanh chóng.
2. Trình biên dịch trước thời hạn của Dart cho phép biên dịch trực tiếp mã. Điều
này cho phép khởi động nhanh và đạt hiệu suất phù hợp.
3. Dart tập trung vào trải nghiệm tốt cho lập trình viên.
9
4. Dart có thuật tốn tree shaking – chỉ các phần của framework Flutter đã được
sử dụng mới được đưa vào ứng dụng cuối cùng.
Các IDE chính được hỗ trợ:
● Android Studio
● IntelliJ
● Visual Studio Code
Plugin và package
Một nguyên tắc sáng lập của Flutter là bất cứ điều gì mà phần cứng có thể làm, bạn cũng
có thể làm trong Flutter. Mặc dù ln có khả năng đào sâu vào các thư viện cụ thể của
nền tảng, với bộ sưu tập các gói Flutter ngày càng phát triển, hầu hết các lập trình viên sẽ
tìm thấy những gì họ cần trên />2.3.2. PostgreSQL
PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ-đối tượng (object-relational
database management system) có mục đích chung, hệ thống cơ sở dữ liệu mã nguồn mở
tiên tiến nhất hiện nay.
PostgreSQL sở hữu một hệ tính năng đa dạng giúp hỗ trợ các nhà phát triển xây dựng
app, các nhà quản trị bảo vệ toàn vẹn dữ liệu, và tạo ra một môi trường chịu lỗi faulttolerant giúp bạn quản lý dữ liệu bất kể tập dữ liệu lớn hay nhỏ
Các hệ tính năng được sử dụng trong đồ án của PostgreSQL:
- Cấu trúc: Date/Time, Array, Phạm vi, UUID
- Document: JSON/JSONB, XML, Key-value (Hstore)
- Lập danh mục: Expressions, Partial
- Giao tác, Giao tác dạng nest (thông qua lưu điểm)
- Ngôn ngữ thủ tục: PGSQL, Python
10
- Trình wrapper dữ liệu ngồi: kết nối với các cơ sở dữ liệu với giao diện SQL
Các yếu tố giúp PostgreSQL nổi bật
-
PostgreSQL là hệ thống quản lý cơ sở dữ liệu đầu tiên triển khai tính năng kiểm
sốt đồng thời nhiều phiên bản (MVCC) trước cả Oracle.
-
PostgreSQL cho phép thêm vào các tính năng tùy chỉnh được phát triển bằng các
ngơn ngữ chương trình khác nhau như C/C , Java,...
3. Use Case
3.1.
STT
Bảng yêu cầu nghiệp vụ
Tên use case
Đặc tả use case
- Đăng nhập, đăng kí.
1
Quản lý tài khoản
- Sửa thơng tin cá nhân.
- Thêm, xố, sửa thơng tin chi tiết sản phẩm.
2
Quản lý sản phẩm
- Phân loại sản phẩm theo danh mục.
3
Quản lý đơn hàng
- Thống kê tất cả các đơn hàng.
4
Quản lý giỏ hàng
- Thêm, xoá sản phẩm trong giỏ hàng.
- Đặt hàng bằng cách nhập thông tin chi tiết chỗ
nhận hàng.
5
Đặt hàng
- Huỷ đơn hàng.
- Thanh toán hoá đơn sau khi kết thúc việc mua
hàng.
- Thêm, xoá, sửa các banner khuyến mãi hiển thị
6
Quản lý banner khuyến mãi
7
Quản lý khách hàng
8
Thử quần áo
trên trang chủ.
- Xem danh sách khách hàng.
- Người dùng có thể thử quần áo ngay trên app
bằng cách chọn người mẫu có sẵn hoặc tự tải hình
11
của mình lên và mặc thử trước khi đưa ra quyết
định mua sắm
- Ứng dụng tự động hiển thị các sản phẩm nổi bật
9
Gợi ý sản phẩm
cho người dùng.
Bảng 1: Danh sách yêu cầu
12
3.2. Sơ đồ use case tổng quát
STT Tên Actor
Ý nghĩa
1
Chủ shop
Chủ cửa hàng quản lý trang ứng dụng .
2
Khách hàng
Khách hàng của cửa hàng.
Bảng 2: Danh sách người dùng
Hình 1: Sơ đồ usecase tổng quát
13
- Sơ đồ usecase chi tiết dành cho đối tượng chủ shop (hoặc nhân viên)
Hình 2: Usecase chi tiết của đối tượng chủ shop(nhân viên)
14
- Sơ đồ usecase chi tiết dành cho đối tượng khách hàng
Hình 3: Usecase chi tiết của đối tượng khách hàng
15
3.3.
Sơ đồ use case phân rã
3.3.1 Usecase đăng nhập khách hàng
Tên chức năng
Mơ tả chức năng
Mục tiêu chức
năng
Bài tốn giải
quyết
Điều kiện
Not doing
Đăng nhập khách hàng
Khách hàng đăng nhập vào website để đặt hàng với các thông tin tài
khoản của
Giúp khách hàng quản lý thông tin tài khoản
Lưu lại thông tin khách hàng cho những lần đăng nhập sau
Đã đăng kí tài khoản trên website
Khơng có.
3.3.2 Usecase quản lý đăng nhập admin
16
Tên chức năng Đăng nhập admin
Mô tả chức năng Admin đăng nhập vào website để sử dụng các chức năng chính của website
quản lý bán hàng
Mục tiêu chức
Phân quyền sử dụng cho tài khoản admin
năng
Bài toán giải
Bảo mật dữ liệu và đảm bảo tính an tồn cho tồn bộ hệ thống website
quyết
Điều kiện
Khơng có
Not doing
Khơng có.
3.3.3 Usecase quản lý đơn hàng
Tên chức năng
Mô tả chức năng
Quản lý đơn hàng
Quản lý đơn hàng gồm có các tính năng chính như sau:
- Thống kê tất cả các đơn hàng.
- Duyệt đơn hàng
Giúp admin quản lý tất cả các đơn đặt hàng trên website
Mục tiêu chức
năng
Bài toán giải quyết Quản lý, cập nhật thơng tin các đơn đặt hàng nhanh
chóng.
Điều kiện
Khơng có.
Not doing
Khơng có.
17
3.3.4 Usecase quản lý danh mục sản phẩm
Tên chức năng
Mô tả chức năng
Quản lý danh mục sản phẩm
Quản lý danh mục sản phẩm gồm có các tính năng chính như sau:
- Thêm, xố thơng danh mục sản phẩm.
Giúp admin quản lý các danh mục sản phẩm trên website
Mục tiêu chức
năng
Bài tốn giải quyết Quản lý, cập nhật thơng tin danh mục sản phẩm chính xác, nhanh
chóng.
18
3.3.5 Usecase quản lý sản phẩm
Tên chức năng
Mô tả chức năng
Quản lý sản phẩm
Quản lý sản phẩm gồm có các tính năng chính như sau:
- Thêm, xố, sửa thơng tin chi tiết sản phẩm.
- Phân loại sản phẩm theo danh mục.
Giúp admin quản lý các sản phẩm trên website
Mục tiêu chức
năng
Bài tốn giải quyết Quản lý, cập nhật thơng tin sản phẩm chính xác, nhanh
chóng.
Điều kiện
Khơng có.
Not doing
Khơng có.
3.3.6 Usecase quản lý banner
19
Tên chức năng
Mô tả chức năng
Quản lý banner
Quản lý banner khuyến mãi gồm có các tính năng chính như sau:
- Thêm banner khuyến mãi
- Gỡ banner
Admin có thể chỉnh sửa banner trên trang web.
Mục tiêu chức
năng
Bài toán giải quyết Quản lý hình ảnh, thơng tin banner trên website dễ dàng
Điều kiện
Khơng có.
Not doing
Khơng có.
3.3.7 Usecase quản lý khách hàng
Tên chức năng
Mô tả chức năng
Quản lý khách hàng
Quản lý khách hàng gồm có các tính năng chính như sau:
- Chỉnh sửa thơng tin khách hàng
- Xóa khách hàng
Admin có thể quản lý thông tin khách hàng trên trang web.
Mục tiêu chức
năng
Bài tốn giải quyết Quản lý thơng tin đặt hàng, địa chỉ giao hàng của khách trên website một
cách dễ dàng
Điều kiện
Dĩ nhiên là phải có khách hàng rồi
Not doing
Khơng có.
20
3.3.8 Usecase thử sản phẩm
Tên chức năng
Mô tả chức năng
Thử sản phẩm
Thử sản phẩm gồm có các tính năng chính như sau:
- Thử các sản phẩm khách hang muốn thử bằng công nghệ AI và
Computer Vision
Mục tiêu chức
Giúp khách hàng có thể lựa chọn được sản phẩm phù hợp
năng
Bài tốn giải quyết Giải quyết được vấn đề khó khan trong việc mua quần áo online, người
dung không cần phải tới tận shop để thử
Điều kiện
Dĩ nhiên là phải có khách hàng rồi
Not doing
Khơng có.
21
3.3.9 Usecase quản lí giỏ hàng
Tên chức năng
Mơ tả chức năng
Quản lí giỏ hàng
Quản lí giỏ hàng gồm có các tính năng chính như sau:
- Hiển thị danh sách hang có trong giỏ
- Nhập mã khuyến mãi
- Tiến hành đặt hàng
Mục tiêu chức
Giúp khách hang có thể quản lí được giỏ hàng của mình
năng
Bài tốn giải quyết Giải quyết được vấn đề đặt hàng online của khách hàng, giúp khách hàng
có thể kiểm tra được sản phẩm lại lần nữa trước khi thanh tốn
Điều kiện
Dĩ nhiên là phải có khách hàng rồi
Not doing
Khơng có.
22
3.3.10 Use case thanh tốn
Tên chức năng
Mơ tả chức năng
Quản lí thanh tốn
Quản lí thanh tốn gồm có các tính năng chính như sau:
- Hiển thị thơng tin đặt hàng
23
Mục tiêu chức
năng
Bài toán giải quyết
Điều kiện
Not doing
Giúp khách hàng có thể quản lí thanh tốn của sản phẩm
Giải quyết được vấn đề thanh toán online khi mua hàng trên mạng
Dĩ nhiên là phải có khách hàng rồi
Khơng có.
4. Thiết kế cơ sở dữ liệu
STT
Tên bảng dữ liệu
Diễn giải
1
User
Chứa thông tin tài khoản của user và token
2
Role
3
Permission
4
Role_Permission
5
Banner
Quản lý thông tin banner
6
Size
Quản lý size của mỗi sản phẩm
7
Collection
Quản lý danh sách collection
8
Product_Collection
Quản lý quan hệ giữa product và collection
9
ProductDetail
Chứa thông tin chi tiết sản phẩm
10
Gender
Quản lý danh sách gender
11
Order
Danh sách sản phẩm khách hàng đặt mua
12
Product
Chứa thông tin sản phẩm
13
Image
Quản lý danh sách image của từng sản phẩm
14
Color
Quản lý danh sách color của từng sản phẩm
15
OrderDetail
Chứa thông tin chi tiết sản phẩm khách hàng order
16
Brand
Quản lý danh sách brand
17
Model
Quản lý danh sách model
Dùng để phân quyền người dùng
Bảng 3: Bảng diễn giải các tables trong cơ sở dữ liệu
24
5. Relationship Diagram
6.Class Diagram
25