Trường Đại học Bách Khoa Khoa Khoa học & Kỹ thuật Máy tính Luận Văn Tốt Nghiệp Đại Học Trang 1 LỜI CAM ĐOAN Em xin cam đoan luận văn tốt nghiệp đề tài “Xây dựng website bán sách” là sản
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG WEBSITE BÁN SÁCH TRỰC TUYẾN
Trang 5Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 1
LỜI CAM ĐOAN
Em xin cam đoan luận văn tốt nghiệp đề tài “Xây dựng website bán sách” là sản phẩm nghiên cứu của chính em dưới sự hướng dẫn của Thầy TS Phan Trọng Nhân Những nguồn tài liệu và số liệu tham khảo được đề cập đến trong đề cương này đều được trích dẫn nguồn cụ thể và nêu rõ trong phần phụ lục Các số liệu, kết quả của đề tài hoàn toàn trung thực, em xin hoàn toàn chịu trách nhiệm nếu vi phạm những gì đã cam đoan
Tp Hồ Chí Minh, ngày 26 tháng 09 năm 2022
Trang 6Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 2
LỜI CẢM ƠN
Đối với mỗi sinh viên khoa Khoa học và Kỹ thuật Máy tính, luận văn tốt nghiệp chính là công việc kết thúc quá trình học tập ở trường đại học, đồng thời mở ra trước mắt mỗi người một hướng đi mới vào cuộc sống thực tế trong tương lai Quá trình làm luận văn đã tạo điều kiện để em tổng hợp, hệ thống lại những kiến thức đã được học,
bổ sung thêm những kiến thức mới mà mình còn thiếu sót, rèn luyện khả năng vận dụng kiến thức đồng thời nâng cao khả năng tự nghiên cứu để giải quyết các vấn đề có thể phát sinh
Mặc dù đã cố gắng hết sức nhưng do kiến thức và kinh nghiệm còn hạn chế, do
đó luận văn tốt nghiệp của em khó tránh những thiếu sót, kính mong nhận được sự chỉ dẫn của các Thầy, Cô để em cũng cố, hoàn thiện kiến thức của mình hơn
Em xin chân thành bày tỏ lòng biết ơn đến Thầy TS Phan Trọng Nhân, giảng viên khoa Khoa học và Kỹ thuật Máy tính - trường Đại học Bách Khoa - Đại học Quốc gia Thành phố Hồ Chí Minh đã nhiệt tình hướng dẫn, cung cấp kiến thức, những góp ý quý báu, bổ sung những thiếu sót cho em trong quá trình thực hiện luận văn tốt nghiệp Đây sẽ là những kinh nghiệm quý báu giúp em hoàn thành tốt công tác của mình sau này
Em trân trọng bày tỏ lòng biết ơn đến các Thầy, Cô trong Ban Giám hiệu nhà trường đặc biệt là các Thầy, Cô đang giảng dạy và làm việc tại Khoa học và Kỹ thuật Máy tính - trường Đại Học Bách Khoa đã tận tình truyền thụ cho em những kiến thức quý báu trong suốt quá trình học tập tại giảng đường đại học
Cuối cùng, em kính chúc các Thầy, Cô luôn dồi dào sức khỏe để hoàn thành tốt
sự nghiệp giảng dạy của mình để tạo ra nhiều thế hệ sinh viên ưu tú và có ích cho xã hội
Tp Hồ Chí Minh, ngày 26 tháng 09 năm 2022
Trang 7Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 3
TÓM TẮT
Đề tài “Xây dựng website bán sách trực tuyến” được thực hiện trong thời gian mười hai tuần Trong quá trình thực hiện đề tài, em đã tập trung vào việc tìm hiểu cách thức và quy trình vận hành của một hệ thống bán sách trực tuyến, tham khảo một số
mô hình tương tự hiện có như: fahasha.com, tiki.com Song song với đó là việc xác định các bài toán liên quan và đề ra giải pháp, tìm hiểu các công nghệ phù hợp để xây dựng hệ thống Hệ thống hoạt động theo mô hình B2C và được xây dựng, phát triển trên nền tảng web Người dùng có thể tìm kiếm, mua hàng, thanh toán bằng nhiều hình thức tiện lợi Bên cạnh đó hệ thống sẽ được tính hợp tính năng đề xuất cho từng người dùng cụ thể mang lại trải nghiệm tốt nhất cho họ Ứng dụng trí tuệ nhân tạo hỗ trợ quá trình xác nhận đơn hàng cho nhân viên bán hàng
Trang 8Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 4
MỤC LỤC
Chương 1 GIỚI THIỆU ĐỀ TÀI 11
1.1 Giới thiệu đề tài 11
1.2 Khái niệm về thương mại điện tử 11
1.3 Mục tiêu và phạm vi đề tài 11
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG 12
2.1 Các mô hình kinh doanh sách trực tuyến hiện có 12
2.1.1 Fahasa 12
2.1.2 Tiki 12
2.2 Công nghệ sử dụng xây dựng hệ thống 12
2.2.1 Front-end 12
2.2.1.1 HTML 5 12
2.2.1.2 CSS3 và SCSS 13
2.2.1.3 ReactJS 13
2.2.2 Back-end 13
2.2.2.1 NodeJs và framework Express 13
2.2.2.2 MySQL 14
2.2.2.3 Elasticsearch 14
2.2.2.4 Hệ thống đề xuất 15
2.2.2.5 Mã QR 16
2.2.2.6 Mạng thần kinh nhân tạo (Artificial Neural Network) 19
2.2.6.7 ChatBot hỗ trợ khách hàng 20
2.2.6.8 Các dịch vụ Cloud sử dụng triển khai hệ thống 20
2.2.6.8.1 Amazon Elastic Compute Cloud (EC2) 20
2.2.6.8.2 Amazon OpenSearch Service (AOS) 20
2.2.6.8.3 Relational Database Service (RDS) 20
2.2.6.7.4 Database Migration Service (DMS) 21
2.2.6.7.5 CloudFalre DNS 21
CHƯƠNG 3 PHÂN TÍCH YÊU CẦU 22
3.1 Mô tả hệ thống 22
3.1.1 Đặc tả chức năng 22
3.1.2 Đặc tả phi chức năng 23
3.1.3 Bài toán và giải pháp 23
Trang 9Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 5
3.2 Thiết kế Use-case 25
3.2.1 Use-case diagram và use-case scenario cho quản trị viên 26
3.2.2 Use-case diagram và use-case scenario cho người dùng 36
3.2.4 Các use-case khác 42
CHƯƠNG 4 THIẾT KẾ HỆ THỐNG 45
4.1 Kiến trúc hệ thống 45
4.2 Thiết kế cơ sở dữ liệu 47
4.2.1 Mô hình thực thể liên kết - ERD 47
4.2.2 Ánh xạ sang bảng dữ liệu 49
4.3 Thiết kế giao diện 53
4.3.1 Giao diện trang chủ 53
4.3.2 Giao diện trang chi tiết sản phẩm 55
4.3.3 Giao diện trang thanh toán 57
4.3.4 Giao diện trang quản lý đơn hàng 58
4.3.5 Giao diện trang thông tin cá nhân 59
4.4.6 Giao diện trang quản lý địa chỉ 59
4.4.7 Giao diện trang thông báo 60
4.4.8 Giao diện trang đăng nhập 61
4.6.7 Giao diện đăng ký tài khoản 61
4.6.8 Giao diện trang tổng quan (Admin) 62
4.6.9 Giao diện quản lý sản phẩm 63
4.9.10 Giao diện quản lý người dùng 64
4.9.11 Giao diện quản lý đơn hàng 65
4.9.12 Giao diện quản lý mã giảm giá 66
CHƯƠNG 5 HIỆN THỰC VÀ KIỂM THỬ HỆ THỐNG 68
5.1 Hiện thực hệ thống 68
5.1.1 Khởi tạo máy chủ AWS – EC2 68
5.1.2 Khởi tạo máy chủ cơ sở dữ liệu MySQL 69
5.1.3 Khởi tạo máy chủ ElasticSearch 70
5.1.4 Cấu dịch vụ DNS CloudFlare 71
5.2 Kiểm thử đơn vị (Unit test) 72
5.2.1 Quy trình kiểm thử 72
5.2.3 Công cụ sử dụng 72
5.2.3 Kết quả kiểm thử 73
Trang 10Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 6
5.3 Đánh giá khả năng chịu tải của hệ thống 73
5.3.1 Phương pháp đánh giá 73
5.3.2 Kiểm thử trên máy chủ Amazon Web Service ( AWS ) 74
5.3.2.1 Kiểm thử phương thức GET 74
5.3.2.2 Kiểm thử phương thức PUT 74
5.3.3 Đánh giá chung 75
5.4 Đánh giá hiệu quả của hệ thống đề xuất 75
CHƯƠNG 6 TỔNG KẾT 78
6.1 Kết quả đạt được 78
6.2 Hạn chế và nhược điểm 78
6.3 Hướng phát triển 78
DANH MỤC TÀI LIỆU THAM KHẢO 80
Trang 11Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 7
MỤC LỤC HÌNH ẢNH
Hình 1 Thống kê mức độ sử dụng của các web framework/ library năm 2021 13
Hình 2 Kiến túc Client-Server 14
Hình 3 Vị trí thành phần “Positioning detection marker” trong mã QR 17
Hình 4 Vị trí thành phần “Alignment markings” trong mã QR 8 17
Hình 5.Vị trí thành phần “Timming parttern” trong mã QR 8 17
Hình 6 Vị trí thành phần “Version information” trong mã QR 8 18
Hình 7 Vị trí thành phần “Format information” trong mã QR 8 18
Hình 8 Vị trí thành phần “Data and error correction key” trong mã QR 8 18
Hình 9 Vị trí thành phần “Quiet zone” trong mã QR 8 18
Hình 10 Trình tự giải mã mã QR 8 19
Hình 11 Mạng neural nhân tạo (ANN) 19
Hình 12 Mô hình tính toán của neural 20
Hình 13 Mô hình hoạt động của DMS 21
Hình 14 Sự thay đổi giá trị của hàm mất mát trong quá trình đào tạo 24
Hình 15 Kết quả dự đoán trên tệp dữ liệu thử nghiệm 24
Hình 16 Use-case diagram cho toàn bộ hệ thống 25
Hình 17 Use-case diagram cho người quản trị (admin) 26
Hình 18 Use-case Quản lý đơn hàng 26
Hình 19 Use-case quản lý sản phẩm 29
Hình 20 Use-case quản lý mã giảm giá 31
Hình 21 Use-case thống kê bán hàng 33
Hình 22 Use-case diagram cho người dùng 36
Hình 23 Use-case quản lý giỏ hàng 38
Hình 24 Use-case quản lý đơn hàng (người dùng) 39
Hình 25 Use-case đặt hàng 40
Hình 26 Use-case thay đổi thông tin cá nhân 42
Hình 27 Mô hình kiến trúc hệ thống 45
Hình 28 Mô hình EER 47
Hình 29 Lượt đồ ánh xạ EER sang bảng dữ liệu 49
Hình 30 Giao diện trang chủ 54
Hình 31 Giao diện ChatBot 55
Hình 32 Giao diện trang chi tiết sản phẩm 56
Hình 33 Giao diện trang thanh toán 57
Hình 34 Áp dụng mã giảm giá 57
Hình 35 Thêm địa chỉ nhận hàng 58
Hình 36 Giao diện trang quản lý đơn hàng 58
Hình 37 Giao diện xem chi tiết một đơn hàng 59
Hình 38 Giao diện trang thông tin cá nhân 59
Hình 39 Trang quản lý địa chỉ giao hàng 60
Hình 40 Thêm một địa chỉ nhận hàng 60
Hình 41 Trang thông báo 60
Hình 42 Giao diện trang đăng nhập 61
Hình 43 Đăng nhập bằng tài khoản Gmail 61
Hình 44 Giao diện trang đăng ký tài khoản 62
Trang 12Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 8
Hình 45 Giao diện trang quản lý sản phẩm (admin) 63
Hình 46 Danh sách sản phẩm 63
Hình 47 Chi tiết sản phẩm 64
Hình 48 Thêm sản phẩm mới 64
Hình 49 Giao diện quản lý người dùng 65
Hình 50 Giao diện danh sách đơn hàng 65
Hình 51 Cập nhật trạng thái đơn hàng 65
Hình 52 Chi tiết đơn hàng 66
Hình 53 Giao diện danh sách mã giảm giá 66
Hình 54 Thêm mã giảm giá 67
Hình 55.Lựa chọn cấu hình máy chủ 68
Hình 56 Khởi động Nginx 1.18.0 69
Hình 57 Tạo cơ sở dự liệu bằng dịch vụ RDS của Amazon 69
Hình 58 Tùy chỉnh kết nối giữa database và máy chủ EC2 70
Hình 59 Khởi tạo máy chủ ElasticSearch 70
Hình 60 Thiết lập quản lý kết nối tới ElasticSearch Server 71
Hình 61 Thiết lập DNS table 71
Hình 62 Thay đổi DNS Nameservers trên Namecheap.com 71
Hình 63 Thiết lập giới hạn số lượng yêu cầu tới máy chủ theo địa chỉ IP 72
Hình 64 Kết quả thực hiện kiểm thử tự động các APIs trên ứng dụng Postman 73
Hình 65 Biểu đồ thể hiện thời gian phản hồi của phương thức GET 74
Hình 66 Biểu đồ thể hiện thời gian phản hồi của phương thức PUT 74
Hình 67 Biểu đồ tỷ lệ chuyển đổi từ các vị trí đề xuất sản phẩm tương đồng 75
Hình 68 Biểu đồ tỷ lệ chuyển đổi từ các vị trí đề xuất sản phẩm mua cùng 76
Hình 69 Biểu đồ tỷ lệ chuyển đổi từ các vị trí đề xuất sản phẩm dành cho bạn 77
Trang 13Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 9
MỤC LỤC BẢNG BIỂU
Bảng 1 Use-case scenario xem chi tiết đơn hàng 27
Bảng 2 Use-case scenario hủy đơn hàng 28
Bảng 3 Use-case scenario tìm kiếm đơn hàng 28
Bảng 4 Use-case scenario thêm sản phẩm mới 29
Bảng 5 Use-case scenario chỉnh sửa sản phẩm 30
Bảng 6 Use-case scenario xóa sản phẩm 30
Bảng 7 Use-case scenario ẩn sản phẩm 31
Bảng 8 Use-case scenario tạo mã giảm giá 32
Bảng 9 Use-case scenario chỉnh sửa mã giảm giá 32
Bảng 10 Use-case scenario xóa mã giảm giá 33
Bảng 11 Use-case scenario phân tích bán hàng 34
Bảng 12 Use-case scenario xem chi tiết người dùng 34
Bảng 13 Use-case scenario tìm kiếm người dùng 35
Bảng 14 Use-case scenario khóa tài khoản người dùng 36
Bảng 15 Use-case scenario đăng ký tài khoản 37
Bảng 16 Use-case scenario tìm kiếm sản phẩm 37
Bảng 17 Use-case scenario thay đổi số lượng sản phẩm trong giỏ hàng 38
Bảng 18 Use-case scenario xóa sản phẩm trong giỏ hàng 39
Bảng 19 Use-case scenario xem chi tiết đơn hàng 39
Bảng 20 Use-case scenario hủy đơn hàng (người dùng) 40
Bảng 21 Use-case scenario thêm vào giỏ hàng 41
Bảng 22 Use-case scenario thêm mã giảm giá 41
Bảng 23 Use-case scenario thanh toán 42
Bảng 24 Use-case scenario đăng nhập 43
Bảng 25 Use-case scenario thay đổi thông tin 43
Bảng 26 Use-case scenario thay đổi ảnh đại diện 44
Bảng 27.Use-case scenario thay đổi mật khẩu 44
Bảng 28 Chi tiết bảng “User” 50
Bảng 29 Chi tiết bảng “Books” 50
Bảng 30 Chi tiết bảng “Shippingaddress” 50
Bảng 31 Chi tiết bảng “Districts” 51
Bảng 32 Chi tiết bảng “Provinces” 51
Bảng 33.Chi tiết bảng “Order_details” 51
Bảng 34 Chi tiết bảng “Orders” 52
Bảng 35 Chi tiết bảng “Vouchers” 52
Bảng 36 Chi tiết bảng “Ratings” 52
Bảng 37 Chi tiết bảng “Discounts” 52
Bảng 38 Chi tiết bảng “authors” 53
Bảng 39 Chi tiết bảng “Categories” 53
Bảng 40.Chi tiết bảng “predict_cancellation” 53
Trang 14Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 10
DANH SÁCH THUẬT NGỮ VÀ KHÁI NIỆM
Thuật ngữ Tên đầy đủ Ghi chú
API Application Programming
Interface
Phương thức trung gian kết nối các ứng dụng và thư viện khác nhau
B2B Business to Business Mô hình kinh doanh giữa các
công ty, doanh nghiệp với nhau
B2C Business to Customer Mô hình kinh doanh giữa doanh
Back-end Back-end Phần hoạt động ở phía máy chủ,
nhận yêu cầu và xử lý thông tin từ người dùng
Client-server client-server Là mô hình mạng máy tính bao
gồm 2 thành phần chính là máy khách (client) và máy chủ ( server)
Mask pattern Mask pattern Là một dãy cấu tạo được tạo ra và
chèn vào mã QR giúp các thiết bị quét dễ dàng quét và đọc mã
Request Yêu cầu gửi lên máy chủ
DNS Domain Name System Hệ thống phân giải tên miền
Trang 15Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 11
Chương 1 GIỚI THIỆU ĐỀ TÀI
Hiện nay với sự phát triển mạnh mẽ của công nghệ, cuộc sống cuộc con người ngày càng gắn liền với môi trường internet Công nghệ ngày càng có vai trò quan trọng trong mọi mặt, mọi lĩnh vực của cuộc sống Mô hình kinh doanh trực tuyến ngày càng trở nên phổ biến và quen thuộc với nhiều người Xây dựng mô hình kinh doanh trực tuyến gần như là yếu tố phải có của các doanh nghiệp hoạt động trong lĩnh vực kinh doanh hiện nay Nó không chỉ giúp cho doanh nghiệp có khả năng tiếp cận khách hàng, mở rộng kinh doanh tốt hơn, mà còn cải thiện việc quản lý, giảm chi phí đại lý
và đánh giá hiệu suất hoạt động của doanh nghiệp Mô hình kinh doanh trực tuyến còn giúp người dùng có trải nghiệm dễ dàng hơn, thuận lợi và tiết kiệm nhiều thời gian hơn Nắm bắt được xu thế hiện tại, em đã thực hiện đề tài về “website kinh doanh sách” Webiste tập trung vào sản phẩm sách với nhiều thể loại khác nhau và mục tiêu khách hàng là những người có quan tâm và nhu cầu mua sách Website tạo ra môi trường riêng biệt để tập trung vào một nhóm người dùng nhất định giúp họ dễ dàng có thể tìm kiếm được những loại sách họ cần cũng như nhận được sự gợi ý phù hợp với
sở thích và nhu cầu của bản thân khách hàng
Thương mại điện tử là hoạt động kinh doanh trên môi trường internet Thương mại điện tử có thể bao gồm các họa động mua bán hàng hóa, dịch vụ, ….Từ năm 1979, hình thức kinh doanh trực tuyến đã xuất hiện Đến năm 1989, kỹ nguyên World Wide Web mở ra, tạo tiền đề cho sự phát triển mạnh mẽ của thương mại điện tử Cho đến ngày nay, cùng với sự phát triển vượt bật của công nghệ, thương mại điện tử đã phát triển với một tốc đột nhanh chóng Theo báo cáo của Hiệp hội Thương mại điện tử Việt Nam (VECOM), tốc độ tăng trưởng trung bình của thương mại điện tử giai đoạn 2016-2019 khoảng 30%, dự đoán tốc độ tăng trưởng trung bình giai đoạn 2020-2025 là 29% và đến năm 2025, quy mô thương mại điện tử nước ta đạt 52 tỷ USD.1
kê hiệu suất kinh doanh, quản lý sản phẩm bằng QR code cho người quản lý
1Tham khảo số liệu từ :
https://vnexpress.net/thuong-mai-dien-tu-se-phat-trien-the-nao-trong-5-nam-toi-4336327.html
Trang 16Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 12
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG
2.1.1 Fahasa
Fahasa.com 2 là một website kinh doanh sách trực tuyến lâu đời tại Việt Nam Với lợi thế được phát triển và điều hành bởi một công ty lớn với nhiều năm kinh nghiệm trong lĩnh vực xuất bản sách Uy tín của thương hiệu mang làm niềm tin cho người dùng trong việc mua sắm trực tuyến, cùng sự chuyên nghiệp và minh bạch trong chính sách, đã tạo tiền đề cho Fahasa nhanh chóng chiếm được thị phần và có vị trí trên môi trường kinh doanh trực tuyến, đặc biệt là lĩnh vực sách và văn phòng phẩm Fahasa hoạt động thuần theo mô hình B2C Hệ thống cung cấp nhiều hình thức thanh toán phổ biến hiện nay tuy nhiên vẫn chưa chấp nhận hình thức thanh toán COD ( Cash on delivery ), hỗ trợ khách hàng theo dõi đơn hàng, tính năng mã giảm giá,…
2.1.2 Tiki
Tiki.vn 3 là một website thương mại điện tự lớn và uy tín tại Việt Nam, được thành lập vào tháng 03/2010 Ban đầu Tiki.vn được nhiều người biết đến như là một nhà sách trực tuyến Từ những thời điểm ban đầu, Tiki hoạt động dựa trên mô hình B2C, có nghĩa là Tiki sẽ là đơn vị trực tiếp nhập hàng, kiểm tra và bán ra thị trường
Về sau, Tiki phát triển ngày càng lớn mạnh và mở rộng phân khúc của mình trên nhiều loại sản phẩm khác như : thiết bị công nghệ, văn phòng phẩm, nhà cửa và đời sống… Đồng thời Tiki cũng phát triển thêm mô hình kinh doanh C2C song song với mô hình B2C trên cùng một hệ thống Tiki cũng hỗ trợ nhiều hình thức thanh toán trực tuyến phổ biến hiện này kể cả thanh toán COD, cung cấp các tùy chọn cho khác hàng theo dõi đơn hàng, các chương trình mã giảm giá Ngoài ra, Tiki còn xây dựng các trò chơi nhỏ trên website, giúp người dùng nhận được nhận phần thưởng khi tham gia Nhưng mục đích chính của việc này chính là tăng tương tác của người dùng trên website, từ
đó sẽ có lợi nhiều mặt về tiếp thị
Ưu điểm:
- HTML5 giúp các nhà phát triển tạo ra các ứng dụng web nâng cao, khả năng
xử lý đồ họa, âm thanh, video, GPS, camera mà không cần đến các plug-in
hỗ trợ Đây là điểm khác biết lớn giữa HTML5 và các phiên bản tiền nhiệm
- HTML5 chạy ổn định trên hầu hết các trình duyệt web phổ biến như : Google Chrome, Firefox , Opera, Safari, Cốc Cốc, Microsoft Edge,…
- HTML5 có khả năng tương thích cao với nhiều thiết bị như : latop, smartphone, ipad, tablet, chỉ cần các thiết bị sử dụng trình duyệt có thể hiểu được ngôn ngữ này
2Fahasa Tham khảo tại : https://www.fahasa.com/gioi-thieu-fahasa
3Tiki Tham khảo tại : https://tiki.vn/thong-tin/gioi-thieu-ve-tiki
Trang 17Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 13
- HTML5 có thể được sử dụng chung với như ngôn ngữ lập trình khác như JavaScript, Python, C#, Ruby, PHP, Java để tạo ra ứng dụng web
2.2.1.2 CSS3 và SCSS
CSS (Cascading Style Sheets) là ngôn ngữ được sử dụng để định dạng các phần
tử tạo ra bởi HTML CSS được phát triển bởi W3C (World Wide Web Consortium) vào năm 1996 CSS3 là bản nâng cấp mới nhất của CSS với mục đích mở rộng CSS2.1 CSS3 bổ sung, mang đến nhiều tính năng mới hỗ trợ định dạng tốt hết với nhiều kiểu thiết kế hiện đại
SCSS là một chương trình tiền xử lý CSS (CSS preprocessor) giúp người dùng
viết code CSS theo giống một ngôn ngữ lập trình, cấu trúc rõ ràng, giúp cho việc sửa lỗi nâng cấp diễn ra dễ dàng hơn Vì trình duyệt không thể hiểu được SCSS, nên cuối cùng SCSS cũng sẽ được biên dịch thành CSS từ đó trình duyệt có thể hiểu được nội dung
2.2.1.3 ReactJS
ReactJS là một thư viện Javascript mã nguồn mở miễn phí dùng để xây dựng
UI ReactJS được phát triển bởi Facebook (nay đổi tên thành Meta) và được ra mắt vào tháng 03 năm 2013
ReactJS xây dựng nhầm mục đích tạo ra những ứng dụng web với hiệu suất cao, dễ bảo trì và tái xử dụng các thành phần UI (gọi là component) Bằng cách sử dụng thuật toán “The Diffing Algorithm” và Vitural DOM, ReactJS xem xét sự thay đổi giao diện và quyết định những gì cần thiết kết xuất lại
ReactJS được nhiều công ty lớn sử dụng cho website của mình như là : facebook.com, shopee.vn, bittrex.com, ….Theo số liệu thống kế của Stackoverflow ReactJS là web framework/ library được sử dụng nhiều nhất trong năm 2021
Hình 1 Thống kê mức độ sử dụng của các web framework/ library năm 2021 4
2.2.2 Back-end
2.2.2.1 NodeJs và framework Express
NodeJS là một nền tảng được xây dựng trên “V8 Javascript engine” được viết bằng C++ và Javascript Nền tảng này được phát triển bởi Ryan Lienhart Dahl bảo trợ bởi công ty Joyentvào năm 2009 Nodejs giúp cho việc thực thi mã Javascript có thể
4Nguồn ảnh : insights.stackoverflow.com/
Trang 18Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 14
thực hiện được trên máy tính như một ứng dụng độc lập Phần lõi của Nodejs chủ yếu viết bằng C++ nên tốc độ và hiệu xuất xử lý khá nhanh
Express là framework mã nguồn mở miễn phí được xây dựng trên nền tảng Nodejs Express được sử dụng để xây dựng các ứng dụng web và API một cách nhanh chóng Express chỉ hỗ trợ ngôn ngữ Javascript, đây cũng là điểm lợi thế của framework này, khi các lập trình viên chỉ cần sử dụng một ngôn ngữ duy nhất để phát triển cho cả front-end và back-end của hệ thống Express cũng là một web framework được sử dụng nhiều thứ 3 theo thống kê của Stackoverfollow năm 2021
2.2.2.2 MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở miễn phí (Relational Database Management System, viết tắt là RDBMS) phát triển bởi Oracle MySQL được viết bằng C và C++, hoạt động theo mô hình client-server dựa trên ngôn ngữ truy vấn có cấu trúc (SQL)
Hình 2 Kiến túc Client-Server 5 Cách thức hoạt động :
- Người xây dựng hệ thống dùng mySQL tạo cơ sở dữ liệu để lưu trữ và thao tác, định nghĩa quan hệ giữa các bảng trong cơ sở dữ liệu
- Client sẽ gửi yêu cầu tới server Server phân tích yêu câu và thực hiện các câu truy vấn SQL tương ứng trên mySQL
- Server sẽ trả về kết quả cho phía client
Ưu điểm của mySQL là có cộng đồng sử dụng rộng lớn, tốc độ cao, ổn định, tương thích với nhiều hệ điều hành như Windows, Linux, Mac OS X, Unix,… MySQL là hệ quản trị cơ sở dữ liệu được sử dụng nhiều thứ hai sau Oracle 6
2.2.2.3 Elasticsearch
Elasticsearch7 là một công cụ tìm kiếm dựa trên nền tảng Apache Lucene Elasticsearch hoạt động như một server, giao tiếp thông qua giao thức RESTful Vì thế, không quan trọng hệ thống viết bằng gì, đều có thể giao tiếp dễ dàng với Elasticsearch server
Ưu điểm:
- Giao tiếp thông qua giao thức RESTful
- Khả năng phân tán dữ liệu trên nhiều nút (node) trong một cụm (cluster) và tìm kiếm song song trên các nút, giúp cho tốc độ truy vấn dữ liệu nhanh chóng
5Nguồn ảnh : https://www.hostinger.com/tutorials/what-is-mysql
6Số liệu tham khảo từ : https://db-engines.com/en/ranking
7ElasticSearch Truy cập : https://www.elastic.co/
Trang 19Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 15
- Khả năng mở rộng theo chiều ngang trên nhiều nút
- Hỗ trợ truy vấn mờ (fuzzy query), nghĩa là những cụm từ truy vấn có thể viết sai do lỗi đánh máy thì vẫn có thể tìm kiếm được bằng cách đo mức độ tương đồng bằng hệ số “Levenshtein edit distance”
Nhược điểm:
- Elasticsearch được thiết kế để làm việc với vai trò là một công cụ tìm kiếm
Vì vậy, những tác vụ như thêm, xóa, sửa dữ liệu sẽ không được tối ưu như các loại cơ sở dữ liệu khác, có khả năng mất mát dữ liệu Vì thế việc sử dụng thêm một cơ sở dữ liệu chính là mySQL như trong đề tài này là điều cần thiết
- Không có mối quan hệ ràng buộc giữa dữ liệu với nhau, dẫn tới khả năng sai lệch
2.2.2.4 Hệ thống đề xuất
Hệ thống đề xuất nhằm dự đoán những sản phẩm hoặc nội dung mà người dùng
có khả năng sẽ thích hoặc đang tìm kiếm Từ đó hướng người dùng đến việc mua hàng hoặc dẫn họ đến nội dung mà họ mong muốn Một hệ thống đề xuất hiệu quả làm tăng
tỷ lệ mua hàng và trải nghiệm của người dùng, tăng tỷ lệ giữ chân khách hàng trên các website hoặc các ứng dụng trực tuyến Hệ thống đề xuất đóng vai trò vô cùng quan trọng trong bất kỳ hệ thống thương mại, dịch vụ nào Trong phạm vi của đề tài này, một hệ thống đề xuất sản phẩm sẽ được xây dựng nhằm mục đích gợi ý cho người dùng những sản phẩm có thể họ sẽ thích, dựa trên yếu tố hành vi của họ và các thuộc tính của sản phẩm Hệ thống được hiện thực dựa trên hai phương pháp là lọc cộng tác (Collaborative Filtering) và lọc dựa trên nội dung (Content based Filtering)
Lọc cộng tác ( Collaborative Filtering ) :
Với phương pháp này, ta sẽ có hai hướng tiếp cận là dựa trên người dùng và dựa trên sản phẩm Dựa trên người dùng bằng cách tìm mối quan hệ giữa các người dùng với nhau thông qua hành vi tương tác của họ, tìm ra những người dùng tương đồng với nhau nhất Từ đó dự đoán sợ thích của các người dùng khác thuộc cùng nhóm tương đồng này Tương tự như hướng tiếp cận dựa trên người dùng, hướng tiếp cận dựa trên sản phẩm tìm những sản phẩm tương đồng dựa trên yếu tố đánh giá của người dùng Gợi ý những sản phẩm tương đồng với sản phẩm mà họ đang xem
Ưu điểm:
- Không cần biết rõ các đặc tính của sản phẩm, vì phương pháp này dựa vào tương tác của người dùng với sản phẩm
- Nắm bắt được sở thích của người dùng theo thời gian
- Mở rộng khả năng đề xuất cho các sản phẩm khác thể loại
Nhược điểm:
- Phụ thuộc dữ liệu từ những người dùng khác
- Với những người chưa có tương tác, thì phương pháp này không thể áp dụng
- Không thể gợi ý những sản phẩm mới, chưa có bất kỳ đánh giá nào
- Độ chính xác giảm khi sở thích người dùng thay đổi
Lọc dựa trên nội dung (Content based Filtering)
Phương pháp này dựa trên những đặc trưng của sản phẩm và hành vi người dùng để đề xuất đến những sản phẩm tương tự cho người dùng đó Bằng
Trang 20Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 16
cách ghi lại các hành vi của người dùng như lịch sử mua hàng, lịch sử đánh giá, thêm vào giỏ hàng, xem sản phẩm, bấm yêu thích sản phẩm được cập nhật theo thời gian thực
Ý tưởng của phương pháp này là xây dựng hồ sơ cho các sản phẩm dưới dạng các vector đặc trưng Từ đó ta có thể tính độ tương đồng giữa các sản phẩm bằng cách tính độ tương đồng giữa các vetor đặc trưng của chúng Gợi ý cho người dùng những sản phẩm họ có thể thích dựa vào các sản phẩm gần đây
họ đã tương tác
Ưu điểm của phương pháp này là:
- Không phụ thuộc vào dữ liệu của những người dùng khác như phương pháp lọc cộng tác
- Mang tính cá nhân hóa, nội dung đề xuất được thay đổi liên tục theo hành vi của người dùng Hệ thống có thể dựa vào điều này
để thay đổi bố cục của website để mang lại sự thích thú và trải nghiệm tốt cho người dùng
- Những sản phẩm mới cũng sẽ có khả năng được đề xuất
Cả hai phương pháp trình bày như trên đều có những ưu và nhược điểm riêng Việc kết hợp cả hai phương pháp trong việc xây dựng hệ thống đề xuất sẽ mang lại hiệu quả cao hơn, nhờ việc khắc phục nhược điểm và kết hợp các ưu điểm của cả hai phương pháp
Phương pháp đánh giá hệ thống đề xuất:
Một hệ thống đề xuất hiệu quả là một hệ thống mang lại lợi ích cho cả người dùng và người phát triển hệ thống Đánh giá hiệu quả của hệ thống dựa trên các tiêu chí sau:
- Xem xét tỷ lệ chuyển đổi đơn hàng từ lượt nhấp chuột vào các sản phẩm được đề xuất
- Xem xét tỷ lệ nhấp chuột giữa các đề xuất theo ví trị xếp hạng của sản phẩm trong danh sách đề xuất
- Khảo sát ý kiến người dùng về những gì họ được đề xuất
2.2.2.5 Mã QR
Mã QR (QR code) là viết tắt của từ “quick response code” Là một dạng thông tin được mã hóa để máy có thể đọc khi quét bằng camera Mã QR được phát triển từ năm 1994 bởi một công ty của Nhật Bản có tên là Denso Wave
Ưu điểm của mã QR:
- Lưu trữ được nhiều thông tin hơn so với mã vạch truyền thống
- Có thể sử dụng để lưu trữ các liên kết website, nên được sử dụng phổ biến trong việc truy cập nhanh, thanh toán trực tuyến, truy cập các điểm truy cập mạng không dây
- Đọc được nhanh chóng với nhiều góc độ khác nhau
- Khả năng tự sửa chữa lỗi và khôi phục dữ liệu
Trang 21Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 17
- Positioning detection marker : phần này được đặt tại ba gốc của
mã, giúp nhận diện vị trí, hướng của mã trên bề mặt hiển thị
Hình 3 Vị trí thành phần “Positioning detection marker” trong mã QR 8
- Alignment markings : phần này giúp máy quét có thể quét mã ở nhiều góc độ khác nhau
Hình 4 Vị trí thành phần “Alignment markings” trong mã QR 8
- Timming parttern : gồm các ô vuông trắng và đen xen kẻ nhau, giúp máy quét xác định được độ lớn của ma trận dữ liệu
Hình 5.Vị trí thành phần “Timming parttern” trong mã QR 8
- Version information : lưu thông tin về phiên bản mã đang sử dụng
8Nguồn ảnh : https://www.qr-code-generator.com/qr-code-marketing/qr-codes-basics
Trang 22Trường Đại học Bách Khoa
Khoa Khoa học & Kỹ thuật Máy tính
Luận Văn Tốt Nghiệp Đại Học Trang 18
Hình 6 Vị trí thành phần “Version information” trong mã QR 8
- Format information : lưu các thông tin về sửa lỗi, mask pattern
Hình 7 Vị trí thành phần “Format information” trong mã QR 8
- Data and error correction key : lưu trữ dữ liệu ( chế độ, độ dài thông điệp, nội dung thông điệp) và thông tin sửa lỗi
Hình 8 Vị trí thành phần “Data and error correction key” trong mã QR 8
- Quiet zone: giúp phân biệt mã với môi trường xung quanh
Hình 9 Vị trí thành phần “Quiet zone” trong mã QR 8 Cách thức hoạt động:
Dựa vào các thành phần định vị, máy quét định dạng hình dáng và vị trí nội dung có thể quét để thu được mã Bắt đầu phân tích mã bằng cách đọc từ vị trí góc dưới bên phải, theo đường zig-zag bao gồm các thông tin lần lượt là : kiểu dữ liệu, độ dài thông điệp, nội dung thông điệp và thông tin sửa lỗi