You are on page 1of 52

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI

VƯƠNG TRUNG THÀNH

ĐỒ ÁN TỐT NGHIỆP
KỸ SƯ KHOA HỌC MÁY TÍNH

HÀ NỘI - 2023
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI

VƯƠNG TRUNG THÀNH

XÂY DỰNG WEBSITE NHÀ SÁCH TRỰC TUYẾN


KẾT HỢP MÔ HÌNH KHUYẾN NGHỊ MUA HÀNG
CỨU KHO
A HỌC SINH VIÊN NĂM HỌC 2019 - 2020
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ:

ĐỒ ÁN TỐT NGHIỆP
KỸ SƯ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN: THS. NGUYỄN ĐÌNH QUÝ

HÀ NỘI - 2023
LỜI CẢM ƠN
Trong thời gian làm đồ án tốt nghiệp em đã nhận được nhiều sự giúp đỡ,
đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và bạn bè. Em xin gửi
lời cảm ơn chân thành đến Ths.Nguyễn Đình Quý, giảng viên Bộ môn Công
Nghệ Thông Tin - Trường Đại học Xây Dựng Hà Nội người đã tận tình hướng
dẫn, chỉ bảo em trong suốt quá trình làm đồ án.
Em cũng xin chân thành cảm ơn các thầy cô giáo trong trường Đại học
Xây Dựng Hà Nội nói chung, các thầy cô trong Bộ môn Công Nghệ Thông Tin
nói riêng đã dạy dỗ cho em kiến thức về các môn đại cương cũng như các môn
chuyên ngành, giúp em có được cơ sở lý thuyết vững vàng và tạo điều kiện giúp
đỡ em trong suốt quá trình học tập để em có được ngày hôm nay. Cuối cùng, em
xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp
đỡ, động viên em trong suốt quá trình học tập và hoàn thành đồ án tốt nghiệp.
Em xin chân thành cảm ơn!
LỜI MỞ ĐẦU
Thế giới ngày nay đã chứng kiến sự thay đổi mạnh mẽ trong việc sử dụng
công nghệ thông tin và internet. Công nghệ không chỉ đơn thuần là một phương
tiện truyền thông mà còn trở thành một yếu tố quyết định trong đời sống và kinh
tế của chúng ta. Trong bối cảnh này, việc tận dụng tiềm năng của internet để tạo
ra các trải nghiệm mới cho người dùng và cải thiện cách chúng ta tiếp cận thông
tin và sản phẩm là một ưu tiên hàng đầu.
Với sự bùng nổ của thương mại điện tử, ngành sách cũng không nằm
ngoài xu hướng này. Sự kết hợp giữa việc xây dựng một trang web nhà sách trực
tuyến và mô hình khuyến nghị mua hàng thông minh là một bước tiến quan trọng
để đáp ứng nhu cầu ngày càng cao của độc giả và khách hàng. Trong đồ án tốt
nghiệp này, em sẽ khám phá cách chúng ta có thể kết hợp sáng tạo công nghệ và
văn hóa đọc để tạo ra một nền tảng mua sắm sách trực tuyến đầy thú vị và cá
nhân hóa.
Đồ án của em có đề tài “Xây dựng website nhà sách trực tuyến kết hợp mô
hình khuyến nghị mua hàng” không chỉ dừng ở việc xây dựng một trang web nhà
sách, mà còn đặt ra mục tiêu tích hợp mô hình khuyến nghị mua hàng thông
minh, sử dụng trí tuệ nhân tạo để đề xuất sách dựa trên sở thích riêng của từng
người đọc. Em hy vọng rằng đây sẽ là một bước đi mang tính cách mạng trong
việc tạo ra trải nghiệm mua sắm sách trực tuyến và khám phá văn hóa sách.

Nội dung của đề tài được tổ chức thành ba chương chính:


Chương 1: Tổng quan – Giới thiệu đề tài
Chương này giới thiệu đề tài, đặt vấn đề và trình bày lý do chọn đề tài
này. Mục tiêu nghiên cứu và phạm vi của đồ án cũng được xác định trong
chương này.
Chương 2: Phân tích thiết kế
Chương này tập trung vào việc phân tích yêu cầu cho trang web nhà sách
trực tuyến và mô hình khuyến nghị mua hàng. Cụ thể, nó trình bày mục tiêu của
trang web, yêu cầu kỹ thuật, và yêu cầu thiết kế giao diện. Chương này cũng mô
tả cách mô hình khuyến nghị mua hàng sẽ được tích hợp vào trang web.
Chương 3: Xây dựng website
Chương cuối cùng mô tả quá trình xây dựng trang web nhà sách và tích hợp mô
hình khuyến nghị mua hàng. Nó bao gồm các bước phát triển, công nghệ sử
dụng, và các khía cạnh kỹ thuật liên quan đến triển khai thực tế.

Hà Nội, ngày 10 tháng 09 năm 2023


Sinh viên thực hiện
Thành
Vương Trung Thành
MỤC LỤC

CHƯƠNG 1. TỔNG QUAN – GIỚI THIỆU ĐỀ TÀI......................................1


1.1 Tính cấp thiết đề tài...................................................................................1
1.2 Tổng quan về đề tài...................................................................................1
1.3 Mục đích đề tài..........................................................................................1
1.4 Đối tượng và phạm vi đề tài......................................................................2
1.4.1 Đối tượng của đề tài...................................................................2
1.4.2 Phạm vi của đề tài......................................................................2
1.5 Phương pháp thực hiện đề tài....................................................................2
1.6 Công nghệ sử dụng....................................................................................3
1.6.1 Tổng quan về HTML – CSS.......................................................3
1.6.2 Framework Angular....................................................................3
1.6.3 Nền tảng .NET và framework ASP.NET Core...........................4
1.6.4 Cơ sở dữ liệu Microsoft SQL Sever...........................................5
1.6.5 Thuật toán khuyến nghị mua hàng..............................................6
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ.............................................................9
2.1 Phân tích yêu cầu của hệ thống.................................................................9
2.1.1 Yêu cầu chức năng.....................................................................9
2.1.2 Yêu cầu phi chức năng...............................................................9
2.2 Biểu đồ phân rã chức năng......................................................................10
2.2.1 Quản lý tài khoản.....................................................................10
2.2.2 Quản Lý Phân Quyền...............................................................10
2.2.3 Quản Lý Thể Loại....................................................................11
2.2.4 Quản Lý Nhà Xuất Bản............................................................11
2.2.5 Quản Lý Sản Phẩm...................................................................12
2.2.6 Quản Lý FlashSale...................................................................12
2.2.7 Quản Lý Mã Giảm Giá.............................................................13
2.2.8 Quản Lý Đơn Hàng..................................................................13
2.2.9 Quản Lý Truyền Thông............................................................14
2.2.10 Báo Cáo Thống Kê...................................................................15
2.3 Biểu đồ UseCase.....................................................................................15
2.3.1 Biểu đồ UseCase tổng quát.......................................................16
2.3.2 Biểu đồ UseCase đăng nhập.....................................................17
2.3.3 Biểu đồ UseCase quản lý tài khoản..........................................18
2.3.4 Biểu đồ UseCase quản lý nhà xuất bản.....................................19
2.3.5 Biểu đồ UseCase quản lý thể loại.............................................20
2.3.6 Biểu đồ UseCase quản lý sản phẩm..........................................21
2.3.7 Biểu đồ UseCase quản lý FlashSale.........................................22
2.3.8 Biểu đồ UseCase quản lý mã giảm giá.....................................23
2.3.9 Biểu đồ UseCase quản lý đặt hàng...........................................24
2.3.10 Biểu đồ UseCase Báo cáo thống kê..........................................26
2.3.11 Biểu đồ UseCase khách hàng...................................................27
2.4 Biểu đồ tuần tự (Sequence Diagram).......................................................28
2.4.1 Biểu đồ tuần tự chức năng đăng nhập.......................................28
2.4.2 Biểu đồ tuần tự chức năng đăng ký..........................................29
2.4.3 Biểu đồ tuần tự chức năng thêm nhà xuất bản..........................30
2.4.4 Biểu đồ tuần tự chức năng sửa nhà xuất bản.............................31
2.4.5 Biểu đồ tuần tự chức năng xoá nhà xuất bản............................32
2.4.6 Biểu đồ tuần tự chức năng thêm thể loại..................................33
2.4.7 Biểu đồ tuần tự chức năng sửa thể loại.....................................34
2.4.8 Biểu đồ tuần tự chức năng đổi trạng thái thể loại.....................35
2.4.9 Biểu đồ tuần tự chức năng xoá thể loại.....................................36
2.5 Biểu đồ lớp (Class Diagram)...................................................................37
2.6 Thuật toán khuyến nghị mua hàng...........................................................38
2.6.1 Thu thập dữ liệu........................................................................38
CHƯƠNG 3. XÂY DỰNG WEBSITE.............................................................39
TÀI LIỆU THAM KHẢO................................................................................40
DANH SÁCH HÌNH ẢNH
Hình 2.1 Sơ đồ phân rã chức năng......................................................................10
Hình 2.2 Biểu đồ UseCase tổng quát...................................................................16
Hình 2.3 Biểu đồ UseCase Đăng nhập................................................................17
Hình 2.4 Biểu đồ UseCase Quản lý tài khoản.....................................................18
Hình 2.5 Biểu đồ UseCase quản lý nhà xuất bản.................................................19
Hình 2.6 Biểu đồ UseCase quản lý thể loại.........................................................20
Hình 2.7 Biểu đồ UseCase quản lý sản phẩm......................................................21
Hình 2.8 Biểu đồ UseCase quản lý FlashSale.....................................................22
Hình 2.9 Biểu đồ UseCase quản lý mã giảm giá.................................................23
Hình 2.10 Biểu đồ UseCase quản lý đặt hàng.....................................................24
Hình 2.11 Biểu đồ UseCase quản lý truyền thông...............................................25
Hình 2.12 Biểu đồ UseCase báo cáo thống kê.....................................................26
Hình 2.13 Biểu đồ UseCase khách hàng.............................................................27
Hình 2.14 Biểu đồ tuần tự chức năng đăng nhập.................................................28
Hình 2.15 Biểu đồ tuần tự chức năng đăng ký....................................................29
Hình 2.16 Biểu đồ tuần tự chức năng thêm nhà xuất bản....................................30
Hình 2.17 Biểu đồ tuần tự chức năng sửa nhà xuất bản......................................31
Hình 2.18 Biểu đồ tuần tự chức năng xoá nhà xuất bản......................................32
Hình 2.19 Biểu đồ tuần tự chức năng thêm thể loại............................................33
Hình 2.20 Biểu đồ tuần tự chức năng sửa thể loại...............................................34
Hình 2.21 Biểu đồ tuần tự chức năng đổi trạng thái thể loại...............................35
Hình 2.22 Biểu đồ tuần tự chức năng xoá thể loại...............................................36
Hình 2.23 Biểu đồ lớp của hệ thống....................................................................37
DANH SÁCH BẢNG BIỂU
Bảng 1.1 Ma trận U x I..........................................................................................7
Bảng 2.1 Bảng yêu cầu phi chức năng của website...............................................9
Bảng 2.2 Bảng kịch bản chức năng đăng nhập....................................................17
Bảng 2.3 Bảng kịch bản chức năng quản lý tài khoản.........................................18
Bảng 2.4 Bảng kịch bản chức năng quản lý nhà xuất bản...................................19
Bảng 2.5 Bảng kịch bản chức năng quản lý thể loại............................................20
Bảng 2.6 Bảng kịch bản chức năng quản lý sản phẩm........................................21
Bảng 2.7 Bảng kịch bản chức năng quản lý flashsale..........................................22
Bảng 2.8 Bảng kịch bản chức năng quản lý mã giảm giá....................................23
Bảng 2.9 Bảng kịch bản chức năng quản lý đặt hàng..........................................24
Bảng 2.10 Bảng kịch bản chức năng quản lý truyền thông.................................25
Bảng 2.11 Bảng kịch bản chức năng báo cáo thống kê.......................................26
Bảng 2.12 Bảng kịch bản khách hàng.................................................................27
CHƯƠNG 1. TỔNG QUAN – GIỚI THIỆU ĐỀ TÀI

1.1 Tính cấp thiết đề tài


Thương mại điện tử đã trở thành một phần không thể thiếu của cuộc sống
hàng ngày, đặc biệt sau sự lan truyền của đại dịch COVID-19. Người dùng ngày
càng chuyển sang mua sắm trực tuyến, và việc xây dựng một trang web nhà sách
trực tuyến mang tính cá nhân hóa có vai trò quan trọng trong việc thu hút và giữ
chân khách hàng. Trong thế giới số hóa, dữ liệu người dùng là quý báu. Mô hình
khuyến nghị mua hàng dựa trên trí tuệ nhân tạo có khả năng phân tích dữ liệu
này để đưa ra các đề xuất sản phẩm cá nhân hóa. Điều này giúp tăng doanh số
bán hàng, cải thiện trải nghiệm của khách hàng và tối ưu hóa quy trình mua sắm.
Ngành sách trực tuyến ngày càng cạnh tranh với sự gia tăng của các trang web và
ứng dụng khác. Để nổi bật, cần có một trang web nhà sách trực tuyến hiện đại và
hấp dẫn, kết hợp với các công nghệ khuyến nghị tiên tiến. Các tiến bộ trong trí
tuệ nhân tạo và học máy đã làm cho các mô hình khuyến nghị trở nên mạnh mẽ
hơn. Các thuật toán có khả năng hiểu biết hơn về sở thích của người dùng, từ đó
cung cấp gợi ý sản phẩm tốt hơn. Người dùng ngày càng đòi hỏi trải nghiệm mua
sắm trực tuyến tốt hơn, bao gồm sự cá nhân hóa và tiện lợi. Một trang web nhà
sách trực tuyến tích hợp mô hình khuyến nghị mua hàng sẽ đáp ứng được nhu
cầu này và tạo lợi ích cho doanh nghiệp.

1.2 Tổng quan về đề tài


Đề tài "Website nhà sách trực tuyến kết hợp mô hình Khuyến nghị mua
hàng" là một dự nhằm xây dựng một nền tảng thương mại điện tử dành cho việc
mua sắm sách trực tuyến. Đây là một lĩnh vực ngày càng phát triển trong thời đại
số hóa, nơi mà người tiêu dùng trông đến các trải nghiệm mua sắm tiện lợi và cá
nhân hóa. Chủ đề này kết hợp cả việc phát triển website và sử dụng mô hình
khuyến nghị mua hàng để nâng cao trải nghiệm mua sắm của người dùng.

1.3 Mục đích đề tài


Đề tài được xây dựng với mục đích xây dựng một nền tảng thương mại điện
tử đáp ứng nhu cầu mua sắm sách trực tuyến của người dùng và cung cấp cho
người dùng trải nghiệm mua sắm cá nhân hóa và thuận lợi hơn. Tiếp theo là tạo
ra một trang web nhà sách trực tuyến với giao diện người dùng thân thiện, giúp
người dùng dễ dàng tìm kiếm, xem thông tin chi tiết về sách, thêm sản phẩm vào
giỏ hàng, và thực hiện thanh toán trực tuyến. Điều này sẽ giúp tăng tính tiện lợi
trong việc mua sắm sách trực tuyến, đồng thời tạo điều kiện thuận lợi cho việc
quản lý đơn hàng. Cuối cùng, em muốn tạo ra một trải nghiệm mua sắm cá nhân
hóa cho người dùng thông qua việc phát triển mô hình khuyến nghị mua hàng.
Dựa trên dữ liệu hành vi mua sắm của người dùng, mô hình này sẽ đề xuất các
sản phẩm có thể phù hợp với sở thích và nhu cầu của từng người dùng. Điều này

1
giúp người dùng khám phá sách mới một cách hiệu quả và thú vị hơn, tạo ra sự
kết nối sâu hơn giữa họ và nền tảng mua sắm trực tuyến.

1.4 Đối tượng và phạm vi đề tài


1.4.1 Đối tượng của đề tài
Người sử dụng cuối (người mua sách trực tuyến): Đây là những người dùng
đang quan tâm đến việc mua sách trực tuyến và muốn có trải nghiệm mua sắm
sách thuận tiện và hiệu quả. Đối tượng này sẽ sử dụng website để tìm kiếm, xem
thông tin về sách, đặt hàng và thực hiện thanh toán.
Người quản lý (quản trị viên) của nhà sách trực tuyến: Đây là người quản lý
nội dung của website, quản lý danh mục sản phẩm, quản lý đơn đặt hàng, và
thường xuyên cập nhật thông tin về sách và tình trạng hàng tồn kho.
Hệ thống khuyến nghị mua hàng: Hệ thống này sẽ là một phần quan trọng
của đề tài và sẽ là đối tượng quan trọng để phát triển. Hệ thống này sẽ phân tích
hành vi mua sắm và lịch sử mua sắm của người dùng để đề xuất các cuốn sách
tương tự hoặc phù hợp với sở thích của họ.
1.4.2 Phạm vi của đề tài
Xây dựng website nhà sách trực tuyến: Phạm vi này bao gồm việc phát triển
một trang web nhà sách trực tuyến với nhiều tính năng quan trọng. Trang web sẽ
cho phép người dùng tìm kiếm sách dễ dàng, hiển thị thông tin chi tiết về từng
cuốn sách bao gồm tóm tắt, giá, tác giả, và đánh giá từ người dùng. Ngoài ra,
website sẽ hỗ trợ chức năng đặt hàng và thanh toán trực tuyến an toàn. Người
dùng cũng có thể quản lý tài khoản cá nhân và theo dõi lịch sử mua sắm.
Phát triển mô hình khuyến nghị mua hàng: Dự án bao gồm việc xây dựng và triển
khai một hệ thống khuyến nghị mua sách sử dụng mô hình máy học. Mô hình
này sẽ dựa trên dữ liệu lịch sử mua sắm của người dùng và thông tin về sách để
đề xuất các cuốn sách phù hợp với sở thích đọc sách của họ. Điều này đòi hỏi
tích hợp và xử lý dữ liệu lớn về sách và hành vi mua sắm.

1.5 Phương pháp thực hiện đề tài


Phân tích yêu cầu: Xác định và phân tích các yêu cầu của bài toán, bao gồm
chức năng, giao diện người dùng, tính năng gợi ý sản phẩm, quản lý sách và quản
lý người dung nhằm xác định phạm vi và mục tiêu của dự án.
Thiết kế hệ thống: Thiết kế kiến trúc và cấu trúc của hệ thống website nhà
sách. Xác định các module, giao diện người dùng, cơ sở dữ liệu và các chức năng
chính của hệ thống. Từ đó thiết kế nên các mô hình kiến trúc hệ thống website,
thiết kế cơ sở dữ liệu và thiết kế giao diện người dùng.
Thiết kế giao diện: Dựa trên yêu cầu và phân tích, thiết kế giao diện người
dùng của website. Đảm bảo giao diện thân thiện và dễ sử dụng, với các tính năng
như tìm kiếm sách, xem chi tiết sản phẩm, và quản lý tài khoản dễ dàng tiếp cận.

2
Phát triển website: Triển khai và xây dựng hệ thống website quản lý nhà
sách dựa trên thiết kế đã được xác định. Sử dụng ngôn ngữ lập trình và công
nghệ phát riển phần mềm như C#, .NET, hệ quản trị cơ sở dữ liệu SQL Server và
các công cụ phát triển phần mềm như Visual Studio, Visual Studio Code có thể
được sử dụng để xây dựng và triển khai hệ thống.
Tích hợp trí tuệ nhân tạo: Sau khi hoàn thành website đề tài sẽ tích hợp mô
hình khuyến nghị mua sách sử dụng trí tuệ nhân tạo dựa trên dữ liệu hành vi mua
sắm của người dùng để cải thiện hiệu suất của hệ thống. Mô hình này sẽ dựa trên
dữ liệu về sách và hành vi mua sắm để đề xuất các cuốn sách phù hợp với sở
thích đọc sách của người dùng đó là mô hình Lọc cộng tác (Collaborative
Filtering) để khuyến nghị mua hàng cho người mua sách.

1.6 Công nghệ sử dụng


1.6.1 Tổng quan về HTML – CSS
HTML là chữ viết tắt của HyperText Markup Language, dịch ra tiếng Việt
có nghĩa là ngôn ngữ đánh dấu siêu văn bản. Nó dùng để định dạng bố cục, các
thuộc tính liên quan đến cách hiển thị của một đoạn text và được hiển thị trên
một chương trình đặc biệt, ta gọi là trình duyệt browser.
Hiện nay có khá nhiều browser như Firefox, Chrome, Cốc Cốc, ...Tất cả browser
đều có điểm chung là giúp người dùng thao tác với website và nó đều có khả
năng biên dịch những đoạn mã HTML.
CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được
sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh
dấu (HTML). Nói ngắn gọn hơn là ngôn ngữ tạo phong cách cho trang web. Bạn
có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạng các phần tử trên
website như việc tạo ra các đoạn văn bản, các tiêu đề, bảng…thì CSS sẽ giúp
chúng ta có thể thêm style vào các phần tử HTML đó như đổi bố cục, màu sắc
trang, đổi màu chữ, font chữ, thay đổi cấu trúc…
Mối tương quan giữa HTML và CSS rất mật thiết. HTML là ngôn ngữ
markup (nền tảng của site) và CSS định hình phong cách (tất cả những gì tạo nên
giao diện website), chúng là không thể tách rời.
1.6.2 Framework Angular
Angular là một framework phía client được phát triển bởi Google, được sử
dụng để xây dựng các ứng dụng web động và đa trang (SPA - Single Page
Application). Nó cho phép các nhà phát triển xây dựng các ứng dụng web hiện
đại và mạnh mẽ bằng cách sử dụng các công cụ và thư viện đã được tích hợp sẵn.
Một số ưu điểm của Angular:
- Thiết kế phía client mạnh mẽ: Angular cung cấp một kiến trúc mạnh mẽ
và component-based, giúp bạn dễ dàng xây dựng và quản lý giao diện người
dùng phức tạp. Các thành phần có thể được tái sử dụng, điều này giúp tăng năng
suất và giảm thời gian phát triển.

3
- SPA (Single Page Application): Angular cho phép bạn xây dựng ứng
dụng web SPA, nơi một lần tải trang và sau đó tương tác với máy chủ mà không
cần tải lại toàn bộ trang. Điều này tạo ra trải nghiệm người dùng mượt mà và
nhanh chóng.
- TypeScript: Angular được viết bằng TypeScript, một ngôn ngữ lập trình
phía client có tính năng tĩnh hơn và mạnh mẽ hơn JavaScript. TypeScript giúp
kiểm tra lỗi ở thời điểm biên dịch, giúp giảm thiểu lỗi tại runtime và cung cấp
tính năng IntelliSense trong các trình chỉnh sửa mã nguồn. Hệ thống
- Dependency Injection (DI): Angular cung cấp hệ thống DI tích hợp sẵn,
giúp quản lý các phụ thuộc và làm cho mã dễ dàng kiểm tra và bảo trì.
- Quản lý định tuyến (Routing): Angular có một hệ thống định tuyến mạnh
mẽ cho phép điều hướng giữa các trang và các thành phần trong ứng dụng một
cách dễ dàng.
- Hỗ trợ đa nền tảng: Angular hỗ trợ việc xây dựng ứng dụng web cho
nhiều nền tảng, bao gồm desktop và di động. Bạn có thể sử dụng Angular để phát
triển ứng dụng web, ứng dụng di động (sử dụng NativeScript hoặc Ionic), và ứng
dụng máy tính bàn (sử dụng Electron).
- Cộng đồng và Hỗ trợ từ Google: Angular có một cộng đồng lớn và nhận
được sự hỗ trợ đặc biệt từ Google, điều này đảm bảo việc phát triển và bảo trì của
nó trong tương lai.
- Bảo mật: Angular cung cấp các tính năng bảo mật tích hợp, bao gồm
Cross-Site Scripting (XSS) và Cross-Site Request Forgery (CSRF) protection,
giúp bảo vệ ứng dụng của bạn khỏi các mối đe dọa bảo mật.
Angular là một framework mạnh mẽ và linh hoạt cho phát triển ứng dụng
web hiện đại và đa nền tảng. Sử dụng Angular có thể giúp bạn tăng năng suất, cải
thiện trải nghiệm người dùng, và đảm bảo tính bảo mật cho ứng dụng.

1.6.3 Ngôn ngữ lập trình phía server C#


Ngôn ngữ lập trình C# được lựa chọn để lập trình hệ thống phía Server. C#
là một ngôn ngữ mạnh mẽ, phát triển bởi Microsoft, và nó đã chứng minh được
sự linh hoạt và hiệu suất của mình trong nhiều ứng dụng trực tuyến và hệ thống
phức tạp.
Dưới đây là một số lý do quan trọng về việc lựa chọn C# để xây dựng Back-End:
- Tích hợp với hệ thống Microsoft: C# được thiết kế chủ yếu để làm việc
trên các nền tảng và hệ điều hành của Microsoft, như Windows và Azure. Điều
này giúp đảm bảo tích hợp dễ dàng và tương thích tốt với các công nghệ và dịch
vụ của Microsoft.
- Mạnh mẽ và An toàn: C# là một ngôn ngữ mạnh mẽ với kiểu dữ liệu
tường minh, điều này giúp tránh được nhiều lỗi logic và bảo vệ hệ thống khỏi các
lỗ hổng bảo mật potenital.

4
- Thư viện và Framework đa dạng: C# đi kèm với một số thư viện và
Framework mạnh mẽ như ASP.NET và ASP.NET Core, giúp lập trình viên dễ
dàng phát triển các ứng dụng Back-End phức tạp và đa nền tảng.
- Hiệu suất cao: C# được biên dịch và có khả năng tối ưu hóa, cho phép ứng
dụng chạy nhanh và hiệu quả, đặc biệt là trong các ứng dụng yêu cầu xử lý dữ
liệu lớn và tải trọng cao.
- Cộng đồng lớn và hỗ trợ đa dạng: C# có một cộng đồng phát triển lớn và
nhiều tài liệu học tập, diễn đàn, và tài liệu tham khảo trực tuyến. Điều này giúp
lập trình viên dễ dàng tìm giải pháp cho các thách thức cụ thể trong quá trình
phát triển.
- Đa nền tảng: Với sự ra mắt của ASP.NET Core, C# đã trở thành một ngôn
ngữ đa nền tảng, cho phép phát triển ứng dụng chạy trên nhiều hệ điều hành khác
nhau, bao gồm Windows, Linux và macOS.
- Tích hợp với công cụ phát triển: Visual Studio là một môi trường phát
triển tích hợp mạnh mẽ dành cho C#, giúp tăng năng suất và chất lượng phát triển
ứng dụng

1.6.4 Cơ sở dữ liệu Microsoft SQL Sever


SQL Server là phần mềm ứng dụng cho hệ thống quản trị cơ sở dữ liệu
quan hệ (Relational Database Management System – RDBMS) được phát triển
bởi Microsoft vào năm 1988. Nó được sử dụng để tạo, duy trì, quản lý và triển
khai hệ thống RDBMS.
Việc lựa chọn Microsoft SQL Server làm cơ sở dữ liệu cho hệ thống của
chúng ta là một quyết định có ý nghĩa quan trọng đối với sự phát triển và hoạt
động của ứng dụng.
Dưới đây là một số lý do tại sao chúng ta đã chọn SQL Server:
- Tích hợp tốt với hệ thống Microsoft: SQL Server được phát triển bởi
Microsoft, do đó nó tích hợp tốt với các sản phẩm và công nghệ khác của
Microsoft như Windows Server, Azure, và .NET Framework. Điều này giúp
chúng ta dễ dàng triển khai và quản lý hệ thống.
- Độ tin cậy và hiệu suất: SQL Server đã được kiểm tra và thử nghiệm kỹ
lưỡng, đảm bảo tính độ tin cậy và hiệu suất cao. Cơ sở dữ liệu này có khả năng
xử lý một lượng lớn dữ liệu và số lượng truy cập cùng một lúc mà không gây ra
sự cố.
- Bảo mật: SQL Server cung cấp nhiều tính năng bảo mật mạnh mẽ, bao
gồm quản lý quyền truy cập và mã hóa dữ liệu. Điều này giúp bảo vệ thông tin
quan trọng của chúng ta khỏi các mối đe dọa bên ngoài. Hỗ trợ mở rộng: SQL
Server cho phép chúng ta mở rộng hệ thống dễ dàng khi cần thiết. Chúng ta có
thể thêm các máy chủ mới hoặc tăng cường cấu trúc cơ sở dữ liệu mà không gặp
nhiều khó khăn.

5
- Cộng đồng và tài liệu đa dạng: SQL Server có một cộng đồng lớn và sự hỗ
trợ từ Microsoft, điều này đồng nghĩa với việc có nhiều tài liệu hướng dẫn, diễn
đàn, và tài liệu tham khảo trực tuyến để giúp giải quyết các vấn đề hoặc tối ưu
hóa cơ sở dữ liệu.
- Khả năng quản lý dữ liệu phức tạp: SQL Server hỗ trợ các tính năng mạnh
mẽ như xử lý dữ liệu dạng JSON, hỗ trợ dữ liệu địa lý, và nhiều tính năng phân
tích dữ liệu khác, giúp chúng ta xử lý dữ liệu phức tạp và đa dạng.
Chọn SQL Server làm cơ sở dữ liệu cho hệ thống của chúng ta không chỉ
giúp đảm bảo tính ổn định và an toàn mà còn cung cấp nhiều công cụ và tài
nguyên để phát triển ứng dụng một cách hiệu quả và mở rộng dễ dàng trong
tương lai.

1.6.5 Ngôn ngữ lập trình python


Python là một ngôn ngữ lập trình phổ biến và mạnh mẽ được sử dụng rộng
rãi trong lĩnh vực học máy và trí tuệ nhân tạo. Dưới đây là một số điểm quan
trọng về Python và lý do tại sao nó thường được chọn làm ngôn ngữ chính để xây
dựng mô hình học máy:
- Đơn giản và dễ đọc: Python có cú pháp đơn giản và dễ đọc, giúp người lập
trình dễ dàng hiểu và sửa lỗi trong mã nguồn. Điều này rất quan trọng
trong việc phát triển và duy trì các dự án phức tạp.
- Cộng đồng lớn: Python có một cộng đồng phát triển rất lớn và nhiệt tình.
Điều này đồng nghĩa với việc có sẵn nhiều thư viện và công cụ hỗ trợ học
máy, giúp giảm thời gian phát triển và tối ưu hóa mô hình.
- Thư viện học máy mạnh mẽ: Python có các thư viện như NumPy, pandas,
scikit-learn và TensorFlow/Keras (hoặc PyTorch) cho phép bạn thực hiện
các tác vụ liên quan đến học máy, xử lý dữ liệu và xây dựng mô hình một
cách dễ dàng và hiệu quả.
- Khả năng tích hợp: Python dễ dàng tích hợp với các ngôn ngữ và công
nghệ khác, cho phép bạn sử dụng các thư viện và dịch vụ bên ngoài để mở
rộng khả năng của mô hình học máy.
- Sự đa dạng: Python được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau,
từ phân tích dữ liệu, web development đến lập trình máy tính khoa học.
Điều này có nghĩa rằng bạn có thể sử dụng cùng một ngôn ngữ cho nhiều
mục đích và tích hợp dễ dàng.
- Hỗ trợ đa nền tảng: Python có sẵn cho nhiều hệ điều hành khác nhau,
đồng thời cũng có thể chạy trên nhiều nền tảng khác nhau, từ máy tính cá
nhân đến các môi trường đám mây.

6
1.6.6 Thuật toán khuyến nghị mua hàng
1.6.6.1. Hệ thống gợi ý
Hệ thống gợi ý có thể đưa ra những mục thông tin phù hợp cho người
dùng bằng cách dựa vào dữ liệu về hành vi trong quá khứ của họ để dự đoán
những mục thông tin mới trong tương lai mà người dùng có thể thích. Trong hệ
thống gợi ý, lọc cộng tác là một kỹ thuật được dùng để đánh giá độ quan tâm của
người dùng trên các sản phẩm mới. Kỹ thuật này được áp dụng thành công trong
nhiều ứng dụng. Trong các hệ thống lọc cộng tác, sở thích của người dùng trên
các sản phẩm mới được dự đoán dựa trên dữ liệu về sở thích của người dùng –
sản phẩm (hoặc đánh giá của người dùng trên sản phẩm) trong quá khứ. Trong đồ
án em sẽ sử dụng kỹ thuật lọc cộng tác dựa trên mô hình láng giềng (mô hình lân
cận) để gợi ý sản phẩm trong hệ thống bán hàng trực tuyến. Một hệ thống gợi ý
tốt có thể đóng vai trò như một người trung gian hỗ trợ khách hàng đưa ra các
quyết định mua hàng đúng đắn. Bằng cách xác định mục đích và nhu cầu của
khách hàng, hệ thống có thể đưa ra một tập các gợi ý giúp cho người mua dễ
dàng chọn lựa sản phẩm yêu thích hơn. Qua đó hiệu suất của việc mua bán hàng
trực tuyến được tăng cao một cách đáng kể
1.6.6.2. Lọc công tác (Collaborative Filtering)
Lọc cộng tác (Collaborative Filtering) là một kỹ thuật mạnh và nó đã được
áp dụng khá thành công trong nhiều hệ tư vấn. Thực chất, lọc cộng tác là một
hình thức tư vấn tự động bằng cách dựa trên sự tương tự giữa những người dùng
hoặc giữa những sản phẩm trong hệ thống và đưa ra dự đoán sự quan tâm của
người dùng tới một sản phẩm, hoặc đưa ra gợi ý một sản phẩm mới cho người
dùng nào đó.
Trong cuộc sống hằng ngày, mọi người thườngtin vào những lời giới thiệu
từ những người khác thông qua lời nói, thư từ văn bản, các nguồn tin thu được
trên các phương tiện thông tin đại chúng. Về bản chất, lọc cộng tác cũng chính là
hình thức tư vấn như trên, tuy nhiên, việc này được thực hiện tự động bởi các
máy tính. Các nhà phát triển hệ thống gợi ý đầu tiên vào năm 1992 (D. Goldberg
et al., 1992) đã đưa ra thuật ngữ “collabrative filtering” (lọc cộng tác). Giả thuyết
của lọc cộng tác là: “Nếu người dùng u và u' đánh giá cho n sản phẩm tương
tự nhau, hoặc có hành vi tương tự nhau (như: xem, mua, nghe…) thì họ sẽ có các
đánh giá tương tự nhau đối với các sản phẩm khác”. Trong hệ thống gợi ý, người
ta thường biểu diễn các đánh giá của người dùng cho các sản phẩm qua ma trận
gồm tập người dùng U và tập sản phẩm I
i1 i2 … ij … ik
u1

um

un
Bảng 1.1 Ma trận U x I

7
Các ký tự để phân biệt người dùng và các mục tin được thể hiện như sau: u,
u’ (đại diện cho người dùng) – i, i’ (đại diện cho các sản phẩm). Ký hiệu r ui để chỉ
mức độ thích của người dùng u cho sản phẩm i, chẳng hạn giá trị này trong
khoảng từ 1 (không thích) đến 5 (thích nhất) đối với dữ liệu bán hàng, r^ ui là một
hàm dùng để dự đoán đánh giá của người dùng u cho sản phẩm i.
Theo mô hình láng giềng, việc dự đoán đánh giá của một người dùng trên
một mục tin (item) được dựa trên các đánh giá của những người dùng “lân cận”
trên mục tin đó. Vì vậy, một độ đo tương tự (similarity) giữa những người dùng
cần được định nghĩa trước khi một tập những người dùng láng giềng gần nhất
được chọn ra.
Hệ tư vấn dựa trên lọc cộng tác (hệ lọc cộng tác) sẽ dự đoán hàm tiện ích
của những sản phẩm cho những người dùng cụ thể dựa trên trọng số ban đầu của
sản phẩm được cung cấp bởi người dùng khác. Giống như trước, hàm tiện ích r^ ui
của sản phẩm i cho người dùng u được đánh giá dựa trên những hàm tiện ích r^
(uj,i) được gán bởi sản phẩm i và người dùng u j ∈ U, đây là những người mà có
cùng sở thích và thị hiếu giống u. Chẳng hạn, trong ứng dụng về tư vấn sách, để
tư vấn những sách mới cho người dùng u, hệ tư vấn lọc cộng tác sẽ tìm những
người tương tự với người dùng u; nghĩa là những người dùng khác nhau nhưng
có cùng thị hiếu về sách (trọng số về các sách giống nhau là như nhau). Sau đó,
chỉ những quyển sách có độ quan tâm nhất sẽ được tư vấn cho người dùng.
Mở rộng của vấn đề này là tìm tập N sản phẩm mà rất có thể người dùng sẽ
quan tâm – công việc chính trong các hệ tư vấn hiện nay. Giả sử rằng chúng ta có
một hệ thống dự đoán các đánh giá của người dùng lên các sản phẩm mới, và dựa
vào đó ta có thể lấy ra N sản phẩm được dự đoán có trọng số cao nhất. Cuối
cùng, hai vấn đề quan trọng nhất đó là làm thế nào để tìm được tập K người dùng
tương tự với người dùng u nhất dựa trên thị hiếu về sản phẩm hay làm thế nào để
tìm ra tập K sản phẩm tương tự với sản phẩm i nhất để có thể đưa ra các dự đoán
trọng số đánh giá của người dùng và sản phẩm tương ứng.
1.6.6.3. Thuật toán về mô hình k láng giếng gần trong lọc công tác
UserBase (k-Nearest Neighborhood)
Phương pháp lọc cộng tác có đặc trưng cơ bản là nó thường sử dụng toàn bộ
dữ liệu đã có để dự đoán đánh giá của một người dùng nào đó về sản phẩm mới.
Nhờ lợi thế là nó có khả năng đưa trực tiếp dữ liệu mới vào bảng dữ liệu, do đó
nó đạt được khá nhiều thành công khi được áp dụng vào các ứng dụng thực tế.
Cũng do đó mà các kỹ thuật này thường đưa ra các dự đoán chính xác hơn trong
các hệ trực tuyến – nơi mà ở đó luôn có dữ liệu mới được cập nhật.
Thông thường, có hai cách tiếp cận của lọc cộng tác theo mô hình k láng
giềng: hệ dựa trên người dùng (UserBase) – tức dự đoán dựa trên sự tương tự
giữa các người dùng và hệ dựa trên sản phẩm (ItemBase) – dự đoán dựa trên sự
tương tự giữa các sản phẩm. Hệ dựa trên người dùng (UserBase) xác định sự
tương tự giữa hai người dùng thông qua việc so sánh các đánh giá của họ trên
cùng sản phẩm, sau đó dự đoán đánh giá sản phẩm i bởi người dùng u, hay chính
là đánh giá trung bình của những người dùng tương tự với người dùng u. Ưu

8
điểm: Xét một cách tổng quát thì hệ này không yêu cầu quá nặng vào việc tính
toán và do đó có thể đưa ra những tư vấn có độ chính xác cao và nhanh chóng
cho một số lượng lớn người dùng. Bởi vì hệ này không yêu cầu mô tả nội dung
một cách tường minh mà chỉ dựa vào sự đánh giá của người dùng để ước lượng
xem có bao nhiêu người dùng đồng ý và không đồng ý. Đó cũng chính là lý do
tại sao mà hệ này có thể đưa ra những gợi ý cho người dùng.

9
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ

2.1 Phân tích yêu cầu của hệ thống


2.1.1 Yêu cầu chức năng
Sau khi có các thông tin thu thập được từ mong muốn của người sử dụng,
đề tài có thể hướng đến các chức năng sau:
- Một số chức năng cơ bản chính mà hệ thống cần có bao gồm tìm kiếm
sách, hiển thị chi tiết thông tin, đăng ký đăng nhập, quản lý thông tin
bên bán, quản lý sản phẩm, quản lý danh sách ưa thích, đánh giá sách,

- Tìm kiếm và bộ lọc: xác định các đặc điểm mà người dùng có thể tìm
kiếm sách như tên sách, tác giả, nhà xuất bản,…
- Giao diện người dùng: giao diện của website phù hợp và thân thiện với
người sử dụng.
- Quản lý tài khoản: quản lý các tài khoản đã đăng ký, đăng nhập tài
khoản, thông tin cá nhân người dùng, danh sách yêu thích và lịch sử
mua hàng.
- Xác định cách tích hợp các phương thức thanh toán để người dùng có
thể thực hiện giao dịch mua sách trực tuyến.
- Đáp ứng và hiệu suất: Xác định yêu cầu về đáp ứng nhanh, hiệu suất
và khả năng mở rộng của hệ thống để đảm bảo trải nghiệm người dùng
tốt và xử lý tốt cả khi lượng truy cập tăng lên.
- Quản lý và phân quyền: Hệ thống cho phép quản lý và phân quyền các
vai trò khác nhau, bao gồm nhân viên quản lý, nhân viên bán.
2.1.2 Yêu cầu phi chức năng
Các yêu cầu phi chức năng:

Mục Tên yêu cầu Mô tả yêu cầu

1 Giao diện Giao diện hệ thống phải dễ sử dụng, trực


quan, thân thiện với mọi người dùng.

2 Tốc độ xử lý Hệ thống phải xử lý nhanh chóng, tối ưu và


chính xác

3 Tương thích Tương thích với đa phần các trình duyệt web
trên điện thoại và máy tính.
Bảng 2.2 Bảng yêu cầu phi chức năng của website

10
2.2 Biểu đồ phân rã chức năng

Hình 2.1 Sơ đồ phân rã chức năng

2.2.1 Quản lý tài khoản


Mô tả chức năng: Quản lý tài khoản là một phần quan trọng của hệ thống để quản
trị viên có thể quản lý tài khoản người dùng. Nó bao gồm các tính năng sau:
2.2.1.1. Thêm tài khoản
Mô tả: Cho phép quản trị viên thêm mới tài khoản người dùng vào hệ thống.
Tính năng: Quản trị viên cung cấp thông tin cơ bản như tên, địa chỉ email, mật
khẩu và các thông tin cá nhân khác của người dùng. Hệ thống tạo tài khoản mới
và lưu trữ vào cơ sở dữ liệu.
2.2.1.2. Phân quyền tài khoản
Mô tả: Cho phép quản trị viên quản lý quyền hạn và vai trò của tài khoản người
dùng.
Tính năng: Quản trị viên có thể gán vai trò và quyền hạn cho tài khoản người
dùng, xác định phạm vi truy cập của họ vào các tính năng và chức năng cụ thể
trên trang web.
2.2.1.3. Chỉnh sửa thông tin tài khoản
Mô tả: Cho phép quản trị viên chỉnh sửa thông tin của một tài khoản người dùng
hiện có.
Tính năng: Quản trị viên có thể cập nhật thông tin cá nhân của tài khoản người
dùng, bao gồm tên, địa chỉ, mật khẩu và thông tin khác.
2.2.1.4. Xóa tài khoản người dùng
Mô tả: Cho phép quản trị viên xóa tài khoản người dùng nếu cần thiết.
Tính năng: Hệ thống yêu cầu xác nhận từ quản trị viên trước khi xóa tài khoản.
2.2.2 Quản Lý Phân Quyền
Mô tả chức năng: Quản lý phân quyền là một phần quan trọng của hệ thống để
quản trị viên có thể quản lý các quyền hạn và vai trò của người dùng trên trang
web nhà sách trực tuyến.

11
2.2.2.1. Thêm Phân Quyền
Mô tả: Cho phép quản trị viên thêm mới phân quyền hoặc vai trò cho người
dùng.
Tính năng: Quản trị viên cung cấp tên và mô tả cho phân quyền mới và xác định
các quyền hạn cụ thể mà người dùng sẽ có khi được gán vai trò này.
2.2.2.2. Sửa Phân Quyền
Mô tả: Cho phép quản trị viên chỉnh sửa thông tin của một phân quyền hoặc vai
trò hiện có.
Tính năng: Quản trị viên có thể cập nhật tên, mô tả và các quyền hạn của phân
quyền hoặc vai trò mà người dùng đã được gán.
2.2.2.3. Xoá Phân Quyền
Mô tả: Cho phép quản trị viên xóa phân quyền hoặc vai trò nếu cần thiết.
Tính năng: Hệ thống yêu cầu xác nhận từ quản trị viên trước khi xóa phân quyền
hoặc vai trò.
2.2.3 Quản Lý Thể Loại
Mô tả chức năng: Quản lý thể loại là một phần quan trọng của hệ thống để quản
trị viên có thể quản lý thông tin về các thể loại sách trên trang web nhà sách trực
tuyến.
2.2.3.1. Thêm Thể Loại
Mô tả: Cho phép quản trị viên thêm mới thông tin về một thể loại sách nếu cần
thiết.
Tính năng: Quản trị viên cung cấp thông tin như tên thể loại, mô tả, và các thông
tin khác. Hệ thống tạo thông tin mới và lưu trữ vào cơ sở dữ liệu.
2.2.3.2. Sửa Thể Loại
Mô tả: Cho phép quản trị viên chỉnh sửa thông tin của một thể loại sách hiện có.
Tính năng: Quản trị viên có khả năng cập nhật thông tin của thể loại, bao gồm
tên, mô tả, và các thông tin khác.
2.2.3.3. Đổi Trạng Thái Thể Loại
Mô tả: Cho phép quản trị viên thay đổi trạng thái của thể loại (hoạt động hoặc
tạm dừng) để quản lý việc hiển thị thể loại trên trang web.
Tính năng: Quản trị viên có thể chuyển thể loại từ trạng thái hoạt động sang tạm
dừng và ngược lại. Điều này ảnh hưởng đến việc thể loại có hiển thị trên trang
web hay không.
2.2.3.4. Xoá Thể Loại
Mô tả: Cho phép quản trị viên xóa thông tin của một thể loại sách nếu cần thiết.
Tính năng: Hệ thống yêu cầu xác nhận từ quản trị viên trước khi xóa thông tin.

12
2.2.4 Quản Lý Nhà Xuất Bản
Mô tả chức năng: Quản lý nhà xuất bản là một phần quan trọng của hệ thống để
quản trị viên có thể quản lý thông tin về các nhà xuất bản liên quan đến sách trên
trang web nhà sách trực tuyến.
2.2.4.1. Thêm Nhà Xuất Bản
Mô tả: Cho phép quản trị viên thêm mới thông tin của một nhà xuất bản nếu cần
thiết.
Tính năng: Quản trị viên cung cấp thông tin như tên nhà xuất bản, địa chỉ, số
điện thoại, và các thông tin liên quan khác. Hệ thống tạo thông tin mới và lưu trữ
vào cơ sở dữ liệu.
2.2.4.2. Sửa Nhà Xuất Bản
Mô tả: Cho phép quản trị viên chỉnh sửa thông tin của một nhà xuất bản hiện có.
Tính năng: Quản trị viên có khả năng cập nhật thông tin của nhà xuất bản.
2.2.4.3. Xoá Nhà Xuất Bản
Mô tả: Cho phép quản trị viên xóa thông tin của một nhà xuất bản nếu cần thiết.
Tính năng: Hệ thống yêu cầu xác nhận từ quản trị viên trước khi xóa thông tin.
2.2.5 Quản Lý Sản Phẩm
Mô tả chức năng: Quản lý sản phẩm là một phần quan trọng của hệ thống để
quản trị viên có thể quản lý thông tin về các sản phẩm sách trên trang web nhà
sách trực tuyến.
2.2.5.1. Thêm Sản Phẩm
Mô tả: Cho phép quản trị viên thêm mới thông tin về một sản phẩm sách nếu cần
thiết.
Tính năng: Quản trị viên cung cấp thông tin như tên sản phẩm, tác giả, mô tả, giá
bán, và các thông tin khác. Hệ thống tạo thông tin mới và lưu trữ vào cơ sở dữ
liệu.
2.2.5.2. Sửa Sản Phẩm
Mô tả: Cho phép quản trị viên chỉnh sửa thông tin của một sản phẩm sách hiện
có.
Tính năng: Quản trị viên có khả năng cập nhật thông tin của sản phẩm, bao gồm
tên, tác giả, mô tả, giá bán, và các thông tin khác.
2.2.5.3. Đổi Trạng Thái Sản Phẩm
Mô tả: Cho phép quản trị viên thay đổi trạng thái của sản phẩm (hoạt động hoặc
tạm dừng) để quản lý việc hiển thị sản phẩm trên trang web.
Tính năng: Quản trị viên có thể chuyển sản phẩm từ trạng thái hoạt động sang
tạm dừng và ngược lại. Điều này ảnh hưởng đến việc sản phẩm có hiển thị trên
trang web hay không.
2.2.5.4. Xoá Sản Phẩm
Mô tả: Cho phép quản trị viên xóa thông tin của một sản phẩm sách nếu cần
thiết.
13
Tính năng: Hệ thống yêu cầu xác nhận từ quản trị viên trước khi xóa thông tin.
2.2.6 Quản Lý FlashSale
Mô tả chức năng: Quản lý FlashSale là một phần quan trọng của hệ thống để
quản trị viên có thể quản lý các sự kiện giảm giá (FlashSale) trên trang web nhà
sách trực tuyến.
2.2.6.1. Thêm FlashSale
Mô tả: Cho phép quản trị viên tạo sự kiện FlashSale mới nếu cần thiết.
Tính năng: Quản trị viên cung cấp thông tin như tên sự kiện, ngày bắt đầu, ngày
kết thúc, phần trăm giảm giá, và các thông tin khác. Hệ thống tạo sự kiện mới và
lưu trữ vào cơ sở dữ liệu.
2.2.6.2. Sửa FlashSale
Mô tả: Cho phép quản trị viên chỉnh sửa thông tin của một sự kiện FlashSale hiện
có.
Tính năng: Quản trị viên có khả năng cập nhật thông tin của sự kiện FlashSale,
bao gồm tên sự kiện, ngày bắt đầu, ngày kết thúc, phần trăm giảm giá, và các
thông tin khác.
2.2.6.3. Xoá FlashSale
Mô tả: Cho phép quản trị viên xóa sự kiện FlashSale nếu cần thiết.
Tính năng: Hệ thống yêu cầu xác nhận từ quản trị viên trước khi xóa sự kiện
FlashSale.
2.2.7 Quản Lý Mã Giảm Giá
Mô tả chức năng: Quản lý Mã Giảm Giá là một phần quan trọng của hệ thống để
quản trị viên có thể quản lý các mã giảm giá và sự kiện giảm giá trên trang web
nhà sách trực tuyến.
2.2.7.1. Thêm Mã Giảm Giá
Mô tả: Cho phép quản trị viên tạo mã giảm giá mới nếu cần thiết.
Tính năng: Quản trị viên cung cấp thông tin như mã giảm giá, phần trăm giảm
giá, ngày bắt đầu, ngày kết thúc, và các thông tin khác. Hệ thống tạo mã giảm giá
mới và lưu trữ vào cơ sở dữ liệu.
2.2.7.2. Sửa Mã Giảm Giá
Mô tả: Cho phép quản trị viên chỉnh sửa thông tin của một mã giảm giá hiện có.
Tính năng: Quản trị viên có khả năng cập nhật thông tin của mã giảm giá, bao
gồm phần trăm giảm giá, ngày bắt đầu, ngày kết thúc, và các thông tin khác.
2.2.7.3. Xoá Mã Giảm Giá
Mô tả: Cho phép quản trị viên xóa mã giảm giá nếu cần thiết.
Tính năng: Hệ thống yêu cầu xác nhận từ quản trị viên trước khi xóa mã giảm
giá.

14
2.2.8 Quản Lý Đơn Hàng
Mô tả chức năng: Quản lý Đơn Hàng là một phần quan trọng của hệ thống để
quản trị viên có thể quản lý các đơn hàng từ khách hàng trên trang web nhà sách
trực tuyến.
2.2.8.1. Thêm Đơn Hàng
Mô tả: Cho phép quản trị viên thêm đơn hàng mới nếu cần thiết.
Tính năng: Quản trị viên cung cấp thông tin về đơn hàng, bao gồm thông tin
khách hàng, sản phẩm, số lượng, và các thông tin khác. Hệ thống tạo đơn hàng
mới và lưu trữ vào cơ sở dữ liệu.
2.2.8.2. Sửa Đơn Hàng
Mô tả: Cho phép quản trị viên chỉnh sửa thông tin của một đơn hàng hiện có.
Tính năng: Quản trị viên có khả năng cập nhật thông tin của đơn hàng, bao gồm
thông tin khách hàng, sản phẩm, số lượng, và các thông tin khác.
2.2.8.3. Xoá Đơn Hàng
Mô tả: Cho phép quản trị viên xóa đơn hàng nếu cần thiết.
Tính năng: Hệ thống yêu cầu xác nhận từ quản trị viên trước khi xóa đơn hàng.
2.2.8.4. Xem Chi Tiết Đơn Hàng
Mô tả: Cho phép quản trị viên xem chi tiết về một đơn hàng cụ thể.
Tính năng: Quản trị viên có thể xem thông tin chi tiết về đơn hàng, bao gồm danh
sách sản phẩm, thông tin khách hàng, và tình trạng đơn hàng.
2.2.8.5. Xử Lý Đơn Hàng
Mô tả: Cho phép quản trị viên xác nhận và xử lý đơn hàng.
Tính năng: Quản trị viên có thể thay đổi tình trạng của đơn hàng từ "Chưa xử lý"
sang "Đang xử lý" để bắt đầu xử lý đơn hàng.
2.2.8.6. Hoàn Thành Đơn Hàng
Mô tả: Cho phép quản trị viên hoàn thành một đơn hàng sau khi đã xử lý xong.
Tính năng: Quản trị viên chuyển tình trạng của đơn hàng từ "Đang xử lý" sang
"Đã hoàn thành" sau khi đơn hàng đã được xử lý thành công.
2.2.8.7. Hủy Đơn Hàng
Mô tả: Cho phép quản trị viên hủy bỏ một đơn hàng nếu cần thiết.
Tính năng: Hệ thống yêu cầu xác nhận từ quản trị viên trước khi hủy bỏ đơn
hàng và cập nhật tình trạng đơn hàng thành "Đã hủy".
2.2.9 Quản Lý Truyền Thông
Mô tả chức năng: Quản lý Truyền Thông là một phần quan trọng của hệ thống để
quản trị viên có thể quản lý các thông tin truyền thông và sự kiện quảng cáo trên
trang web nhà sách trực tuyến.
2.2.9.1. Thêm Truyền Thông
Mô tả: Cho phép quản trị viên tạo thông tin truyền thông mới nếu cần thiết.

15
Tính năng: Quản trị viên cung cấp thông tin như tiêu đề, nội dung, hình ảnh. Hệ
thống lưu trữ thông tin truyền thông vào cơ sở dữ liệu.
2.2.9.2. Sửa Truyền Thông
Mô tả: Cho phép quản trị viên chỉnh sửa thông tin của một thông tin truyền thông
hiện có.
Tính năng: Quản trị viên có khả năng cập nhật thông tin của thông tin truyền
thông, bao gồm tiêu đề, nội dung, hình ảnh.
2.2.9.3. Xoá Truyền Thông
Mô tả: Cho phép quản trị viên xóa thông tin truyền thông nếu cần thiết.
Tính năng: Hệ thống yêu cầu xác nhận từ quản trị viên trước khi xóa thông tin
truyền thông và loại bỏ nó khỏi cơ sở dữ liệu.
2.2.10 Báo Cáo Thống Kê
Mô tả chức năng: Báo cáo thống kê là một phần quan trọng của hệ thống để quản
trị viên có thể xem và phân tích dữ liệu liên quan đến sản phẩm, đơn hàng và
khách hàng trên trang web nhà sách trực tuyến.
2.2.10.1. Báo Cáo Sản Phẩm
Mô tả: Cho phép quản trị viên xem báo cáo thống kê về sản phẩm.
Tính năng: Báo cáo này có thể bao gồm thông tin về tổng số sản phẩm, số lượng
tồn kho, sản phẩm bán chạy nhất, sản phẩm đánh giá cao nhất, và các thông tin
liên quan khác.
2.2.10.2. Báo Cáo Đơn Hàng
Mô tả: Cho phép quản trị viên xem báo cáo thống kê về đơn hàng.
Tính năng: Báo cáo này có thể bao gồm thông tin về tổng số đơn hàng, doanh số
bán hàng, đơn hàng mới, đơn hàng đã hoàn thành, và các thông tin liên quan
khác.
2.2.10.3. Báo Cáo Khách Hàng
Mô tả: Cho phép quản trị viên xem báo cáo thống kê về khách hàng.
Tính năng: Báo cáo này có thể bao gồm thông tin về tổng số khách hàng, khách
hàng mới đăng ký, khách hàng thường xuyên mua sắm, và các thông tin liên
quan khác.

2.3 Biểu đồ UseCase


Biểu đồ ca sử dụng (Usecase diagram) mô tả sự tương tác giữa các tác nhân
ngoài và hệ thống thông qua các ca sử dụng.

16
2.3.1 Biểu đồ UseCase tổng quát

Hình 2.2 Biểu đồ UseCase tổng quát

17
2.3.2 Biểu đồ UseCase đăng nhập

Hình 2.3 Biểu đồ UseCase Đăng nhập

Tên UseCase Đăng nhập hệ thống

Tác nhân chính Admin/ User

Tiền đề điều kiện Admin/ User chưa đăng nhập vào hệ thống

Tóm tắt Đăng nhập tài khoản người dùng vào hệ thống

Dòng sự kiện chính:

1. Chọn chức năng đăng nhập.

2. Hệ thống hiển thị form đăng nhập và yêu cầu người dùng điền vào
thông tin đăng nhập.

3. Hệ thống kiểm tra thông tin đăng nhập và xác nhận thông tin đăng
nhập hợp lệ.

4. Hệ thống thông báo đăng nhập thành công

Ngoại lệ:

1. Hệ thống báo thông tin đăng nhập sai hoặc không tồn tại.

2. Hệ thống yêu cầu nhập lại thông tin đăng nhập.

3. Admin/User nhập lại thông tin đăng nhập.


Bảng 2.3 Bảng kịch bản chức năng đăng nhập

18
2.3.3 Biểu đồ UseCase quản lý tài khoản

Hình 2.4 Biểu đồ UseCase Quản lý tài khoản

Tên UseCase Quản lý tài khoản

Tác nhân chính Admin/ User

Tiền đề điều kiện Đã đăng nhập vào hệ thống

Tóm tắt Xem, thêm, sửa, xóa tài khoản người dùng

Dòng sự kiện chính:

Chọn mục quản lý tài khoản

Hệ thống truy xuất thông tin rồi trả về dữ liệu.

Hệ thống hiển thị các chức năng

- Thêm tài khoản.

- Sửa tài khoản.

- Xóa tài khoản.

- Khóa tài khoản


Bảng 2.4 Bảng kịch bản chức năng quản lý tài khoản

19
2.3.4 Biểu đồ UseCase quản lý nhà xuất bản

Hình 2.5 Biểu đồ UseCase quản lý nhà xuất bản

Tên UseCase Quản lý nhà xuất bản

Tác nhân chính Admin

Tiền đề điều kiện Đã đăng nhập vào hệ thống

Tóm tắt Xem, thêm, sửa, xóa nhà xuất bản hệ thống

Dòng sự kiện chính:

Chọn mục quản lý nhà xuất bản

Hệ thống truy xuất thông tin rồi trả về dữ liệu.

Hệ thống hiển thị các chức năng

- Thêm nhà xuất bản.

- Sửa nhà xuất bản.

- Xóa nhà xuất bản.


Bảng 2.5 Bảng kịch bản chức năng quản lý nhà xuất bản

20
2.3.5 Biểu đồ UseCase quản lý thể loại

Hình 2.6 Biểu đồ UseCase quản lý thể loại

Tên UseCase Quản lý thể loại

Tác nhân chính Admin

Tiền đề điều kiện Đã đăng nhập vào hệ thống

Tóm tắt Xem, thêm, sửa, đổi trạng thái, xóa thể loại hệ
thống

Dòng sự kiện chính:

Chọn mục quản lý thể loại

Hệ thống truy xuất thông tin rồi trả về dữ liệu.

Hệ thống hiển thị các chức năng

- Thêm thể loại.

- Sửa thể loại.

- Đổi trạng thái thể loại

- Xóa thể loại.


Bảng 2.6 Bảng kịch bản chức năng quản lý thể loại

21
2.3.6 Biểu đồ UseCase quản lý sản phẩm

Hình 2.7 Biểu đồ UseCase quản lý sản phẩm

Tên UseCase Quản lý sản phẩm

Tác nhân chính Admin

Tiền đề điều kiện Đã đăng nhập vào hệ thống

Tóm tắt Xem, thêm, sửa, đổi trạng thái, xóa sản phẩm
trong hệ thống

Dòng sự kiện chính:

Chọn mục quản lý sản phẩm

Hệ thống truy xuất thông tin rồi trả về dữ liệu.

Hệ thống hiển thị các chức năng

- Thêm sản phẩm.

- Sửa sản phẩm.

- Đổi trạng thái sản phẩm.

- Xóa sản phẩm.


Bảng 2.7 Bảng kịch bản chức năng quản lý sản phẩm

22
2.3.7 Biểu đồ UseCase quản lý FlashSale

Hình 2.8 Biểu đồ UseCase quản lý FlashSale

Tên UseCase Quản lý flashsale

Tác nhân chính Admin

Tiền đề điều kiện Đã đăng nhập vào hệ thống

Tóm tắt Xem, thêm, sửa, xóa flashsale trong hệ thống

Dòng sự kiện chính:

Chọn mục quản lý flashsale

Hệ thống truy xuất thông tin rồi trả về dữ liệu.

Hệ thống hiển thị các chức năng

- Thêm flashsale.

- Sửa flashsale.

- Xóa flashsale.
Bảng 2.8 Bảng kịch bản chức năng quản lý flashsale

23
2.3.8 Biểu đồ UseCase quản lý mã giảm giá

Hình 2.9 Biểu đồ UseCase quản lý mã giảm giá

Tên UseCase Quản lý mã giảm giá

Tác nhân chính Admin

Tiền đề điều kiện Đã đăng nhập vào hệ thống

Tóm tắt Xem, thêm, sửa, xóa mã giảm giá trong hệ


thống

Dòng sự kiện chính:

Chọn mục quản lý mã giảm giá

Hệ thống truy xuất thông tin rồi trả về dữ liệu.

Hệ thống hiển thị các chức năng

- Thêm mã giảm giá.

- Sửa mã giảm giá.

- Xóa mã giảm giá.


Bảng 2.9 Bảng kịch bản chức năng quản lý mã giảm giá

24
2.3.9 Biểu đồ UseCase quản lý đặt hàng

Hình 2.10 Biểu đồ UseCase quản lý đặt hàng

Tên UseCase Quản lý đặt hàng

Tác nhân chính Admin

Tiền đề điều kiện Đã đăng nhập vào hệ thống

Tóm tắt Xem, thêm, sửa, xử lý, hoàn thành, huỷ, xóa
đơn hàng trong hệ thống

Dòng sự kiện chính:

Chọn mục quản lý đơn hàng

Hệ thống truy xuất thông tin rồi trả về dữ liệu.

Hệ thống hiển thị các chức năng

- Thêm đơn hàng.

- Sửa đơn hàng.

- Xử lý đơn hàng.

- Hoàn thành đơn hàng.

- Huỷ đơn hàng

- Xóa đơn hàng.

25
Bảng 2.10 Bảng kịch bản chức năng quản lý đặt hàng

Biểu đồ UseCase quản lý truyền thông

Hình 2.11 Biểu đồ UseCase quản lý truyền thông

Tên UseCase Quản lý truyền thông

Tác nhân chính Admin

Tiền đề điều kiện Đã đăng nhập vào hệ thống

Tóm tắt Xem, thêm, sửa, xóa ảnh truyền thông trong
hệ thống

Dòng sự kiện chính:

Chọn mục quản lý ảnh truyền thông

Hệ thống truy xuất thông tin rồi trả về dữ liệu.

Hệ thống hiển thị các chức năng

- Thêm ảnh truyền thông.

- Sửa ảnh truyền thông.

- Xóa ảnh truyền thông.


Bảng 2.11 Bảng kịch bản chức năng quản lý truyền thông

26
2.3.10 Biểu đồ UseCase Báo cáo thống kê

Hình 2.12 Biểu đồ UseCase báo cáo thống kê

Tên UseCase Báo cáo thống kê

Tác nhân chính Admin

Tiền đề điều kiện Đã đăng nhập vào hệ thống

Tóm tắt Xuất báo cáo

Dòng sự kiện chính:

Chọn mục báo cáo thống kê

Chọn loại báo cáo thống kê

Xuất báo cáo theo loại báo cáo đã chọn

Bảng 2.12 Bảng kịch bản chức năng báo cáo thống kê

27
2.3.11 Biểu đồ UseCase khách hàng

Hình 2.13 Biểu đồ UseCase khách hàng

Tên UseCase Khách hàng

Tác nhân chính Khách hàng

Tiền đề điều kiện Đã đăng nhập vào hệ thống

Tóm tắt Khách hàng thực hiện các chức năng trong web bán
hàng
Bảng 2.13 Bảng kịch bản khách hàng

28
2.4 Biểu đồ tuần tự (Sequence Diagram)
Biểu đồ tuần tự thường được sử dụng để mô tả các tương tác và luồng làm việc
giữa các đối tượng trong một hệ thống phần mềm hoặc mô hình hệ thống. Biểu
đồ này thường sử dụng trong quy trình phát triển phần mềm để hiểu rõ cách các
đối tượng trong hệ thống tương tác với nhau trong một tình huống cụ thể.

2.4.1 Biểu đồ tuần tự chức năng đăng nhập

Hình 2.14 Biểu đồ tuần tự chức năng đăng nhập

29
2.4.2 Biểu đồ tuần tự chức năng đăng ký

Hình 2.15 Biểu đồ tuần tự chức năng đăng ký

30
2.4.3 Biểu đồ tuần tự chức năng thêm nhà xuất bản

Hình 2.16 Biểu đồ tuần tự chức năng thêm nhà xuất bản

31
2.4.4 Biểu đồ tuần tự chức năng sửa nhà xuất bản

Hình 2.17 Biểu đồ tuần tự chức năng sửa nhà xuất bản

32
2.4.5 Biểu đồ tuần tự chức năng xoá nhà xuất bản

Hình 2.18 Biểu đồ tuần tự chức năng xoá nhà xuất bản

33
2.4.6 Biểu đồ tuần tự chức năng thêm thể loại

Hình 2.19 Biểu đồ tuần tự chức năng thêm thể loại

34
2.4.7 Biểu đồ tuần tự chức năng sửa thể loại

Hình 2.20 Biểu đồ tuần tự chức năng sửa thể loại

35
2.4.8 Biểu đồ tuần tự chức năng đổi trạng thái thể loại

Hình 2.21 Biểu đồ tuần tự chức năng đổi trạng thái thể loại

36
2.4.9 Biểu đồ tuần tự chức năng xoá thể loại

Hình 2.22 Biểu đồ tuần tự chức năng xoá thể loại

37
2.5 Biểu đồ lớp (Class Diagram)
Biểu đồ lớp được sử dụng để mô hình hóa cấu trúc và mối quan hệ giữa các lớp
(classes) trong một hệ thống phần mềm hoặc mô hình hệ thống. Biểu đồ lớp giúp
hiểu cấu trúc của hệ thống, xác định các lớp và mối quan hệ giữa chúng, và là
công cụ quan trọng trong quy trình thiết kế hệ thống.

Hình 2.23 Biểu đồ lớp của hệ thống

2.6 Thuật toán khuyến nghị mua hàng


2.6.1 Thu thập dữ liệu
Để xây dựng mô hình, việc đầu tiên cần làm là thu thập dữ liệu. Dữ liệu
được em thu thập từ tập dữ liệu Goodbooks-10k là một tập dữ liệu mới cho việc
đề xuất sách, được thu thập từ API của Goodreads. Dữ liệu bao gồm 271.380
cuốn sách, 278.860 người dùng và 1.149.781 đánh giá từ người dùng. Với cấu
trúc của

38
2.6.2 Xử lý dữ liệu
Để có thể đưa dữ liệu vào huấn luyện ta cần xử lý dữ liệu đầu vào, vì dữ
liệu đầu vào là dữ liệu thô(raw data).
Dữ liệu book đầu vào:

Hình 2.24 Dữ liệu thô book

Dữ liệu liệu user đầu vào:

Hình 2.25 Dữ liệu thô user

Dữ liệu rating đầu vào:

Hình 2.26 Dữ liệu rating đầu vào

Về mặt kỹ thuật, số chiều của utility matrix là rất lớn với 278.858 users và
271.360 items, nếu lưu toàn bộ các giá trị này trong một ma trận thì khả năng cao
39
là sẽ không đủ bộ nhớ. Quan sát thấy rằng vì số lượng ratings biết trước thường
là một số rất nhỏ so với kích thước của utility matrix và số lượng user có nhiều
đánh giá cũng như có nhiều sản phẩm được rất ít đánh giá nên chúng ta sẽ lấy
những người có trên 200 đánh – đây là những người để lại nhiều đánh giá nhất có
nhiều giá trị cho mô hình, tiếp theo ta sẽ lấy những sách có trên 50 đánh giá –
đấy là những quyển sách có nhiều đánh giá nhất. Sau khi đã lọc để chỉ lấy những
giá trị có ý nghĩa nhất, tiếp theo ta có thể thấy ma trận tiện ích (utility matrix) có
dạng như sau:

Hình 2.27 Ma trận tiện ích giữa người dùng, sách và đánh giá

Ma trận tiên ích trên thể hiện đây là bảng của 742 cuốn sách có nhiều đánh giá
nhất và 888 người dùng có nhiều đánh giá nhất. Có thể thấy ma trận tiện ích có
rất nhiều giá trị 0, điều này thể hiện thực tế rằng người dùng thường ít đánh giá
và không thể đánh giá hết sản phẩm được nên để tiết kiệm bộ nhớ, em sẽ sử dụng
ma trận thưa thông qua thư viện scipy:
book_sparse = csr_matrix(book_pivot)
Sau khi đã có ma trận thưa, em sử thư viện sklearn để huấn luyện mô hình với
thuật toán k-NearestNeighbors và sử dụng cách tính khoảng cách Euclidean giữa
các điểm dữ liệu. Công thức tính khoảng cách Euclidean đa chiều như sau:

√∑
n
D ( x , y )= ¿¿¿
i=1

Trong đó:
D(x,y): Khoảng cách giữa 2 điểm
n: Số chiều của điểm dữ liệu
xi, yi: Giá trị tại chiều i của điểm
Sau khi sử dụng mô hình sẽ trả về k sách có khoảng cách gần với sách đầu vào
nhất.

40
2.6.3 Đánh giá
Trong đồ án này, em xin sử dụng chỉ số MAE(Mean Absolute Error) để
đánh giá mô hình. MAE đo lường trung bình giá trị tuyệt đối của các sai số (độ
lệch) giữa dự đoán và giá trị thực tế trong một tập dữ liệu. MAE thường được sử
dụng để đo lường độ lệch trung bình giữa các dự đoán và giá trị thực tế mà không
quan tâm đến hướng của sai số (sai số dương hay sai số âm).
Công thức MAE như sau:
n
1
MAE= ∑ ¿ y − ^y ∨¿ ¿
n i=1 i i
Trong đó:
MAE: độ lớn trung bình của các lỗi
n: Số lượng mẫu thực tế
y i: giá trị thực tế của mẫu dữ liệu thứ i
^y i: giá trị dự đoán tương ứng của mẫu dữ liệu thứ i

Với công thức trên khi kiểm thử với mô hình của đồ án thì giá trị MAE là: 1.96.
Đây là con số khá lớn vì thực tế khách hàng thường sẽ không mua tất cả sách nên
giữa 2 khách hàng sẽ có những cuốn sách được 1 trong 2 người mua và đánh giá
còn người kia thì không từ đó độ lớn của lỗi cũng cao hơn.

41
CHƯƠNG 3. XÂY DỰNG WEBSITE

3.1 Một số hình ảnh sau khi xây dựng hệ thống


3.1.1 Giao diện quản lý
3.1.1.1. Giao diện trang Dashboard

Hình 3.28 Giao diện trang Dashboard

3.1.1.2. Giao diện quản lý sản phẩm

42
TÀI LIỆU THAM KHẢO

[1] Trần Đình Quế, Nguyễn Mạnh Sơn (2007), Giáo trình Phân tích và thiết kế
hệ thống thông tin, Học viện bưu chính viễn thông
[2] Huỳnh Văn Đức, Đoàn Thiện Ngân (2003), Giáo trình nhập môn UML, Nhà
xuất bản Lao động Xã hội
[3] Nguyễn Kim Anh (2004), Nguyên lý của các hệ cơ sở dữ liệu, Nhà xuất bản
Đại học quốc gia Hà Nội
[4] Jonh Wiley & Sons (2005), “Analysis and Design with UML version 2.0: An
Object-Oriented Approach, Second Edition”
[5] Jiawei Han, Micheline Kamber, Jian Pei (2012), “Data Mining: Concepts
and Techniques”

43

You might also like