1. Trang chủ
  2. » Tất cả

Đồ án xây dựng website chia sẻ tài liệu học tập

69 8 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng website chia sẻ tài liệu học tập
Tác giả Trần Lương Nguyên
Người hướng dẫn ThS. Trần Thị Hồng Yến
Trường học Trường Đại Học Công Nghệ Thông Tin, Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Kỹ thuật phần mềm
Thể loại Đồ án xây dựng website chia sẻ tài liệu học tập
Năm xuất bản 2022
Thành phố TP HCM
Định dạng
Số trang 69
Dung lượng 2,73 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trạng thái hệ thống trước khi thực thiện use case Actor: khách hàng đã đăng kí tài khoản Điều kiện: người dùng đã đăng nhập hệ thống Trạng thái hệ thống sau khi thực hiện use case Mật kh

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN 2

XÂY DỰNG WEBSITE CHIA SẺ TÀI LIỆU HỌC TẬP

Giảng viên hướng dẫn : ThS Trần Thị Hồng Yến Sinh viên thực hiện : Trần Lương Nguyên - 19521922

TP HCM, tháng 12 năm 2022

Trang 2

ĐỀ CƯƠNG CHI TIẾT

Tên đề tài: Xây dựng website chia sẻ tài liệu học tập

Cán bộ hướng dẫn: Ths Trần Thị Hồng Yến

Thời gian thực hiện: Từ ngày: 05/09/2022 đến ngày 31/12/2022

Sinh viên thực hiện: Trần Lương Nguyên - 19521922

Nội dung đề tài:

1 Giới thiệu bài toán

Thế kỷ XXI là thời đại của sự hội nhập, sự phát triển của tri thức, của khoa học kỹ thuật, đòi hỏi phải có những thanh niên trẻ có trình độ và năng lực sáng tạo, có khả năng tiếp thu và vận dụng những kiến thức mới, nhanh chóng thích nghi với sự vận động của xã hội Để làm được điều đó mỗi thanh niên cần phải tích luỹ kiến thức, kinh nghiệm, chuẩn bị cho mình một nền tảng kiến thức vững chắc ngay từ khi đang còn trên ghế nhà trường Từ đó cống hiến trí tuệ, sức lực của mình vào sự phát triển đất nước

Đối với học sinh, sinh viên trong các trường học nhu cầu sử dụng thông tin

để phục vụ cho quá trình học tập, nghiên cứu khoa học của họ luôn cần phải đảm bảo về chất lượng, đầy đủ về chủng loại thì hoạt động học tập, nghiên cứu mới đạt được kết quả tốt nhất

Do đó em quyết định lựa chọn đề tài “Xây dựng website chia sẻ tài liệu học tập”, cung cấp một địa chỉ đáng tin cậy để học sinh, sinh viên có thể tìm kiếm, tra cứu tài liệu phục vụ cho nhu cầu học tập và nghiên cứu

Trang 3

− Đăng kí, đăng nhập, xác thực và quản lí thông tin tài khoản

− Quản lí danh mục tài liệu

− Tìm kiếm, tra cứu tài liệu

− Đăng tải, chia sẻ tài liệu

− Kiểm duyệt nội dung tài liệu

− Lưu trữ bài viết

− Đánh giá, nhận xét tài liệu

− Báo cáo, thống kê

4 Đối tượng sử dụng:

- Người dùng có nhu cầu tìm kiếm, tra cứu và chia sẻ tài liệu

- Nhân viên quản lí, kiểm duyệt nội dung

- Nhân viên quản trị viên của website

5 Phương pháp thực hiện:

- Tìm hiểu Net MVC, MS SQL, Bootstrap, Redis, Elasticsearch, MinIO

- Khảo sát thực trạng các website đang có trên thị trường, từ đó phân tích, xác định các yêu cầu cụ thể của đề tài

- Phân tích thiết kế hệ thống và xây dựng website

- Tìm hiểu về thiết kế UX/UI và tiến hành thiết kế giao diện cho website

- Xây dựng website cho người dùng và các nhân viên

- Tiến hành triển khai và kiểm thử

Trang 4

7 Kết quả mong đợi

- Nắm bắt và ứng dụng được các công nghệ đã tìm hiểu để xây dựng hoàn thiện sản phẩm đề tài

- Hiểu rõ nghiệp vụ, chức năng của một website chia sẻ tài liệu học tập

- Ứng dụng được các kiến thức đã học về phân tích và thiết kế hệ thống phần mềm vào việc xây dựng và triển khai website sản phẩm đề tài

- Có thể mở rộng thêm các chức năng mới cho website sản phẩm đề tài để

đáp ứng nhu cầu mới trong tương lai

Trang 6

LỜI CẢM ƠN

Em xin gửi lời cảm ơn tới cô Trần Thị Hồng Yến, người đã trực tiếp tận tình

hướng dẫn em trong suốt quá trình thực hiện đồ án Em vô cùng biết ơn sự tận tình chỉ

dẫn của cô trong quá trình nhóm thực hiện đề tài này Bước đầu tiếp cận các công nghệ

mới, em còn nhiều thiếu sót về mặt kiến thức cũng như kinh nghiệm thực tiễn nên không

tránh khỏi nhiều sai sót Những nhận xét, góp ý chân tình của cô chính là cơ sở để em

có thể cải tiến và hoàn thiện đề tài này một cách tốt nhất Nếu không có những lời chỉ

bảo tận tình của cô thì đồ án này của em rất khó để thực hiện Một lần nữa, em chân

thành cảm ơn cô

Đề tài được em thực hiện trong khoảng thời gian 4 tháng, lần đầu tiếp cận các

công nghệ mới, bước đầu đi vào thực tế nên em còn nhiều hạn chế về kiến thức cũng

như kinh nghiệm thực tiễn Do vậy, chắc chắn không thể tránh khỏi những sai sót, em

rất mong nhận được những sự chỉ bảo, ý kiến đóng góp quý báu của cô và các bạn học

cùng lớp để em có thể bổ sung, cải tiến sản phẩm cũng như nâng cao kiến thức, hoàn

thiện bản thân và tích lũy thêm cho bản thân nhiều kinh nghiệm, phục vụ tốt hơn cho

công việc thực tế sau này

Em xin chân thành cảm ơn!

Thành phố Hồ Chí Minh, ngày 20 tháng 12 năm 2022

Sinh viên thực hiện

Trang 7

DANH MỤC HÌNH ẢNH

Hình 4.1 Sơ đồ Use case tổng quát của hệ thống 12

Hình 4.2 Phân rã sơ đồ use case 13

Hình 4.3 Mô tả CSDL của hệ thốngBảng 31

Hình 4.4 Giao diện trang chủ 38

Hình 4.5 Giao diện menu trang chủ 39

Hình 4.6 Giao diện bài viết trang chi tiết thể loại 40

Hình 4.7 Giao diện tài liệu trang chi tiết thể loại 41

Hình 4.8 Giao diện trang chi tiết bài viết 42

Hình 4.9 Giao diện trang đăng nhập 43

Hình 4.10 Giao diện trang đăng ký 44

Hình 4.11 Giao diện trang quản lý tài khoản 45

Hình 4.12 Giao diện trang đăng tải bài viết 46

Hình 4.13 Giao diện trang đăng tải tài liệu 47

Hình 4.14 Giao diện trang quản lý bài viết đã đăng 48

Hình 4.15 Giao diện trang quản lý tài liệu đã đăng 49

Hình 4.16 Giao diện trang quản lý thư mục lưu trữ 50

Hình 4.17 Giao diện trang chi tiết thư mục lưu trữ 50

Hình 4.18 Giao diện trang quản lý thể loại 51

Hình 4.19 Giao diện trang quản lý người dùng 52

Hình 4.20 Giao diện trang quản lý nhân viên kiểm duyệt 53

Hình 4.21 Giao diện trang quản lý kiểm duyệt bài viết 54

Hình 4.22 Giao diện trang xử lý báo cáo 55

Hình 4.23 Giao diện trang báo cáo 56

Trang 8

DANH MỤC BẢNG

Bảng 3.1.1 Mô tả chức năng của ứng dụng 8

Bảng 3.2.1 Mô tả thành phần kiến trúc hệ thống 10

Bảng 4.1.1 Mô tả use case đăng ký 14

Bảng 4.1.2 Mô tả usecase Đăng nhập 14

Bảng 4.1.3 Mô tả use case quên mật khẩu 15

Bảng 4.1.4 Mô tả use case cập nhật mật khẩu 16

Bảng 4.1.5 Mô tả use case chỉnh sửa thông tin cá nhân 16

Bảng 4.1.6 Mô tả use case tìm kiếm bài viết, tài liệu 17

Bảng 4.1.7 Mô tả use case đăng tải bài viết 17

Bảng 4.1.8 Mô tả usecase chỉnh sửa bài viết đã đăng tải 18

Bảng 4.1.9 Mô tả use case xóa bài viết đã đăng 19

Bảng 4.1.10 Mô tả use case đăng tải tài liệu 19

Bảng 4.1.11 Mô tả use case xóa tài liệu 20

Bảng 4.1.12 Mô tả use case nhận xét 21

Bảng 4.1.13 Mô tả use case yêu thích bài viết 21

Bảng 4.1.14 Mô tả usecase báo cáo bài viết vi phạm 22

Bảng 4.1.15 Mô tả use case lưu bài viết yêu thích 22

Bảng 4.1.16 Mô tả use case xóa bài viết đã lưu 23

Bảng 4.1.17 Mô tả use case thêm thư mục lưu trữ 23

Bảng 4.1.18 Mô tả use case đổi tên thư mục lưu trữ 24

Bảng 4.1.19 Mô tả use case xóa thư mục lưu trữ 25

Bảng 4.1.20 Mô tả use case tải tài liệu 25

Bảng 4.1.21 Mô tả use case thêm thể loại 26

Bảng 4.1.22 Mô tả use case chỉnh sửa thông tin thể loại 27

Bảng 4.1.23 Mô tả use case xóa thể loại 27

Bảng 4.1.24 Mô tả use case kiểm duyệt bài viết 28

Bảng 4.1.25 Mô tả use case phân quyền người dùng 29

Bảng 4.1.26 Mô tả use case báo cáo 29

Trang 9

Bảng 4.2.2 Bảng lưu trữ thông tin bài viết 33

Bảng 4.2.3 Bảng lưu trữ thông tin tài liệu 33

Bảng 4.2.4 Bảng lưu trữ thông tin người dùng 34

Bảng 4.2.5 Bảng lưu trữ thông tin hình ảnh 34

Bảng 4.2.6 Bảng lưu trữ thông tin bình luận 35

Bảng 4.2.7 Bảng lưu trữ thông tin yêu thích bài viết 35

Bảng 4.2.8 Bảng lưu thông tin thư mục lưu trữ 35

Bảng 4.2.9 Bảng lưu trữ thông tin bài viết lưu trữ 36

Bảng 4.2.10 Bảng lưu trữ thông tin kiểm duyệt 36

Bảng 4.2.12 Bảng lưu trữ thông tin phân loại kiểm duyệt 36

Bảng 4.2.12 Bảng lưu trữ thông tin tiêu chí kiểm duyệt 37

Bảng 4.2.13 Bảng lưu trữ thông tin thông báo 37

Trang 10

Chương 1 - TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu về đề tài

1.1.1 Tài liệu có giá trị to lớn trong mọi mặt đời sống

Giá trị của tài liệu là khả năng đáp ứng mọi nhu cầu sử dụng thông tin tài liệu của con người đối với các mặt hoạt động xã hội Trong xã hội có rất nhiều lĩnh vực hoạt động, do vậy giá trị của tài liệu cũng đa dạng và được tổ hợp thành các nhóm khác nhau Học tập và giảng dạy là một trong những lĩnh vực cần số lượng lớn tài liệu Đối với lĩnh vực này tài liệu đóng vai trò rất quan trọng, bằng cách hỗ trợ học tập, chúng có thể làm tăng đáng kể thành tích của học sinh, sinh viên Những tài liệu này hỗ trợ quá trình học tập bằng cách cho phép học sinh khám phá kiến thức một cách độc lập cũng như luyện tập các dạng đã làm Tài liệu học tập, bất kể loại nào, thì tất cả đều đóng một vai trò nhất định đối với việc học của học sinh, sinh viên

1.1.2 Lý do chọn đề tài

Hiện nay trên thị trường có rất nhiều website chia sẻ tài liệu kể cả miễn phí lẫn tính phí như “cuuduongthancong.com”, “123docz.net”, “tailieu.vn”,… nhưng hầu hết các website trên đều chỉ tập trung vào chia sẻ tài liệu mà chưa cho phép người dùng đăng tải các bài viết chia sẻ kiến thức, kinh nghiệm của mình Các website này cũng chưa cung cấp cho người dùng các công cụ lưu trữ và quản lý hệ thống bài viết mà họ yêu thích Do vậy em quyết định lựa chọn đề tài “Xây dựng website chia sẻ tài liệu học tập” Bên cạnh việc cung cấp các chức năng cơ bản như các website hiện có, đề tài cũng cấp thêm cho người dùng các chức năng đăng tải bài viết, lưu trữ là quản lý hệ thống bài viết yêu thích

1.2 Đối tượng nghiên cứu

Đồ án này hướng đến nghiên cứu các đối tượng sau:

❖ Các công nghệ:

− NET MVC

Trang 11

❖ Đối tượng trong phạm vi đề tài hướng đến:

− Người dùng có nhu cầu tìm kiếm, tra cứu và chia sẻ tài liệu

− Nhân viên quản lí, kiểm duyệt nội dung

− Nhân viên quản trị viên của website

1.3 Phạm vi nghiên cứu

Đề tài tập trung vào nghiên cứu về ứng dụng website chia sẻ tài liệu học tập, phục

vụ người dùng có nhu cầu tìm kiếm, chia sẻ tài liệu học tập

1.4 Phương pháp nghiên cứu

Em đã sử dụng các phương pháp nghiên cứu:

- Phương pháp đọc tài liệu

- Phương pháp phân tích các ứng dụng hiện có

1.5 Nhiệm vụ của đề tài

Đề tài “Website chia sẻ tài liệu học tập” là một ứng dụng chạy trên nền web đáp ứng các yêu cầu sau:

- Cung cấp đầy đủ các tính năng tìm kiếm, chia sẻ, lưu trữ tài liệu cho nhiều đối tượng khác nhau

- Cung cấp đầy đủ các tính năng phục vụ việc kiểm soát, quản lí tài nguyên và hoạt động của website

1.6 Mục tiêu của đề tài

- Tìm hiểu cách xây dựng ứng dụng web

- Tìm hiểu về kiến trúc hệ thống, những công nghệ liên quan

- Xây dựng thành công ứng dụng website chia sẻ học tập

Trang 12

Chương 2 - CƠ SỞ LÝ THUYẾT

2.1 Tổng quan về ASP.NET MVC

2.1.1 Giới thiệu

MVC là viết tắt của Model-View-Controller Trong ASP.NET, MVC là một dạng

mô hình kiến trúc phân cách một ứng dụng web thành ba thành phần: Model, View và Controller

2.1.2 Cấu trúc ASP.NET MVC

Models: Model là thành phần chứa các phương thức xử lý logic, kết nối và truy xuất

database, mô tả dữ liệu, …

Views: View là thành phần hiển thị thông tin, tương tác với người dùng

Controller: Controller là thành phần điều hướng, là chất kết dính giữa model và

view, có nhiệm vụ nhận những requests từ người dùng, tương tác với model để lấy thông tin và gửi cho view để hiển thị lại cho người dùng

2.1.3 Ưu điểm của ASP.NET MVC

− Thích hợp cho các ứng dụng lớn có tính chất phức tạp bằng cách chia ứng dụng thành ba thành phần model, view, controller

− Loại bỏ view state hoặc server-based form Điều này khiến lập trình viên tốn nhiều thời gian hơn nhưng sẻ quản lý tốt ứng dụng của mình

− Sử dụng mẫu Front Controller, mẫu này giúp quản lý các requests chỉ thông qua một Controller do đó việc định tuyến sẽ dễ dàng hơn

− Hổ trợ tốt cho việc test từng phần

− Hỗ trợ tốt cho các ứng dụng có nhiều lập trình viên và thiết kế mà vẫn quản lý được tính năng của ứng dụng

2.2 Tổng quan về Microsoft SQL Server

2.2.1 Giới thiệu

Microsoft SQL Server là một phần mềm được phát triển bởi Microsoft và nó được

Trang 13

2.2.2 Các thành phần cơ bản trong SQL Server

Các thành cơ bản trong SQL Server gồm có: Reporting Services, Database Engine, Integration Services, Notification Services, Full Text Search Service, … Tất cả kết hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc phân tích và lưu trữ dữ liệu trở nên dễ dàng hơn

− Database Engine: Đây là một engine có khả năng chứa dữ liệu ở các quy mô

dưới dạng support và table Ngoài ra, nó còn có khả năng tự điều chỉnh, ví dụ: trả lại tài nguyên cho hệ điều hành khi một user log off và sử dụng thêm các tài nguyên của máy khi cần

− Integration Services: Là tập hợp các đối tượng lập trình và các công cụ đồ họa

cho việc sao chép, di chuyển và chuyển đổi dữ liệu Khi các lập trình viên làm việc trong một công ty lớn thì dữ liệu được lưu trữ ở nhiều nơi khác nhau như được chứa trong: Oracle, SQL Server, DB2, Microsoft Access, … và chắc chắn

sẽ có nhu cầu di chuyển dữ liệu giữa các server này Ngoài ra, các lập trình viên còn muốn định dạng dữ liệu trước khi lưu vào database Chắc chắn Integration Services sẽ giúp họ giải quyết được công việc này dễ dàng

− Analysis Services: Đây là một dịch vụ phân tích dữ liệu của Microsoft Dữ liệu

khi được lưu trữ vào trong database mà người dùng không thể lấy được những thông tin bổ ích thì coi như không có ý nghĩa gì Chính vì thế, công cụ này ra đời giúp người dùng trong việc phân tích dữ liệu một cách hiệu quả và dễ dàng bằng cách dùng kỹ thuật khai thác dữ liệu – datamining và khái niệm hình khối nhiều chiều – multi dimendion cubes

− Notification Services: Dịch vụ thông báo này là nền tảng cho sự phát triển và

triển khai các ứng dụng soạn và gửi thông báo Ngoài ra, dịch vụ này còn có chức năng gửi thông báo theo lịch đến hàng ngàn người dăng ký sử dụng trên nhiều loại thiết bị khác nhau

− Reporting Services: Là một công cụ tạo, quản lý và triển khai báo cáo bao gồm:

server và client Ngoài ra, nó còn là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo

Trang 14

− Full Text Search Service: Là một thành phần đặc biệt trong việc truy vấn và

đánh chỉ mục dữ liệu văn bản không cấu trúc được lưu trữ trong các cơ sở dữ liệu SQL Server

− Service Broker: Là một môi trường lập trình cho việc tạo ra các ứng dụng trong

việc nhảy qua các Instance

2.2.3 Ưu điểm của SQL Server

− Người dùng có thể sử dụng nhiều phiên bản MS SQL khác nhau trên cùng 1 máy

− Người dùng có thể phát triển và duy trì riêng biệt các môi trường thử nghiệm khác nhau

− Xây dựng và duy trì các loại máy chủ dự phòng

− Hạn chế tối đa các vấn đề rủi ro trên cơ sở dữ liệu

2.3 Tổng quan về Redis

2.3.1 Giới thiệu

Redis được xem là một cơ sở dữ liệu nằm trong bộ nhớ, chính vì vậy dữ liệu đều được lưu trữ nằm trên bộ nhớ (RAM) của máy chủ Điều này giúp cho việc đọc cũng như truy xuất dữ liệu được nhanh chóng hơn mà không cần phải chờ cho đến khi ổ cứng truyền thống phải tìm kiếm và phải đọc ghi nhiều lần Bởi vì là một NoSQL database vậy nên redis sẽ cho phép người dùng có thể tạo được các cấu trúc dữ liệu đơn giản và nhanh gọn hơn bao giờ hết

2.3.2 Các kiểu dữ liệu trong Redis

Khác với RDMS như MySQL, hay PostgreSQL, Redis không có table Redis lưu trữ data dưới dạng key-value Redis hỗ trợ rất nhiều kiểu dữ liệu khác nhau như:

− STRING, INTEGER, FLOAT: Redis có thể làm việc với cả string, từng phần

của string, cũng như tăng/giảm giá trị của integer, float

− LIST: List là một danh sách của string, sắp xếp theo thứ tự insert Redis có thể

thêm một phần tử vào đầu hoặc cuối list List phù hợp cho các bài toán cần thao tác với các phần tử gần đầu và cuối vì việc truy xuất này là cực nhanh, cho dù

Trang 15

− SET: tập hợp các string (không được sắp xếp) Redis hỗ trợ các thao tác thêm,

đọc, xóa từng phần tử, kiểm tra sự xuất hiện của phần tử trong tập hợp Ngoài ra Redis còn hỗ trợ các phép toán tập hợp, gồm intersect/union/difference

− HASH: Redis lưu trữ hash table của các cặp key-value, trong đó key được sắp

xếp ngẫu nhiên, không theo thứ tự nào cả Redis hỗ trợ các thao tác thêm, đọc, xóa từng phần tử, cũng như đọc tất cả giá trị

− SORTED SET (ZSET): Là 1 danh sách, trong đó mỗi phần tử là map của 1

string (member) và 1 floating-point number (score), danh sách được sắp xếp theo score này Các phần tử của zset được sắp xếp theo thứ tự từ score nhỏ tới lớn

2.3.3 Ưu điểm của Redis

− Toàn bộ dữ liệu Redis nằm trong bộ nhớ chính của máy chủ nên hiệu suất rất nhanh

− Redis có nhiều cấu trúc dữ liệu khác nhau nên đáp ứng được nhu cầu ứng dụng của người dùng

− Redis đơn giản hóa code của lập trình viên bằng cách cho phép họ viết ít dòng code hơn để lưu trữ, truy cập và sử dụng dữ liệu trong các ứng dụng của mình

− Redis sử dụng kiến trúc primary replica và hỗ trợ sao chép không đồng bộ, dữ liệu có thể được sao chép sang nhiều máy chủ khác nhau Điều này giúp hiệu suất đọc được cải thiện và phục hồi nhanh hơn khi máy chủ chính gặp sự cố ngừng hoạt động

− Redis là dự án mã nguồn mở đã có cộng đồng lớn tin dùng Không có giới hạn

về nhà cung cấp hoặc công nghệ vì Redis được có tính tiêu chuẩn mở, hỗ trợ các định dạng dữ liệu mở và có tập hợp máy khách phong phú

2.4 Tổng quan về Elasticsearch

2.4.1 Giới thiệu

Elasticsearch là một công cụ tìm kiếm dựa vào nền tảng Apache Lucene Công cụ này cung cấp một bộ máy tìm kiếm có dạng phân tán với đầy đủ công cụ với một giao diện web HTTP có hỗ trợ cho các dữ liệu JSON

Trang 16

2.4.2 Những khái niệm cơ bản trong Elasticsearch

− Node: Là một instance (server) đơn lẻ duy nhất đang chạy của Elasticsearch Nơi

lưu trữ dữ liệu, tham gia thực hiện đánh index của cluster và thực hiện tìm kiếm

− Cluster: Là tập hợp của một hoặc nhiều nodes hoạt động cùng nhau, có khả năng

tìm kiếm và lập chỉ mục trên tất cả các nodes cho toàn bộ dữ liệu Chức năng chính của Cluster là quyết định xem shards nào được phân bổ cho node nào và khi nào thì di chuyển các node để cân bằng lại Cluster

− Document: Nó là đơn vị dữ liệu cơ bản trong Elasticsearch - đối tượng JSON

với một số dữ liệu cụ thể Mỗi document thuộc một type và nằm trong một chỉ mục Mỗi document được liên kết với một định danh duy nhất được gọi là UID

− Type: Được sử dụng làm danh mục của chỉ mục, cho phép lưu trữ các loại dữ

liệu khác nhau trong cùng một chỉ mục

− Index: Nó là một tập hợp các loại document khác nhau và các thuộc tính của

chúng

− Shard: Các index được chia theo chiều ngang thành các shard, mỗi shard chứa

tất cả các thuộc tính của document nhưng chứa ít đối tượng JSON hơn index Sự phân tách ngang làm cho shard là một node độc lập, có thể được lưu trữ trong bất kỳ node nào

2.4.3 Ưu điểm của Elasticsearch

− Hỗ trợ tìm kiếm dữ liệu mạnh mẽ, nhanh chóng dựa trên Apache Lucene

− Mang lại khả năng phân tích dữ liệu vô cùng hiệu quả

− Có khả năng mở rộng dựa theo chiều ngang rất tuyệt vời

− Công cụ này có khả năng hỗ trợ tìm kiếm, nếu như từ khóa tìm kiếm bị lỗi chính

tả hoặc không đúng cú pháp thì vẫn có khả năng Elasticsearch trả về với kết quả cực tốt

− Elasticsearch có thể hỗ trợ Structured Query DSL cung cấp cho nhu cầu đặc tả những câu truy vấn phức tạp hơn một cách rõ ràng và cụ thể bằng JSON

− Elasticsearch hỗ trợ cho nhiều Elasticsearc client như PhP, Java, Ruby,

Trang 17

Chương 3 - PHÂN TÍCH THIẾT KẾ HỆ THỐNG

3.1 Mô tả yêu cầu

3.1.1 Yêu cầu chức năng

“Website chia sẻ tài liệu học tập” được thiết kế nhằm giúp mọi người có được nơi

để tìm kiếm, chia sẻ tài liệu và kiến thức của bản thân Để đáp ứng được các vấn đề trên

em đã xác định được một số chức năng chính như sau:

Bảng 3.1.1 Mô tả chức năng của ứng dụng

Người dùng

Đăng kí tài khoản

Người dùng có thể đăng kí tài khoản để sử dụng các dịch vụ của website bằng email cá nhân của mình Hệ thông tiếp nhận yêu cầu đăng kí và gửi email xác nhận

Đăng nhập

Người dùng sau khi đăng kí và xác nhận email xác thực có thể sử dụng tài khoản này

để đăng nhập và sử dụng các dịch vụ mà website cung cấp

Chỉnh sửa thông tin tài khoản

Người dùng có thể cập nhật thông tin cá nhân cũng như mật khẩu tài khoản của mình

bài viết mà mình đã đăng tải

Trang 18

Quản lý tài liệu Người dùng có thể chia sẻ các tài liệu và quản

lý tài liệu mà mình đã đăng tải

Tìm kiếm tài bài viết, tài liệu

Người dùng có thể tìm kiếm bài viết, tài liệu

có trong hệ thống

Nhận xét bài viết

Người dùng sau khi xem các bài viết có thể chia sẻ cảm nhận, ý kiến của bản thân về nội dung bài viết

Lưu trữ bài viết yêu thích

Người dùng có thể lưu trữ các bài viết mà mình yêu thích

đồng đã chia sẻ về máy tính cá nhân của mình Quản lý thư mục

lưu trữ

Người dùng có thể quản lý hệ thống thư mục lưu trữ bài viết yêu thích của mình

phạm bản quyền, có nội dung độc hại, …

Quản lí

chức năng thêm, sửa, xóa thể loại

Phân quyền người

viết

Nhân viên kiểm duyệt có thể kiểm duyệt nội dung của các bài viết đã đăng

Trang 19

3.1.2 Yêu cầu phi chức năng

- Tính bảo mật: Phải đảm bảo an toàn dữ liệu người dùng, ngăn chặn các tấn công

từ bên ngoài, kiểm soát vận hành hệ thống, giảm thiểu tối đa mức độ rủi ro, rò rỉ thông tin như các chức năng xác thực người dùng (đăng nhập, đăng ký, quên mật khẩu)

- Tính tiện dụng: Phần mềm dễ sử dụng, tiện lợi trong việc tìm kiếm và chia sẻ

tài liệu

- Tính hiệu quả: Đảm bảo tốc độ xử lý ổn định, có thể lưu một lượng lớn dữ liệu,

tránh xảy ra lỗi ngoại lệ

- Tính tương thích: Ứng dụng có thể chạy ổn định và tương thích với nhiều nền

hành xử lí và trả về kết quả cho client

dùng thao tác với website

Đảm nhiệm việc tiếp nhận yêu cầu xử lý từ Controller và chuyển tiếp các yêu cầu này đến các service của bên thứ

3

Trang 20

Mối quan hệ giữa các thành phần:

- Model giúp cho Controllers có thể thực hiện kết nối, trích lọc, chèn, chỉnh sửa

dữ liệu trong database, tương tác với file system, network

- Controller tiếp nhận, điều hướng các yêu cầu từ người dùng, giúp lấy dữ liệu

đúng với những thông tin cần thiết nhờ vào các nghiệp vụ lớp Model cung cấp

và hiển thị các dữ liệu đó ra cho người dùng

- Service nhận yêu cầu sử dụng dịch vụ từ Controller và trả về kết quả để

Controller xử lý

- View tiếp nhận dữ liệu từ Controller và hiển thị giao diện để người dùng tương

tác với các chức năng của website

Ngoài các thành phần chính nêu trên, hệ thống cũng sử dụng các thành phần khác

như Redis, MinIO, Elasticsearch nhằm tăng hiệu năng xử lý của hệ thống

Trang 22

Hình 4.2 Phân rã sơ đồ use case

Trang 23

4.1.1 Đăng kí

Bảng 4.1.1 Mô tả use case đăng ký

2 Hệ thống hiện thị from đăng ký của người dùng

3 Người dung điền thông tin đăng ký tài khoản

Trạng thái hệ thống sau

khi thực hiện use case

Hiển thị from đăng nhập trên hệ thống

4.1.2 Đăng nhập

Bảng 4.1.2 Mô tả usecase Đăng nhập

2 Người dùng nhập email, mật khẩu và nhấn “Đăng nhập”

3 Hệ thống kiểm tra thông tin đăng nhập

4 Hệ thống hiển thị trang chủ

Hệ thống hiển thị thông báo tài khoản đăng nhập không hợp

lệ

Trang 24

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước

khi thực thiện use case

Actor: tất cả các actor Điều kiện: không có Trạng thái hệ thống sau

khi thực hiện use case

Người dùng đăng nhập thành công vào hệ thống, có thể sử dụng các quyền mà hệ thống cho phép

4.1.3 Quên mật khẩu

Bảng 4.1.3 Mô tả use case quên mật khẩu

2 Người dùng nhập Email đăng ký tài khoản

3 Hệ thống gửi email liên kết tạo mới mật khẩu vào địa chỉ email người dùng đã đăng kí

4 Người dùng truy cập vào liên kết tạo mới mật khẩu

5 Người dùng nhập mật khẩu mới và nhấn lưu

6 Hệ thống kiểm tra tính hợp lệ và cập nhật mật khẩu mới

7 Chuyển đến trang chủ của hệ thống

Hệ thống thông báo email không hợp lệ 6.1 Mật khẩu không hợp lệ

Hệ thống thông báo mật khẩu không hợp lệ

Trạng thái hệ thống trước

khi thực thiện use case

Actor: tất cả các actor

Trạng thái hệ thống sau

khi thực hiện use case

Mật khẩu tài khoản người dùng được thay đổi

Trang 25

4.1.4 Cập nhật mật khẩu

Bảng 4.1.4 Mô tả use case cập nhật mật khẩu

2 Người dùng nhập thông tin mới và chọn cập nhật

3 Hệ thống cập nhật lại mật khẩu tài khoản

Hệ thống hiển thị thông báo sai mật khẩu

Trạng thái hệ thống trước

khi thực thiện use case

Actor: khách hàng đã đăng kí tài khoản Điều kiện: người dùng đã đăng nhập hệ thống Trạng thái hệ thống sau

khi thực hiện use case

Mật khẩu của người dùng được thay đổi

4.1.5 Cập nhật thông tin cá nhân

Bảng 4.1.5 Mô tả use case chỉnh sửa thông tin cá nhân

2 Người dùng nhập thông tin cá nhân và chọn cập nhật

3 Hệ thống cập nhật lại thông tin cá nhân của tài khoản

Trạng thái hệ thống trước

khi thực thiện use case

Actor: khách hàng đã đăng kí tài khoản

Điều kiện: người dùng đã đăng nhập hệ thống

Trạng thái hệ thống sau

khi thực hiện use case

Thông tin cá nhân của người dùng được cập nhật

Trang 26

4.1.6 Tìm kiếm bài viết, tài liệu

Bảng 4.1.6 Mô tả use case tìm kiếm bài viết, tài liệu

2 Hệ thống hiển thị các bài viết và tài liệu phù hợp với từ khóa tìm kiếm

khi thực hiện use case

Không có

4.1.7 Đăng tải bài viết mới

Bảng 4.1.7 Mô tả use case đăng tải bài viết

2 Điền đầy đủ thông tin bài viết như tiêu đề, tóm tắt, thể loại, nội dung, …

3 Hệ thống kiểm tra thông tin, nếu các thông tin hợp lệ sẽ tiến hành bước tiếp theo

4 Hệ thống lưu dữ liệu và thông báo thành công

Hệ thống thông báo không hợp lệ và yêu cầu người dùng nhập lại

Trang 27

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản

Điều kiện: Người dùng đã đăng nhập vào hệ thống

Trạng thái hệ thống sau

khi thực hiện use case

Thông tin bài viết được lưu vào hệ thống

4.1.8 Chỉnh sửa bài viết đã đăng tải

Bảng 4.1.8 Mô tả usecase chỉnh sửa bài viết đã đăng tải

tải

2 Người dùng chọn “Chỉnh sửa” ở bài viết mà mình muốn chỉnh sửa

3 Điền đầy đủ thông tin bài viết cần chỉnh sửa

4 Hệ thống kiểm tra thông tin, nếu các thông tin hợp lệ sẽ tiến hành bước tiếp theo

5 Hệ thống cập nhật dữ liệu và thông báo thành công

Hệ thống thông báo thông tin không hợp lệ và yêu cầu người dùng nhập lại

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản Điều kiện: Người dùng đã đăng nhập vào hệ thống Trạng thái hệ thống sau

khi thực hiện use case

Thông tin bài viết được cập nhật trên hệ thống

Trang 28

4.1.9 Xóa bài viết đã đăng

Bảng 4.1.9 Mô tả use case xóa bài viết đã đăng

2 Người dùng chọn “Xóa” ở bài viết mà mình muốn xóa

3 Hệ thống hiển thị cảnh báo, yêu cầu người dùng xác nhận

4 Người dùng xác nhận xóa

5 Hệ thống tiến hành xóa dữ liệu bài viết đã đăng và chuyển hướng về trang quản lý bài viết

Hệ thống hủy bỏ quá trình xóa

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản Điều kiện: Người dùng đã đăng nhập vào hệ thống Trạng thái hệ thống sau

khi thực hiện use case

Thông tin bài viết được xóa khỏi hệ thống

4.1.10 Đăng tải tài liệu

Bảng 4.1.10 Mô tả use case đăng tải tài liệu

2 Chọn file tài liệu muốn đăng, điền đầy đủ thông tin và chọn đăng tải

3 Hệ thống kiểm tra thông tin, nếu các thông tin hợp lệ sẽ tiến hành bước tiếp theo

4 Hệ thống lưu dữ liệu và thông báo thành công

Trang 29

Hệ thống thông báo không hợp lệ và yêu cầu người dùng nhập lại

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản

Điều kiện: Người dùng đã đăng nhập vào hệ thống

Trạng thái hệ thống sau

khi thực hiện use case

Thông tin tài liệu được lưu vào hệ thống

4.1.11 Xóa tài liệu đã đăng

Bảng 4.1.11 Mô tả use case xóa tài liệu

2 Người dùng chọn “Xóa” ở tài liệu mà mình muốn xóa

3 Hệ thống hiển thị cảnh báo, yêu cầu người dùng xác nhận

4 Người dùng xác nhận xóa

5 Hệ thống tiến hành xóa dữ liệu tài liệu đã đăng và chuyển hướng về trang quản lý bài viết

Hệ thống thông hủy bỏ thao tác xóa bài viết

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản Điều kiện: Người dùng đã đăng nhập vào hệ thống Trạng thái hệ thống sau

khi thực hiện use case

Thông tin tài liệu được xóa khỏi hệ thống

Trang 30

4.1.12 Nhận xét bài viết

Bảng 4.1.12 Mô tả use case nhận xét

2 Hệ thống lưu thông tin nhận xét vào hệ thống

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản

Điều kiện: Người dùng đã đăng nhập vào hệ thống

Trạng thái hệ thống sau

khi thực hiện use case

Thông tin nhận xét được lưu vào hệ thống

4.1.13 Yêu thích bài viết

Bảng 4.1.13 Mô tả use case yêu thích bài viết

chi tiết bài viết

2 Hệ thống kiểm tra, và lưu thông tin yêu thích bài viết

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản Điều kiện: Người dùng đã đăng nhập vào hệ thống Trạng thái hệ thống sau

khi thực hiện use case

Nhận xét được lưu vào hệ thống

Trang 31

4.1.14 Báo cáo bài viết vi phạm

Bảng 4.1.14 Mô tả usecase báo cáo bài viết vi phạm

trang chi tiết bài viết

2 Hệ thống hiển thị hộp thoại để người dùng chọn lý do báo cáo bài viết

3 Người dùng chọn lý do và chọn “Báo cáo”

4 Hệ thống kiểm tra, và lưu thông tin báo cáo bài viết

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản Điều kiện: Người dùng đã đăng nhập vào hệ thống Trạng thái hệ thống sau

khi thực hiện use case

Báo cáo được lưu vào hệ thống

4.1.15 Lưu trữ bài viết

Bảng 4.1.15 Mô tả use case lưu bài viết yêu thích

chi tiết bài viết mà họ đang đọc

2 Hệ thống hiển thị hệ thống thư mục lưu trữ bài viết của người dùng

3 Người dùng chọn thư mục mà mình muốn lưu bài viết

4 Hệ thống lưu bài viết vào thư mục mà người dùng đã chọn và thông báo lưu thành công

Trang 32

Các yêu cầu đặc biệt Không có

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản

Điều kiện: Người dùng đã đăng nhập vào hệ thống

Trạng thái hệ thống sau

khi thực hiện use case

Bài viết được lưu vào hệ thống thư mục của người dùng

4.1.16 Xóa bài viết đã lưu

Bảng 4.1.16 Mô tả use case xóa bài viết đã lưu

trữ bài viết và chọn “xóa” ở bài viết muốn xóa

2 Hệ thống tiến hành xóa thông tin bài viết đã lưu ra khỏi thư mục lưu trữ

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản Điều kiện: Người dùng đã đăng nhập vào hệ thống Trạng thái hệ thống sau

khi thực hiện use case

Thông tin lưu trữ bài viết được xóa khỏi hệ thống

4.1.17 Thêm thư mục lưu trữ

Bảng 4.1.17 Mô tả use case thêm thư mục lưu trữ

tập”

Trang 33

3 Người dùng nhập tên thư mục và chọn Lưu

4 Hệ thống tạo mới thư mục cho người dùng

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản Điều kiện: Người dùng đã đăng nhập vào hệ thống Trạng thái hệ thống sau

khi thực hiện use case

Thông tin thư mục được lưu vào hệ thống

4.1.18 Đổi tên thư mục lưu trữ

Bảng 4.1.18 Mô tả use case đổi tên thư mục lưu trữ

ở thư mục lưu trữ mà mình muốn đổi tên

2 Hệ thống hiện thị hộp thoại yêu cầu người dùng nhập tên mới

3 Người dùng nhập tên mới của thư mục

4 Hệ thống kiểm tra tính hợp lệ của thông tin

5 Hệ thông cập nhật thông tin thư mục

Hệ thống thông báo thông tin không hợp lệ và yêu cầu người dùng nhập lại

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản Điều kiện: Người dùng đã đăng nhập vào hệ thống Trạng thái hệ thống sau

khi thực hiện use case

Thông tin thư mục được cập nhật

Trang 34

4.1.19 Xóa thư mục lưu trữ

Bảng 4.1.19 Mô tả use case xóa thư mục lưu trữ

thư mục mình muốn xóa

2 Hệ thống hiển thị cảnh báo để người dùng xác nhận xóa

3 Người dùng xác nhận xóa

4 Hệ thống tiến hành xóa thông tin thư mục ra khỏi hệ thống

Hệ thống hủy bỏ thao tác xóa thư mục

Trạng thái hệ thống trước

khi thực thiện use case

Actor: Người dùng đã đăng ký tài khoản Điều kiện: Người dùng đã đăng nhập vào hệ thống Trạng thái hệ thống sau

khi thực hiện use case

Thông tin thư mục được xóa khỏi hệ thống

4.1.20 Tải lài liệu

Bảng 4.1.20 Mô tả use case tải tài liệu

cá nhân của mình

2 Hệ thống xử lý yêu cầu và gửi file về máy tính của người dùng

Ngày đăng: 01/02/2023, 21:13

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Lập trình C# Cơ bản – Xuanthulab.net [Truy cập lần cuối 20/12/2022] Lập trình C# Cơ bản (xuanthulab.net) Sách, tạp chí
Tiêu đề: Lập trình C# Cơ bản
Nhà XB: Xuanthulab.net
[6] Tìm hiểu chung về Elasticsearch [Truy cập lần cuối 20/12/2022] Tìm hiểu chung về Elasticsearch (viblo.asia) Sách, tạp chí
Tiêu đề: Tìm hiểu chung về Elasticsearch
[13] Minio – Object storage server như AWS S3 - viblo.asia [Truy cập lần cuối 20/12/2022]Minio – Object storage server như AWS S3 (viblo.asia) Sách, tạp chí
Tiêu đề: Minio – Object storage server như AWS S3
Nhà XB: viblo.asia
[2] Series ASP.NET MVC - Part 1: Bước đầu làm quen với ASP.NET MVC, tạo ứng dụng web đầu tiên [Truy cập lần cuối 20/12/2022]Series ASP.NET MVC - Part 1: Bước đầu làm quen với asp.net mvc, tạo ứng dụng web đầu tiên. (viblo.asia) Khác
[3] Get started with ASP.NET Core MVC - learn.microsoft.com [Truy cập lần cuối 20/12/2022]Get started with ASP.NET Core MVC | Microsoft Learn Khác
[4] Elasticsearch là gì? Kiến thức tổng quan về Elasticsearch - itnavi.com.vn [Truy cập lần cuối 20/12/2022]Elasticsearch là gì? Kiến thức tổng quan về Elasticsearch (itnavi.com.vn) [5] Elastic search [Truy cập lần cuối 20/12/2022] - Elastic.co[Truy cập lần cuối 20/12/2022]Welcome to Elastic Docs | Elastic Khác
[7] Toàn tập về SQL Server cho người mới bắt đầu - viettelidc.com.vn [Truy cập lần cuối 20/12/2022]Toàn tập về SQL Server cho người mới bắt đầu (viettelidc.com.vn) Khác
[11] Redis là gì? Ưu điểm của nó và ứng dụng - topdev.vn [Truy cập lần cuối 20/12/2022]Redis là gì? Ưu điểm của nó và ứng dụng | TopDev Khác
[12] Redis documentation - redis.io [Truy cập lần cuối 20/12/2022] Documentation | Redis Khác
[14] MinIO documentation - min.io [Truy cập lần cuối 20/12/2022] MinIO High Performance Object Storage — MinIO Object Storage for Container Khác

🧩 Sản phẩm bạn có thể quan tâm

w