Tải bản đầy đủ (.pdf) (127 trang)

Đồ án xây dựng ứng dụng di động mua bán và quản lý cửa hàng nội thất

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 (4.99 MB, 127 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

BÁO CÁO ĐỒ ÁN 1
XÂY DỰNG ỨNG DỤNG DI ĐỘNG
MUA BÁN VÀ QUẢN LÝ CỬA HÀNG NỘI THẤT

Giảng viên hướng dẫn: TS. Đỗ Thị Thanh Tuyền

Sinh viên thực hiện:
20522101 – Phan Thanh Tú
20522110 – Hồng Đình Anh Tuấn

TP. HỒ CHÍ MINH, 2023


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

BÁO CÁO ĐỒ ÁN 1
XÂY DỰNG ỨNG DỤNG DI ĐỘNG
MUA BÁN VÀ QUẢN LÝ CỬA HÀNG NỘI THẤT

Giảng viên hướng dẫn: TS. Đỗ Thị Thanh Tuyền

Sinh viên thực hiện:
20522101 – Phan Thanh Tú


20522110 – Hồng Đình Anh Tuấn

TP. HỒ CHÍ MINH, 2023


NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

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

Tp.HCM, ngày ... tháng ... năm 2023
Giảng viên hướng dẫn

TS. Đỗ Thị Thanh Tuyền


LỜI CẢM ƠN

Trước hết, nhóm chúng em xin gửi lời cảm ơn đến Trường Đại học Công nghệ
thông tin – Đại học Quốc gia TP.HCM và các thầy cô là giảng viên của khoa Công
nghệ phần mềm đã tạo điều kiện để chúng em hồn thành đồ án mơn học – Chủ đề
Ứng dụng mua và quản lý cửa hàng nội thất.
Chúng em xin gửi lời cảm ơn chân thành và sâu sắc đến cô Đỗ Thị Thanh
Tuyền là giảng viên hướng dẫn trực tiếp và trang bị cho chúng em có những kiến thức
căn bản vững chắc để thực hiện đồ án này.
Trong khoảng thời gian thực hiện đồ án, nhóm chúng em đã học hỏi thêm được
nhiều kiến thức, kinh nghiệm, biết được thêm về nhiều công nghệ mới. Chúng em đã
vận dụng những kiến thức nền tảng được tích lũy đồng thời kết hợp với việc học hỏi
và nghiên cứu những kiến thức mới. Từ đó, chúng em vận dụng tối đa những gì đã
được học để hoàn thành báo cáo đồ án này.
Tuy nhiên, trong quá trình thực hiện, chúng em khơng tránh khỏi cịn có những
thiếu sót. Chính vì vậy, chúng em rất mong nhận được góp ý từ phía thầy, cơ nhằm
hồn thiện những kiến thức, kĩ năng và là hành trang để chúng em thực hiện tiếp các
đề tài khác trong tương lai.
Xin chân thành cảm ơn cô!

Tp.HCM, ngày ... tháng ... năm 2023
Sinh viên thực hiện
Hồng Đình Anh Tuấn - Phan Thanh Tú


MỤC LỤC
DANH MỤC HÌNH ẢNH ........................................................................................10
DANH MỤC BẢNG .................................................................................................13
TĨM TẮT ĐỒ ÁN....................................................................................................15
Chương 1.

TỔNG QUAN ĐỒ ÁN ......................................................................17


1.1. Lý do chọn đề tài .........................................................................................17
1.2. Mục đích ......................................................................................................17
1.3. Đối tượng .....................................................................................................18
1.4. Phạm vi nghiên cứu .....................................................................................18
1.5. Tổng quan về đồ án .....................................................................................19
1.5.1.

Tên đồ án ...........................................................................................19

1.5.2.

Quy trình thực hiện đồ án ..................................................................19

1.5.3.

Link....................................................................................................20

Chương 2.

CƠ SỞ LÝ THUYẾT ........................................................................21

2.1. TypeScript ...................................................................................................21
2.1.1.

Tổng quan về TypeScript ..................................................................21

2.1.2.

Ưu điểm .............................................................................................22


2.1.3.

Nhược điểm .......................................................................................23

2.2. React Native ................................................................................................23
2.2.1.

Giới thiệu về React Native ................................................................23

2.2.2.

Ưu điểm .............................................................................................24

2.2.3.

Nhược điểm .......................................................................................25

2.3. Python ..........................................................................................................25
2.3.1.

Giới thiệu về Python ..........................................................................25


2.3.2.

Ưu điểm .............................................................................................26

2.3.3.


Nhược điểm .......................................................................................27

2.4. Django và Django Rest Framework ............................................................27
2.4.1.

Django ...............................................................................................27

2.4.2.

Django Rest Framework ....................................................................29

2.5. PostgreSQL ..................................................................................................30
2.5.1.

Giới thiệu về PostgreSQL .................................................................30

2.5.2.

Ưu điểm .............................................................................................31

2.5.3.

Nhược điểm .......................................................................................31

2.6. Web scraper với BeautifulSoup4 và Selenium Chromedriver ....................32
2.7. Hệ thống khuyến nghị tích hợp với Recombee ...........................................32
2.7.1.

Khái niệm ..........................................................................................32


2.7.2.

Phân loại các hệ thống khuyến nghị ..................................................33

2.7.3.

Recombee – Recommender as a service ...........................................35

2.8. Hệ thống thanh tốn tích hợp PayPal ..........................................................36
2.8.1.

Giới thiệu ...........................................................................................36

2.8.2.

PayPal sandbox ..................................................................................36

2.8.3.

REST APIs ........................................................................................37

Chương 3.

PHÂN TÍCH THIẾT KẾ HỆ THỐNG .............................................39

3.1. Kiến trúc tổng quan .....................................................................................39
3.2. Kiến trúc chi tiết phía server .......................................................................40
3.3. Yêu cầu chức năng ......................................................................................42
3.3.1.


Usecase diagram ................................................................................42

3.3.2.

Mô tả chi tiết các usecase ..................................................................44


3.3.2.1. Xem danh mục ...............................................................................44
3.3.2.2. Tìm kiếm và lọc .............................................................................44
3.3.2.3. Xem chi tiết sản phẩm ...................................................................45
3.3.2.4. Đánh giá sản phẩm.........................................................................45
3.3.2.5. Thêm sản phẩm vào giỏ hàng ........................................................46
3.3.2.6. Thanh toán .....................................................................................46
3.3.2.7. Thêm sản phẩm vào danh mục yêu thích ......................................47
3.3.2.8. Sản phẩm phổ biến.........................................................................48
3.3.2.9. Quản lý tài khoản ...........................................................................48
3.3.2.10. Quản lý đơn hàng - Customer ......................................................49
3.3.2.11. Quản lý đơn hàng - admin ...........................................................49
3.3.2.12. Quản lý sản phẩm ........................................................................50
3.3.2.13. Quản lý danh mục ........................................................................51
3.3.2.14. Quản lý voucher ...........................................................................51
3.3.2.15. Quản lý quảng cáo .......................................................................52
3.3.3.

Một vài activity diagram ...................................................................53

3.3.3.1. Thêm sản phẩm vào giỏ hàng ........................................................53
3.3.3.2. Thêm sản phẩm vào danh mục yêu thích ......................................54
3.3.3.3. Tạo một đơn hàng ..........................................................................55
3.3.3.4. Cập nhật thông tin người dùng ......................................................56

3.4. Thiết kế cơ sở dữ liệu ..................................................................................57
3.4.1.

Database schema ...............................................................................57

3.4.2.

Mô tả chi tiết các bảng ......................................................................60

3.4.2.1. Bảng User ......................................................................................60


3.4.2.2. Bảng product ..................................................................................61
3.4.2.3. Bảng order .....................................................................................62
3.4.2.4. Bảng order detail............................................................................63
3.4.2.5. Bảng cart item ................................................................................64
3.4.2.6. Bảng favorite item .........................................................................65
3.4.2.7. Bảng category ................................................................................66
3.4.2.8. Bảng variation ................................................................................66
3.4.2.9. Bảng review ...................................................................................67
3.4.2.10. Bảng voucher ...............................................................................68
3.4.2.11. Bảng used voucher .......................................................................69
3.4.2.12. Bảng address ................................................................................69
3.4.2.13. Bảng payment provider................................................................70
3.4.2.14. Bảng payment ..............................................................................71
Chương 4.

XÂY DỰNG ỨNG DỤNG ...............................................................72

4.1. Screen flow ..................................................................................................72

4.2. Xây dựng ứng dụng phía khách hàng ..........................................................73
4.2.1.

Màn hình bắt đầu ...............................................................................73

4.2.2.

Màn hình đăng nhập - đăng ký ..........................................................74

4.2.3.

Màn hình quên mật khẩu ...................................................................75

4.2.4.

Màn hình trang chủ............................................................................76

4.2.5.

Màn hình chi tiết sản phẩm ...............................................................77

4.2.6.

Màn hình bình luận và đánh giá ........................................................78

4.2.7.

Màn hình giỏ hàng .............................................................................79

4.2.8.


Màn hình giỏ hàng rỗng ....................................................................80


4.2.9.

Màn hình danh sách u thích ...........................................................81

4.2.10.

Màn hình chức năng của người dùng ................................................82

4.2.11.

Màn hình catalog ...............................................................................83

4.2.12.

Màn hình danh mục sản phẩm ...........................................................84

4.2.13.

Màn hình sắp xếp ..............................................................................85

4.2.14.

Màn hình lọc ......................................................................................86

4.2.15.


Màn hình checkout bước 1 - chọn địa chỉ giao hàng ........................87

4.2.16.

Màn hình checkout bước 2 – chọn phương thức thanh tốn .............88

4.2.17.

Màn hình checkout bước 3 – xác nhận thơng tin đặt hàng ................89

4.2.18.

Màn hình đặt hàng thành cơng ..........................................................90

4.2.19.

Màn hình lịch sử đặt hàng .................................................................91

4.2.20.

Màn hình điểm thưởng của người dùng ............................................92

4.2.21.

Màn hình chi tiết đơn đặt hàng ..........................................................93

4.2.22.

Màn hình thơng tin người dùng .........................................................94


4.2.23.

Màn hình danh sách địa chỉ của người dùng .....................................95

4.2.24.

Màn hình thêm địa chỉ mới ...............................................................96

4.2.25.

Màn hình danh sách các phương thức thanh tốn .............................97

4.2.26.

Màn hình thêm phương thức thanh tốn ...........................................98

4.3. Xây dựng ứng dụng phía admin ..................................................................99
4.3.1.

Màn hình chọn tác vụ ........................................................................99

4.3.2.

Màn hình quản lý sản phẩm ............................................................100

4.3.3.

Màn hình quản lý danh mục ............................................................101

4.3.4.


Màn hình quản lý voucher ...............................................................102

4.3.5.

Màn hình quản lý thơng tin sản phẩm .............................................103


4.3.6.

Màn hình quản lý chi tiết danh mục ................................................104

4.3.7.

Màn hình quản lý chi tiết voucher ...................................................105

4.3.8.

Màn hình quản lý các đơn đặt hàng ................................................106

4.3.9.

Màn hình thơng tin chi tiết đơn đặt hàng ........................................107

4.3.10.

Màn hình thống kế số liệu mua sắm của khách hàng ......................108

4.3.11.


Màn hình quản lý thơng tin admin ..................................................109

4.4. Scrape dữ liệu và đổ dữ liệu vào database của hệ thống ...........................109
4.5. Hệ thống khuyến nghị sản phẩm sử dụng Recombee................................112
4.5.1.

Tổng quan về cách hoạt động của Recombee .................................112

4.5.2.

Áp dụng vào đồ án...........................................................................113

4.5.2.1. Xây dựng Source Data .................................................................113
4.5.2.2. Thực hiện tạo các khuyến nghị ....................................................118
4.6. Hệ thống thanh tốn tích hợp PayPal ........................................................119
4.6.1.

Các APIs sử dụng ............................................................................119

4.6.1.

Áp dụng vào đồ án...........................................................................120

Chương 5.

KẾT LUẬN .....................................................................................122

5.1. Ưu điểm: ....................................................................................................122
5.2. Nhược điểm: ..............................................................................................123
5.3. Hướng phát triển: .......................................................................................124

TÀI LIỆU THAM KHẢO .......................................................................................126


DANH MỤC HÌNH ẢNH
Hình 2.1 TypeScript ..................................................................................................22
Hình 2.2 React Native ...............................................................................................24
Hình 2.3 Python ........................................................................................................26
Hình 2.4 Django ........................................................................................................28
Hình 2.5 Django Rest Framework ............................................................................30
Hình 2.6 PostgeSQL ..................................................................................................31
Hình 2.7 Các hệ thống khuyến nghị ..........................................................................33
Hình 2.8 Recombee ...................................................................................................36
Hình 3.1 Kiến trúc tổng quan - Client - Server .........................................................39
Hình 3.2 Chi tiết kiến trúc phía server ......................................................................40
Hình 3.3 Usecase diagram ........................................................................................42
Hình 3.4 Activity diagram thêm sản phẩm vào giỏ hàng ..........................................53
Hình 3.5 Activity diagram thêm sản phẩm vào danh mục u thích.........................54
Hình 3.6 Activity diagram tạo một đơn hàng ............................................................55
Hình 3.7 Activity diagram cập nhật thơng tin người dùng .......................................56
Hình 3.8 Database schema .......................................................................................57
Hình 3.9 Chi tiết database – 1 ..................................................................................58
Hình 3.10 Chi tiết database - 2 .................................................................................59
Hình 4.1 Screen flow .................................................................................................72
Hình 4.2 Màn hình bắt đầu .......................................................................................73
Hình 4.3 Màn hình đăng nhập - đăng ký ..................................................................74
Hình 4.4 Màn hình quên mật khẩu ............................................................................75
Hình 4.5 Màn hình trang chủ ....................................................................................76
Hình 4.6 Màn hình chi tiết sản phẩm ........................................................................77
Hình 4.7 Màn hình bình luận và đánh giá ................................................................78
Hình 4.8 Màn hình giỏ hàng .....................................................................................79

Hình 4.9 Màn hình điểm thưởng ...............................................................................80
Hình 4.10 Màn hình giỏ hàng rỗng...........................................................................81

10


Hình 4.11 Màn hình chức năng của người dùng ......................................................82
Hình 4.12 Màn hình catalog .....................................................................................83
Hình 4.13 Màn hình danh mục sản phẩm .................................................................84
Hình 4.14 Màn hình sắp xếp .....................................................................................85
Hình 4.15 Màn hình lọc ............................................................................................86
Hình 4.16 Màn hình checkout bước 1 - chọn địa chỉ giao hàng ...............................87
Hình 4.17 Màn hình checkout bước 2 – chọn phương thức thanh tốn ...................88
Hình 4.18 Màn hình checkout bước 3 – xác nhận thơng tin đặt hàng ......................89
Hình 4.19 Màn hình đặt hàng thành cơng ................................................................90
Hình 4.20 Màn hình lịch sử đặt hàng .......................................................................91
Hình 4.21 Màn hình điểm thưởng .............................................................................92
Hình 4.22 Màn hình chi tiết đơn đặt hàng ................................................................93
Hình 4.23 Màn hình thơng tin người dùng ...............................................................94
Hình 4.24 Màn hình danh sách địa chỉ của người dùng ...........................................95
Hình 4.25 Màn hình thêm địa chỉ mới ......................................................................96
Hình 4.26 Màn hình danh sách các phương thức thanh tốn ...................................97
Hình 4.27 Màn hình thêm phương thức thanh tốn ..................................................98
Hình 4.28 Màn hình chọn tác vụ ...............................................................................99
Hình 4.29 Màn hình quản lý sản phẩm ...................................................................100
Hình 4.30 Màn hình quản lý danh mục ...................................................................101
Hình 4.31 Màn hình quản lý voucher .....................................................................102
Hình 4.32 Màn hình thêm phương thức thanh tốn ................................................103
Hình 4.33 Màn hình quản lý chi tiết danh mục .......................................................104
Hình 4.34 Màn hình quản lý chi tiết voucher .........................................................105

Hình 4.35 Màn hình quản lý các đơn đặt hàng.......................................................106
Hình 4.36 Màn hình thơng tin chi tiết đơn đặt hàng...............................................107
Hình 4.37 Màn hình thống kế số liệu mua sắm của khách hàng ............................108
Hình 4.38 Màn hình quản lý thơng tin admin .........................................................109
Hình 4.39 Trang web IKEA .....................................................................................110

11


Hình 4.40 Trích xuất dữ liệu biến thể .....................................................................111
Hình 4.41 Trích xuất dữ liệu sản phẩm...................................................................112
Hình 4.42 Các giai đoạn chính khi sử dụng Recombee ..........................................113
Hình 4.43 Database trong Recombee .....................................................................114
Hình 4.44 Một số thuộc tính của sản phẩm ............................................................115
Hình 4.45 API View dùng để tạo sản phẩm ............................................................116
Hình 4.46 Một số thuộc tính của người dùng .........................................................117
Hình 4.47 Mức độ hoàn thiện của dữ liệu ..............................................................118

12


DANH MỤC BẢNG
Bảng 3.1 Bảng mô tả usecase ...................................................................................42
Bảng 3.2 Bảng mô tả usecase xem danh mục ...........................................................44
Bảng 3.3 Bảng mơ tả usecase tìm kiếm và lọc ..........................................................44
Bảng 3.4 Bảng mô tả usecase xem chi tiết sản phẩm ...............................................45
Bảng 3.5 Bảng mô tả usecase đánh giá sản phẩm ....................................................45
Bảng 3.6 Bảng mô tả usecase thêm sản phẩm vào giỏ hàng ....................................46
Bảng 3.7 Bảng mơ tả usecase thanh tốn .................................................................46
Bảng 3.8 Bảng mô tả usecase thêm sản phẩm vào danh mục u thích ...................47

Bảng 3.9 Bảng mơ tả usecase sản phẩm phổ biến ....................................................48
Bảng 3.10 Bảng mô tả usecase quản lý tài khoản ....................................................48
Bảng 3.11 Bảng mô tả usecase quản lý đơn hàng – customer..................................49
Bảng 3.12 Bảng mô tả usecase quản lý đơn hàng - admin .......................................49
Bảng 3.13 Bảng mô tả usecase quản lý sản phẩm ....................................................50
Bảng 3.14 Bảng mô tả usecase quản lý danh mục ....................................................51
Bảng 3.15 Bảng mô tả usecase quản lý voucher.......................................................51
Bảng 3.16 Bảng mô tả usecase quản lý quảng cáo ...................................................52
Bảng 4.1 User............................................................................................................60
Bảng 4.2 Product ......................................................................................................61
Bảng 4.3 Order..........................................................................................................62
Bảng 4.4 Order detail ...............................................................................................63
Bảng 4.5 Cart item ....................................................................................................64
Bảng 4.6 Favorite item ..............................................................................................65
Bảng 4.7 Category ....................................................................................................66
Bảng 4.8 Variation ....................................................................................................66
Bảng 4.9 Review ........................................................................................................67
Bảng 4.10 Voucher ....................................................................................................68
Bảng 4.11 Used voucher ...........................................................................................69
Bảng 4.12 Address ....................................................................................................69

13


Bảng 4.13 Payment provider.....................................................................................70
Bảng 4.14 Payment ...................................................................................................71

14



TÓM TẮT ĐỒ ÁN
Đồ án "Xây dựng ứng dụng mua bán và quản lý cửa hàng nội thất tích hợp hệ
thống khuyến nghị và hệ thống thanh toán" nhằm tạo ra một ứng dụng thúc đẩy trải
nghiệm mua sắm và quản lý cửa hàng nội thất hiệu quả.
Ứng dụng được thiết kế nhằm cung cấp một giao diện trực quan và dễ sử dụng
cho người dùng. Khách hàng có thể duyệt qua danh mục sản phẩm nội thất, tìm kiếm
theo nhu cầu và sở thích cá nhân. Để tăng tính cá nhân hóa, hệ thống khuyến nghị sẽ
đề xuất các sản phẩm phù hợp dựa trên thông tin về sở thích và lịch sử mua hàng của
khách hàng.
Trong q trình mua sắm, khách hàng có thể thêm sản phẩm vào giỏ hàng và
thực hiện thanh tốn thơng qua hệ thống thanh tốn tích hợp được cung cấp bởi
PayPal, sử dụng hình thức thanh tốn là ví điện tử PayPal hoặc thẻ thanh toán quốc
tế. Đồ án cũng tập trung vào việc quản lý cửa hàng nội thất. Hệ thống quản lý cung
cấp chức năng theo dõi hàng tồn kho, quản lý đơn hàng, thông tin khách hàng và
doanh thu.
Nhờ việc lên kế hoạch hiệu quả, phân tích và thiết kế hệ thống rõ ràng, nhóm
đã phát triển thành cơng ứng dụng trong thời gian cho phép. Một số công nghệ mà
nhóm sử dụng là React Native và TypeScript, một framework phát triển ứng dụng di
động đa nền tảng, kết hợp với việc xây dựng phần back-end bằng Python, sử dụng
các framework như Django và Django Rest Framework để xây dựng API cho ứng
dụng. PostgreSQL được sử dụng làm hệ quản trị cơ sở dữ liệu.
Nhóm đã tận dụng một số dịch vụ bên thứ ba để tích hợp vào hệ thống:
Recombee được sử dụng làm hệ thống khuyến nghị. PayPal được tích hợp để xử lý
thanh tốn an tồn và tiện lợi cho khách hàng. Render và AWS (Amazon Web
Services) được sử dụng để triển khai và cung cấp môi trường hoạt động cho ứng dụng.
Trong quá trình thực hiện đồ án, nhóm cũng đã tiến hành kiểm thử unit testing song
song với việc phát triển, đồng thời triển khai kiểm thử end-to-end test để đảm bảo sự
hoạt động ổn định của ứng dụng này.

15



Báo cáo này gồm 127 trang và được chia thành 5 chương chính:
Chương 1 nhóm mở đầu với việc giới thiệu đề tài. Trong chương này sẽ nêu
lên các vấn đề như lý do chọn đề tài, mục đích nghiên cứu, đối tượng sử dụng, phạm
vi nghiên cứu và sau cùng là tổng quan về đồ án với các thông tin như tên đồ án, quy
trình thực hiện và cuối cùng đó là các đường dẫn có liên quan.
Chương 2 tập trung vào việc khái quát cơ sở lý thuyết với nội dung tập trung
vào các cơng nghệ được nhóm sử dụng như TypeScript, React Native, Python, Django
và Django Rest Framework, PostgreSQL, web scraper với BeautifulSoup4 và
Selenium Chromedriver, hệ thống khuyến nghị tích hợp với Recombee –
Recommender as a service và cuối cùng đó là hệ thống thanh tốn tích hợp PayPal.
Chương 3 sẽ đề cập đến quá trình phân tích và thiết kế hệ thống của nhóm
chúng em. Chương này sẽ phân tích các phần như kiến trúc tổng quan, kiến trúc chi
tiết phía server, các yêu cầu chức năng (các chức năng của hệ thống sẽ được làm rõ
với sơ đồ usecase, mô tả chi tiết cho từng usecase và cuối cùng đó là một vài activity
diagram) và thiết kế cơ sở dữ liệu (bao gồm database schema và mô tả chi tiết cho
các bảng trong database).
Chương 4 tập trung và việc thiết kế và xây dựng ứng dụng, cung cấp một cái
nhìn tổng quan về giao diện trong ứng dụng và giới thiệu chi tiết các màn hình được
xây dựng. Trong chương này cũng thể hiện quá trình xây dựng các tính năng trong
hệ thống, bao gồm: hệ thống khuyến nghị với Recombee và thanh toán trực tuyến với
PayPal. Đồng thời trong chương này cũng đề cập đến việc scrape dữ liệu mẫu từ
IKEA.
Chương 5 là phần kết luận của dự án. Phần này sẽ nếu lên các ưu điểm, nhược
điểm của dự án và cuối cùng là các đề xuất phát triển dự án trong tương lai.

16



Chương 1.
1.1.

TỔNG QUAN ĐỒ ÁN

Lý do chọn đề tài

Đồ nội thất là những vật dụng không thể thiếu trong mỗi gia đình, từ những
vật dụng trang trí như tranh ảnh cho đến những thứ phục vụ đời sống hằng ngày như
bàn ghế,... nhu yếu sử dụng chúng ln ln có. Với sức tăng trưởng kinh tế tài chính,
mức sống người dân ngày càng được nâng cao và nhu yếu tiêu tốn cũng do đó mà
tăng lên. Hiện nay người tiêu dùng đã mạnh dạn tiêu tốn hơn kèm theo đó là yêu cầu
của người dùng về các loại đồ nội thất như ghế ngồi, bàn, giường, tủ đựng áo quần,
tủ sách, tủ chè, chạn, đồng hồ treo tường…. ngày càng cao góp phần thúc đẩy thị
trường đồ nội thất Việt Nam sôi nổi hơn bao giờ hết.
Sự đa dạng của các mặt hàng ngày càng tăng, nhu cầu của người dùng ngày
càng cao. Các phiên hợp chợ, các cửa hàng với diện tích có giới hạn nay đã khơng
cịn thỏa mãn nhu cầu của người tiêu dùng cũng như người bán. Người tiêu dùng
mong muốn được có được một nơi để có thể thỏa thích khám phá, tìm tịi, lựa chọn,
so sánh thứ mình muốn mua mọi lúc, mọi nơi, bất cứ khi nào họ có thời gian rảnh và
ở bất cứ đâu. Người bán cần một nơi có thể giới thiệu tất cả sản phẩm của mình đến
đơng đảo người tiêu dùng, cũng như là quản lý các sản phẩm và có thể phản hồi đến
khách hàng một cách nhanh nhất, tiện lợi nhất. Và cả hai đều mong muốn quá trình
mua bán được diễn ra thuận lợi, an tồn, nhanh chóng, kèm theo đó là cảm giác an
tâm khi tiến hành giao dịch.
Đó chính là lý do chúng em muốn xây dựng một ứng dụng di động cho phép
mua bán và quản lý cửa hàng đồ nội thất. Đó cũng chính là đề tài của nhóm em.
1.2.

Mục đích


• Cung cấp cho người tiêu dùng một nền tảng có thể tìm kiếm sản phẩm mình
mong muốn, xem thơng tin chi tiết cũng như đánh giá về sản phẩm và đặt
hàng.

17


• Cung cấp cho người bán một môi trường để có thể quản lý tốt hơn về kho
hàng, theo dõi dữ liệu bán hàng và khách hàng, và thực hiện quyết định thơng
minh về chiến lược sản xuất và marketing.
• Tăng hiệu suất và giảm thời gian chờ cho khách hàng khi đặt hàng.
• Cung cấp dữ liệu quan trọng về sở thích và xu hướng của khách hàng cho
doanh nghiệp.
• Cung cấp một trải nghiệm trực tuyến tốt hơn cho khách hàng.
1.3.

Đối tượng

• Khách hàng: Những đối tượng chính của ứng dụng, là người trực tiếp tham gia
vào quá trình mua bán trên hệ thống.
• Nhân viên: Những nhân viên của cửa hàng. Họ chịu trách nhiệm cho việc quản
lý các đơn hàng cũng như sản phẩm.
• Admin: Quản trị viên hệ thống. Có nhiệm vụ phân quyền, xem các báo cáo về
cửa hàng.
1.4.

Phạm vi nghiên cứu

• Nền tảng hỗ trợ: triển khai trên thiết bị di động đa nền tảng (cross-platform)

• Chức năng:
o Khách hàng:
▪ Xem sản phẩm theo danh mục.
▪ Tìm kiếm và lọc sản phẩm.
▪ Nhận gợi ý về các sản phẩm dựa trên hệ thống khuyến nghị.
▪ Xem thông tin sản phẩm.
▪ Đánh giá sản phẩm
▪ Thêm vào danh sách yêu thích.
▪ Thêm vào giỏ hàng.
▪ Tiến hành đặt hàng và thanh toán.
▪ Theo dõi trạng thái đơn hàng.

18


▪ Theo dõi lịch sử đặt hàng.
▪ Quản lý thông tin cá nhân.
o Nhân viên cửa hàng:
▪ Truy cập thông tin và cập nhật trạng thái đơn hàng.
▪ Cập nhật thông tin sản phẩm và quản lý hàng tồn kho.
▪ Quản lý các danh mục và sản phẩm trong danh mục.
▪ Quản lý các chương trình khuyến mãi, mã giảm giá.
o Admin:
▪ Quản lý tất cả tài khoản và quyền người dùng.
▪ Xem thống kê của cửa hàng
▪ Thực hiện nhiệm vụ bảo trì.
1.5.

Tổng quan về đồ án


1.5.1.

Tên đồ án

Evaware - Ứng dụng mua bán và quản lý cửa hàng nội thất tích hợp hệ
thống khuyến nghị.
1.5.2.

Quy trình thực hiện đồ án

o Bước 1: Xác định yêu cầu
▪ Tiến hành phân tích yêu cầu.
▪ Nghiên cứu và phân tích thị trường cửa hàng nội thất.
▪ Xác định phạm vi và các tính năng cần triển khai trong ứng dụng.
▪ Tham khảo một số ứng dụng liên quan.
o Bước 2: Thiết kế hệ thống
▪ Vẽ sơ đồ Use-case và các biểu đồ khác để phân tích hệ thống.
▪ Thiết kế kiến trúc hệ thống.
▪ Thiết kế cơ sở dữ liệu.
▪ Thiết kế giao diện người dùng.
o Bước 3: Hiện thực

19


▪ Sử dụng React Native để xây dựng giao diện người dùng trên đa
nền tảng.
▪ Sử dụng Python, framework Django và Django Rest Framework
để xây dựng API.
▪ Sử dụng PostgreSQL làm hệ quản trị cơ sở dữ liệu.

▪ Tích hợp một số dịch vụ bên thứ ba để hoàn thiện hệ thống.
o Bước 4: Kiểm thử
▪ Thực hiện unit testing song song quá trình phát triển.
▪ Thực hiện end-to-end testing vào cuối giai đoạn phát triển.
o Bước 5: Triển khai
▪ Triển khai trên dịch vụ Render.
▪ Đảm bảo tích hợp và kết nối với các dịch vụ bên ngoài như
Recombee, PayPal và Amazon Web Service.
o Bước 6: Bảo trì
▪ Tiếp tục vận hành và bảo trì hệ thống.
1.5.3.

Link

o Mobile: />o Back-end: />o Deployment: />
20


Chương 2.
2.1.

CƠ SỞ LÝ THUYẾT

TypeScript

2.1.1.

Tổng quan về TypeScript

TypeScript là một ngơn ngữ lập trình được phát triển bởi Microsoft. Nó khơng

thực sự là một ngơn ngữ hồn tồn mới, mà là một phiên bản mở rộng hơn so với
JavaScript đơn thuần.
So với JavaScript thơng thuần, TypeScript có thêm tính năng static-type (kiểu
dữ liệu tĩnh). TypeScript sẽ gợi ý và thông báo lỗi cho đoạn code của chúng ta, từ đó
hạn chế lỗi và đẩy nhanh quá trình phát triển phần mềm.
Một trong những tính năng của TypeScript là type inference (suy luận kiểu,
hay tự xác định kiểu). Tức là TypeScript sẽ tự động xác định kiểu dữ liệu nếu có thể.
Tất nhiên TypeScript cũng hỗ trợ chúng ta khai báo kiểu dữ liệu nếu muốn.
Ngoài ra, TypeScript hỗ trợ các tính năng quan trọng khác như kế thừa các
type, interfaces, giúp tăng tính mơ-đun hóa và tái sử dụng mã nguồn.
TypeScript cung cấp trình biên dịch (compiler) riêng để chuyển đổi mã nguồn
TypeScript thành JavaScript thuần, có thể chạy trên mơi trường trình duyệt hoặc máy
chủ. Điều này đảm bảo khả năng tương thích ngược với các phiên bản JavaScript hiện
có và cho phép ta tích hợp TypeScript vào các dự án web sẵn có một cách dễ dàng.

21


Hình 2.1 TypeScript
2.1.2.

Ưu điểm

• Type checking: TypeScript cho phép kiểm tra kiểu dữ liệu tại thời điểm biên
dịch, giúp phát hiện lỗi và đưa ra các gợi ý (như gợi ý về các thuộc tính trong
object).
• Type inference: TypeScript sẽ tự động xác định kiểu dữ liệu nếu có thể. Tất
nhiên TypeScript cũng hỗ trợ chúng ta khai báo kiểu dữ liệu nếu muốn.
• Mơ-đun hóa: TypeScript cho phép tạo các mô-đun, chia mã nguồn ra những
phần nhỏ hơn, giúp dễ dàng quản lý và tái sử dụng chúng...

• Tương thích ngược: Bản chất TypeScript khi biên dịch vẫn là một đoạn code
JavaScript, vậy nên nó có thể đáp ứng được việc tương thích với các phiên bản
JavaScript trước đó trên trình duyệt.
• Nhiều cơng cụ hỗ trợ: TypeScript được phát triển bởi chính Microsoft, điều
này đảm bảo nó sẽ được hỗ trợ và cập nhật đều đặn từ Microsoft. Đồng thời,
TypeScript có một cộng đồng cực đơng đảo người sử dụng, nên các tiện ích
và thư viện rất phong phú và đa dạng.

22


2.1.3.

Nhược điểm

• Khó hơn khi mới sử dụng: Do TypeScript có cú pháp phức tạp hơn JavaScript,
việc thiết lập và bắt đầu một dự án có thể mất thời gian hơn so với JavaScript.
• Nhiều kiến thức mới: Các kiểu dữ liệu và cú pháp trong TypeScript có thể sẽ
gây khó khăn cho người mới học.
• Dung lượng tăng: Vì TypeScript sử dụng kiểu dữ liệu tĩnh, việc khai báo kiểu
dữ liệu và các thông tin liên quan sẽ làm tăng dung lượng của mã nguồn so với
JavaScript thuần. Đồng thời, vì bản chất khi TypeScript biên dịch ra là
JavaScript, vậy nên thơng thường nó sẽ tốn thêm một khoảng thời gian cho
việc này.
2.2.

React Native

2.2.1.


Giới thiệu về React Native

React Native là một framework phát triển ứng dụng di động đa nền tảng (crossplatform) được phát triển bởi Facebook. React Native sử dụng JavaScript để xây dựng
ứng dụng di động chạy trên nền tảng Android lẫn iOS. Với React Native, ta có thể
giảm bớt thời gian và cơng sức cần thiết để phát triển thay vì duy trì hai dự án riêng
biệt cho mỗi nền tảng. Điều này giúp tiết kiệm tài ngun và tăng tính hiệu quả trong
q trình phát triển ứng dụng di động.
Tương tự với React, React Native cũng là component-based (dựa trên các
thành phần), nó cho phép ta tạo ra các component nhỏ lẻ trong hệ thống, từ đó đảm
bảo tính tái sử dụng.
Một trong những lợi ích quan trọng của React Native là khả năng sử dụng các
thành phần giao diện được viết bằng ngôn ngữ native như Swift cho iOS và
Java/Kotlin cho Android. Điều này cho phép ta tận dụng các tính năng và hiệu năng
của nền tảng native mà không cần viết cho từng nền tảng riêng biệt. React Native
cũng có cộng đồng lớn và mạnh mẽ, với nhiều thư viện và công cụ hỗ trợ.

23


Hình 2.2 React Native
2.2.2.

Ưu điểm

• Phát triển đa nền tảng: React Native cho phép phát triển ứng dụng di động cho
cả iOS và Android dùng một mã nguồn duy nhất, giúp tiết kiệm thời gian và
cơng sức.
• Tương thích ngược: React Native cho phép tích hợp các thành phần giao diện
native viết bằng ngôn ngữ Swift (iOS) và Java/Kotlin (Android), nghĩa là ta
hồn tồn có thể sử dụng ngơn ngữ khác trong dự án để sử dụng các tính năng

riêng biệt của từng nền tảng khác nhau.
• Tăng tốc độ phát triển: Kiến trúc dạng component-based, các thành phần trong
React Native đảm bảo dễ dàng phát triển và tái sử dụng.
• Cộng đồng mạnh mẽ: React Native có một cộng đồng rất lớn, đông đảo và
nhiều tài liệu hướng dẫn, thư viện cũng như cơng cụ hỗ trợ.
• Hiệu năng tốt: Mặc dù không thể mạnh bằng ứng dụng native hoàn toàn, nhưng
React Native vẫn đảm bảo một hiệu suất tương đối tốt.

24


×