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

Đồ án phát triển ứng dụng mua sắm và thử quần áo trên mobile với android

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 (2.15 MB, 45 trang )

ĐẠ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


×