15 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ắ
Trang 1ĐẠ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 – Hoàng Đình Anh Tuấn
TP HỒ CHÍ MINH, 2023
Trang 2ĐẠ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 – Hoàng Đình Anh Tuấn
TP HỒ CHÍ MINH, 2023
Trang 3NHẬ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
Trang 4LỜ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 hoà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 hoà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
Hoàng Đình Anh Tuấn - Phan Thanh Tú
Trang 5MỤ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
Trang 62.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 toá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
Trang 73.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
Trang 83.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
Trang 94.2.9 Màn hình danh sách yê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 toá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 toán 97
4.2.26 Màn hình thêm phương thức thanh toá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
Trang 104.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 toá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
Trang 1110
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 yê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
Trang 1211
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 toá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 toán 97
Hình 4.27 Màn hình thêm phương thức thanh toá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 toá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
Trang 1312
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
Trang 1413
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 toán 46
Bảng 3.8 Bảng mô tả usecase thêm sản phẩm vào danh mục yê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
Trang 1514
Bảng 4.13 Payment provider 70 Bảng 4.14 Payment 71
Trang 1615
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 quá 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 toán thông qua hệ thống thanh toán tích hợp được cung cấp bởi PayPal, sử dụng hình thức thanh toá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 toán an toà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
Trang 1716
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 toá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
Trang 18tủ 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 toà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
Trang 1918
• 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
▪ 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
Trang 2019
▪ 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ì
▪ 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
▪ 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
Trang 21▪ 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
▪ 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
▪ 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
Trang 22So 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
Trang 23• 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
Trang 24• 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 platform) đượ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 nguyên và tăng tính hiệu quả trong quá trình phát triển ứng dụng di động
(cross-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ợ
Trang 2524
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 hoàn toà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
Trang 2625
2.2.3 Nhược điểm
• Giới hạn đa nền tảng: Có một số tính của các nền tảng không được hỗ trợ hoàn toàn trong React Native, đòi hỏi phải sử dụng các thư viện bên thứ ba hoặc tự viết mã native để tích hợp vào ứng dụng
• Cần nhiều kiến thức: Để phát triển ứng dụng React Native, không chỉ cần kiến thức về JavaScript, mà nhà phát triển còn cần kiến thức về React vì React Native có thể coi là dựa trên React
• Quản lý dependencies (phụ thuộc): Sử dụng các thư viện và module bên thứ
ba có thể gây khó khăn trong việc quản lý phụ thuộc và đảm bảo tính ổn định của ứng dụng
2.3 Python
2.3.1 Giới thiệu về Python
Python là một ngôn ngữ lập trình thông dịch, được tạo ra bởi Guido van Rossum và được phát hành lần đầu vào năm 1991, Python đã trở thành một trong những ngôn ngữ phổ biến nhất trên thế giới Python có cú pháp rõ ràng, dễ đọc và dễ hiểu, giúp các nhà phát triển dễ dàng phát triển mã nguồn và ứng dụng của mình Nó
hỗ trợ nhiều phương pháp lập trình như lập trình hướng đối tượng, lập trình hàm và lập trình cấu trúc, cho phép ta áp dụng các phong cách lập trình khác nhau để giải quyết các vấn đề khác nhau
Một trong những ưu điểm nổi bật của Python là sự phong phú và đồ sộ của các thư viện và frameworks Python có một cộng đồng phát triển mạnh mẽ, cung cấp hàng ngàn thư viện chất lượng cao cho các mục đích khác nhau như phân tích dữ liệu, máy học, phát triển ứng dụng web, đồ họa, xử lý ảnh, Điều này giúp cho việc phát triển ứng dụng Python trở nên nhanh chóng và tiết kiệm rất nhiều thời gian Python cũng
có khả năng tương thích cao với các hệ thống khác và dễ dàng tích hợp với các ngôn ngữ lập trình khác Nó có thể chạy trên nhiều nền tảng, bao gồm Windows, macOS, Linux và cả các hệ điều hành nhúng
Trang 27• Đa năng và đa nền tảng: Python có thể sử dụng để phát triển các loại ứng dụng
đa dạng như ứng dụng web, phân tích dữ liệu, trí tuệ nhân tạo, game, IoT,
Nó cũng tương thích với các hệ điều hành phổ biến như Windows, macOS và Linux
• Thư viện và frameworks phong phú: Python có một cộng đồng phát triển lớn
và kho thư viện đồ sộ, cung cấp các công cụ và frameworks mạnh mẽ cho nhiều lĩnh vực khác nhau như khoa học dữ liệu (numpy, pandas), máy học (scikit-learn, TensorFlow), web development (Django, Flask), đồ họa (Matplotlib, Pygame) và nhiều lĩnh vực khác
Trang 28là trong các ứng dụng yêu cầu xử lý dữ liệu lớn
• Giới hạn trong phát triển ứng dụng di động: Mặc dù Python có thể được sử dụng để phát triển ứng dụng di động thông qua các frameworks như Kivy hoặc BeeWare, nhưng nó không phải là sự lựa chọn phổ biến nhất cho việc phát triển ứng dụng di động so với các ngôn ngữ như Objective-C/Swift (cho iOS), Java/Kotlin (cho Android), hay React Native/Flutter (cho cross-platform)
2.4 Django và Django Rest Framework
2.4.1 Django
Django là một framework phát triển ứng dụng web mạnh mẽ và linh hoạt, được viết bằng ngôn ngữ lập trình Python Nó được tạo ra để giúp nhà phát triển xây dựng các ứng dụng web phức tạp một cách nhanh chóng và dễ dàng Django tuân thủ mô hình MVC (Model-View-Controller) và tập trung vào việc giảm bớt đoạn code lặp (tuân thủ rất tốt DRY – Don’t Repeat Yourself) Nó cung cấp một framework (khung
dự án), các thành phần và một số tính năng mạnh mẽ để giúp tăng tốc quá trình phát triển ứng dụng
Một số đặc điểm nổi bật của Django:
• Cú pháp rõ ràng và dễ đọc: Django sử dụng cú pháp rõ ràng và ngắn gọn, giúp cho việc đọc và viết mã trở nên dễ dàng và dễ hiểu
Trang 2928
• Cấu trúc dự án chuẩn: Django cung cấp một cấu trúc dự án, giúp tổ chức mã nguồn một cách rõ ràng và dễ quản lý Nó phân chia ứng dụng thành các thành phần riêng biệt như models (Model trong MVC), views (Controller trong MVC) và templates (View trong MVC)
• ORM mạnh mẽ: Django đi kèm với một ORM (Object-Relational Mapping) mạnh mẽ, cho phép tương tác với cơ sở dữ liệu dễ dàng Nó hỗ trợ nhiều loại
cơ sở dữ liệu như PostgreSQL, MySQL, SQLite và Oracle
• Tích hợp sẵn với tính năng bảo mật: Django cung cấp các tính năng bảo mật mạnh mẽ như xác thực người dùng, quản lý session (phiên), bảo vệ khỏi tấn công CSRF và XSS
• Tích hợp dễ dàng với các dịch vụ và công nghệ khác: Django có khả năng tích hợp tốt với các dịch vụ và công nghệ khác như RESTful APIs
Django là một lựa chọn phổ biến cho việc phát triển ứng dụng web, đặc biệt là cho các ứng dụng có tính năng phức tạp và yêu cầu mức độ bảo mật cao Nó được sử dụng rộng rãi trong cộng đồng phát triển và có nhiều tài liệu tài nguyên hỗ trợ đáng tin cậy
Hình 2.4 Django
Trang 3029
2.4.2 Django Rest Framework
Django REST Framework (DRF) là một phần mở rộng mạnh mẽ hơn của Django, được sử dụng để xây dựng các RESTful API dễ dàng và hiệu quả Nó cung cấp một loạt các công cụ và lớp trừu tượng để giúp phát triển các API, đáp ứng các tiêu chuẩn và quy tắc của RESTful
DRF có những đặc điểm chính sau:
• Serializers: DRF cung cấp serializers để chuyển đổi dữ liệu giữa các đối tượng Python và định dạng dữ liệu như JSON hoặc XML Serializers giúp xử lý quá trình xác thực dữ liệu, cung cấp khả năng để dễ dàng tương tác và xử lý giữa các dạng dữ liệu khác nhau
• Viewsets và Routers: DRF cung cấp Viewsets và routers để xử lý các thao tác CRUD (Create, Retrieve, Update, Delete) trên các tài nguyên Viewsets là các lớp trừu tượng giúp tổng quát hoá và tái sử dụng các API, trong khi routers giúp tạo ra các path để liên kết với các Viewsets
• Authentication và Permissions: DRF cung cấp các lớp xác thực và quyền truy cập để bảo vệ API Bằng cách sử dụng các lớp này, ta có thể xác thực người dùng, xác định quyền truy cập dựa trên vai trò và quyền của họ
• Pagination và Filtering: DRF hỗ trợ phân trang API và cho phép lọc dữ liệu dựa trên các thuộc tính của dữ liệu
DRF giúp rút ngắn thời gian phát triển và cung cấp một cách tiếp cận chuẩn mực cho việc xây dựng các RESTful API trong Django Nó được sử dụng rộng rãi trong cộng đồng Django và được đánh giá cao về tính linh hoạt, hiệu suất cũng như phong phú trong các tài liệu
Trang 3130
Hình 2.5 Django Rest Framework
2.5 PostgreSQL
2.5.1 Giới thiệu về PostgreSQL
PostgreSQL, một hệ quản trị cơ sở dữ liệu mã nguồn mở rất phổ biến, được sự rộng rãi và trở thành một trong những hệ quản trị cơ sở dữ liệu hàng đầu trên thế giới Được phát triển bởi một cộng đồng đông đảo và các chuyên gia trong lĩnh vực, PostgreSQL tỏ ra vượt trội với nhiều ưu điểm Một trong những điểm mạnh của PostgreSQL là sự miễn phí và nó cũng là một mã nguồn mở
PostgreSQL cũng hỗ trợ đa nền tảng, cho phép ta triển khai trên nhiều hệ điều hành khác nhau như Windows, macOS và Linux Điều này mang lại sự linh hoạt cho việc triển khai hệ thống cơ sở dữ liệu và cho phép ta chọn nền tảng phù hợp Ngoài
ra, PostgreSQL cũng nổi bật với tính đa dạng tính năng Nó hỗ trợ ACID (Atomicity, Consistency, Isolation, Durability), xử lý truy vấn phức tạp, phân tích dữ liệu
Trang 32• Đa nền tảng: PostgreSQL có khả năng hoạt động trên nhiều hệ điều hành như Windows, macOS và Linux, cho phép ta triển khai trên nền tảng phù hợp với các yêu cầu khác nhau
• Tính linh hoạt và tính mở: PostgreSQL cho phép tuỳ chỉnh mã nguồn để phù hợp với nhu cầu cụ thể của dự án Nó cũng hỗ trợ các tính năng như xử lý truy vấn phức tạp và phân tích dữ liệu
2.5.3 Nhược điểm
• Phức tạp trong việc cấu hình: PostgreSQL đòi hỏi kiến thức và kỹ năng cao hơn để cấu hình và tối ưu hóa Việc thiết lập và quản lý PostgreSQL có thể trở nên phức tạp đối với những người không có kinh nghiệm hoặc kiến thức sâu
về hệ quản trị cơ sở dữ liệu
• Tiêu tốn nhiều tài nguyên: PostgreSQL có thể tiêu thụ nhiều tài nguyên hệ thống, đặc biệt là khi làm việc với các lượng dữ liệu lớn Điều này có thể ảnh hưởng đến hiệu suất khi truy vấn dữ liêu
Trang 3332
2.6 Web scraper với BeautifulSoup4 và Selenium Chromedriver
Web scraping là quá trình tự động thu thập thông tin từ các trang web công cộng trên Internet Điều này giúp ta thu thập dữ liệu cần thiết từ các trang web một cách tự động, thay vì phải làm thủ công
BeautifulSoup4 là một thư viện Python phổ biến được sử dụng để phân tích và trích xuất dữ liệu từ HTML và XML Nó cung cấp các công cụ và phương pháp để phân tích cú pháp của các trang web và lấy ra những phần dữ liệu cần thiết
Với Beautifulsoup4, ta có thể truy cập và tìm kiếm các phần tử HTML, thu thập thông tin từ các thẻ HTML như thẻ div, thẻ span, thẻ p và nhiều thẻ khác Ta có thể trích xuất nội dung văn bản, các liên kết, hình ảnh, bảng dữ liệu và nhiều loại thông tin khác từ trang web
Selenium Chromedriver là một công cụ rất hữu ích trong việc tự động hóa các hoạt động trên trình duyệt Chrome bằng ngôn ngữ lập trình Python Chromedriver cho phép ta tương tác với trình duyệt Bằng cách sử dụng Chromedriver, ta có thể thực hiện các hoạt động như mở trang web, điều hướng giữa các trang, nhập liệu vào các biểu mẫu, nhấp chuột và thu thập dữ liệu từ trang web Selenium Chromedriver
sẽ bù đắp thiếu sót của BeautifulSoup4 (không thể tương tác với nội dung HTML)
2.7 Hệ thống khuyến nghị tích hợp với Recombee
2.7.1 Khái niệm
Hệ thống khuyến nghị (Recommendation system) là một hệ thống giúp dự đoán và đề xuất các sản phẩm, hoặc thông tin mà người dùng có thể quan tâm hoặc thích dựa trên các dữ liệu và thông tin đã thu thập từ trước đó Mục tiêu chính của hệ thống khuyến nghị là cung cấp trải nghiệm cá nhân hóa và tăng cường sự tương tác giữa người dùng và nội dung trong nền tảng Các ưu điểm của hệ thống khuyến nghị bao gồm cung cấp trải nghiệm cá nhân hóa, giúp khám phá những sản phẩm mới, tăng cường sự tương tác và tăng doanh số bán hàng
Trang 3433
2.7.2 Phân loại các hệ thống khuyến nghị
Hình 2.7 Các hệ thống khuyến nghị
• Collaborative filtering: Collaborative Filtering (CF) là một phương pháp trong
hệ thống khuyến nghị dựa trên sự tương đồng giữa các người dùng để tạo ra các đề xuất Phương pháp này dựa trên giả định rằng những người dùng có sở thích tương tự trong quá khứ sẽ có xu hướng có những sở thích tương tự trong tương lai Cách hoạt động của Collaborative Filtering thường được thực hiện qua hai phương pháp chính:
o User-based Collaborative Filtering: Phương pháp này tìm kiếm những người dùng tương tự dựa trên sự tương đồng của hành vi, sở thích và tương tác với các nội dung, sản phẩm trong hệ thống Khi một người dùng tương tác một mục tiêu nào đó, hệ thống sẽ tìm các người dùng khác có hành vi tương tự và đề xuất các sản phẩm, nội dung mà những người dùng này yêu thích Ví dụ, nếu người dùng A và B có sở thích giống nhau về phim, hệ thống sẽ gợi ý phim mà người dùng A đã xem cho người dùng B
o Item-based Collaborative Filtering: Phương pháp này tìm kiếm sự tương đồng giữa các mục tiêu dựa trên sự tương đồng trong cách người
Trang 3534
dùng đánh giá hoặc tương tác với các mục tiêu Khi một người dùng yêu thích một nội dung, hệ thống sẽ xác định các nội dung hoặc sản phẩm khác mà người dùng đã đánh giá cao và có sự tương đồng với mục tiêu hiện tại Sau đó, hệ thống đề xuất những mục tiêu tương tự cho người dùng Ví dụ, nếu người dùng đã đánh giá cao một bài hát trong thể loại pop, hệ thống có thể gợi ý những bài hát pop khác
Ưu điểm của Collaborative Filtering là khả năng tìm ra các mối tương đồng
và đề xuất phù hợp dựa trên hành vi thực tế của người dùng Nó không yêu cầu thông tin chi tiết về người dùng hoặc mục tiêu và có thể áp dụng cho các lĩnh vực khác nhau Tuy nhiên, CF cũng tồn tại một số nhược điểm và khó khăn như hiệu suất giảm khi số lượng người dùng và mục tiêu tăng lên, khó khăn trong việc giải quyết vấn đề lạm dụng hoặc lợi dụng thông tin đánh giá
và vấn đề cold-start (không đủ dữ liệu về hành vi và tương tác của người dùng mới để đưa ra khuyến nghị)
• Content-based filtering: Content-based Filtering (CBF) là một phương pháp trong hệ thống khuyến nghị dựa trên việc phân tích nội dung của các sản phẩm
để tạo ra các đề xuất Điều đặc biệt của CBF là nó tập trung vào các thuộc tính
và đặc trưng của mỗi sản phẩm để đề xuất những sản phẩm tương tự hoặc liên quan Khi triển khai CBF, hệ thống sẽ thu thập thông tin chi tiết về các thuộc tính và đặc trưng của các sản phẩm Ví dụ, trong trường hợp khuyến nghị phim,
hệ thống có thể sử dụng các thuộc tính như thể loại, diễn viên, đạo diễn, năm sản xuất và những mô tả Dựa trên những thông tin này, hệ thống sẽ xác định
sự tương đồng giữa các phim và đề xuất những phim có thuộc tính tương tự Một ưu điểm của CBF là khả năng đề xuất các mục tiêu cá nhân hóa dựa trên
sở thích riêng của người dùng Nếu người dùng thích một bộ phim cụ thể, hệ thống có thể đề xuất những bộ phim tương tự trong thể loại hoặc với các diễn viên trong phim đó Tuy nhiên, CBF cũng có một số hạn chế, bao gồm khó khăn trong việc đưa ra chính xác sự tương đồng và khó khăn trong việc đề xuất
Trang 36Bằng cách kết hợp các phương pháp khuyến nghị, Hybrid Recommender System có khả năng cung cấp đề xuất đa dạng và chính xác hơn Nó xem xét không chỉ sự tương tác giữa người dùng và nội dung mà còn xem xét các đặc trưng và thuộc tính của nội dung đó Nó sẽ giải quyết được các vấn đề và nhược điểm của các phương pháp khuyến nghị khác nhau
2.7.3 Recombee – Recommender as a service
Recombee là một dịch vụ khuyến nghị dựa trên đám mây (cloud-based recommendation service) được phát triển để cung cấp giải pháp khuyến nghị mạnh
mẽ và linh hoạt cho các ứng dụng và trang web Với Recombee, nhà phát triển có thể
dễ dàng tích hợp chức năng khuyến nghị vào ứng dụng của mình mà không cần xây dựng lại toàn bộ hệ thống khuyến nghị từ đầu
Recombee sử dụng các thuật toán học máy và xử lý dữ liệu để tạo ra các đề xuất cá nhân hóa và chính xác cho người dùng Nó giúp phân tích và hiểu rõ hành vi
và sở thích của người dùng thông qua việc thu thập dữ liệu từ các tương tác trước đó
Nó cũng hỗ trợ việc tùy chỉnh và cấu hình các thuật toán khuyến nghị theo nhu cầu của từng ứng dụng cụ thể
Trang 37Với mục tiêu tạo ra một hình thức thanh toán trực tuyến dễ dàng và bảo mật, PayPal đã đạt được những thành tựu đáng kinh ngạc trong lĩnh vực công nghệ tài chính Sử dụng PayPal, người dùng có thể gửi và nhận tiền trực tuyến, mua hàng, thanh toán dịch vụ và chuyển tiền với tốc độ và hiệu quả cao, chỉ với vài thao tác đơn giản trên giao diện dễ sử dụng của họ
2.8.2 PayPal sandbox
PayPal Sandbox là môi trường thử nghiệm được cung cấp bởi PayPal để cho phép các nhà phát triển, doanh nghiệp và cá nhân kiểm tra và tích hợp tính năng thanh toán của PayPal mà không cần sử dụng thông tin tài chính thực tế Được hiểu đơn giản, đó là một bản sao của môi trường vận hành của PayPal, nhưng hoạt động hoàn
Trang 38PayPal Sandbox không yêu cầu chi phí và là một công cụ hữu ích để phát triển, kiểm tra và làm quen với tích hợp thanh toán PayPal mà không gây rủi ro đối với thông tin tài chính thực tế của người dùng Sau khi kiểm tra hoàn tất và tích hợp được hoàn chỉnh, người dùng có thể chuyển sang môi trường vận hành để thực hiện các giao dịch thật sự trên hệ thống thanh toán PayPal
2.8.3 REST APIs
PayPal cung cấp một loạt các dịch vụ REST API để cho phép các nhà phát triển tích hợp chức năng thanh toán và tài khoản PayPal vào ứng dụng của họ Dưới đây là một số dịch vụ REST API chính mà PayPal cung cấp:
1 REST API Thanh toán (PayPal Payments API): Đây là dịch vụ cho phép chấp nhận thanh toán từ các tài khoản PayPal, thẻ tín dụng và thẻ ghi nợ Bằng cách tích hợp REST API Thanh toán, chúng ta có thể tạo và quản lý các giao dịch thanh toán, bao gồm cả thanh toán một lần và các hình thức thanh toán định kỳ
2 REST API Quản lý đơn hàng (PayPal Orders API): API này cho phép tạo, xác minh và quản lý các đơn hàng Nó cung cấp các tính năng như lấy thông tin đơn hàng, cập nhật trạng thái đơn hàng, hoàn tiền và hoàn trả tiền
3 REST API Quản lý thanh toán (PayPal Billing Plans API): API này cho phép tạo
và quản lý các kế hoạch thanh toán định kỳ cho khách hàng Ta có thể tạo các kế hoạch thanh toán hàng tháng, hàng năm hoặc tuỳ chỉnh khác
Trang 3938
4 REST API Quản lý đối tác (PayPal Partner Referrals API): API này dành riêng cho các đối tác PayPal và cung cấp các tính năng để theo dõi và quản lý các khách hàng được giới thiệu
Trang 4039
3.1 Kiến trúc tổng quan
Hình 3.1 Kiến trúc tổng quan - Client - Server
Kiến trúc dựa trên mô hình Client – Server, giao tiếp thông qua HTTP, RESTful API Cụ thể hơn, trong kiến trúc này bao gồm:
• Client: người sử dụng ứng dụng điện thoại trên nền tảng iOS và Android Ứng dụng được viết bởi React Native và TypeScript
• Server: máy chủ của hệ thống, được triển khai và vận hành trên nền tảng Render.com Được viết bằng Python, Django và Django Rest Framework
• Database: là nơi lưu trữ toàn bộ dữ liệu của hệ thống Sử dụng RMDBS là PostgreSQL
• PayPal service: dịch vụ thanh toán của PayPal
• Recombee service: Recommender-as-a-service Cung cấp hệ thống khuyến nghị
• Amazon Web Service (AWS): Lưu trữ các dữ liệu đa phương tiện cho hệ thống