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 47 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 6LỜ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 7DANH 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 8DANH 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 9Bả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 10Chươ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 12Chươ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 132.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 162.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 17Chươ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 18Quả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 193.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 20Mố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 22Hình 4.2 Phân rã sơ đồ use case
Trang 234.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 24Cá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 254.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 264.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 27Trạ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 284.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 29Hệ 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 304.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 314.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 32Cá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 333 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 344.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