Professional Documents
Culture Documents
ĐỒ Á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
ĐỒ ÁN TỐT NGHIỆP
KỸ SƯ KHOA HỌC MÁY TÍNH
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.
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.
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.
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.
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
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.
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Ế
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
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.
16
2.3.1 Biểu đồ UseCase tổng quát
17
2.3.2 Biểu đồ UseCase đăng nhập
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
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ệ.
Ngoại lệ:
1. Hệ thống báo thông tin đăng nhập sai hoặc không tồn tại.
18
2.3.3 Biểu đồ UseCase quản lý tài khoản
Tóm tắt Xem, thêm, sửa, xóa tài khoản người dùng
19
2.3.4 Biểu đồ UseCase quản lý nhà xuất bản
Tóm tắt Xem, thêm, sửa, xóa nhà xuất bản hệ thống
20
2.3.5 Biểu đồ UseCase quản lý thể loại
Tóm tắt Xem, thêm, sửa, đổi trạng thái, xóa thể loại hệ
thống
21
2.3.6 Biểu đồ UseCase quản lý sản phẩm
Tóm tắt Xem, thêm, sửa, đổi trạng thái, xóa sản phẩm
trong hệ thống
22
2.3.7 Biểu đồ UseCase quản lý FlashSale
- 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á
24
2.3.9 Biểu đồ UseCase quản lý đặt hà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
- Xử lý đơn hàng.
25
Bảng 2.10 Bảng kịch bản chức năng quản lý đặt hàng
Tóm tắt Xem, thêm, sửa, xóa ảnh truyền thông trong
hệ thống
26
2.3.10 Biểu đồ UseCase Báo cáo thống kê
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
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ể.
29
2.4.2 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
34
2.4.7 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
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.
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:
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
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