đồ án tốt nghiệp xây dựng hệ thống chia sẻ tài liệu trực tuyến

101 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án tốt nghiệp xây dựng hệ thống chia sẻ tài liệu trực tuyến

Đ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

Ngoài ra, hệ thống cũng cung cấp các công cụ để quản lý tàiliệu, cho phép người dùng xác định quyền truy cập cho từng tài liệu, thực hiện các thaotác như chuyển từ miễn phí sang có phí v

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNTTRƯỜNG ĐẠI HỌC THỦY LỢI

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNTTRƯỜNG ĐẠI HỌC THỦY LỢI

HOÀNG NHẬT MINH

XÂY DỰNG HỆ THỐNG CHIA SẺ TÀI LIỆU TRỰC TUYẾN

Ngành : Kỹ thuật phần mềmMã số: 7480103

NGƯỜI HƯỚNG DẪN TS Nguyễn Thọ Thông

HÀ NỘI, NĂM 2023

Trang 3

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAMĐộc lập - Tự do - Hạnh phúc

-NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆPHọ tên sinh viên: Hoàng Nhật Minh Hệ đào tạo Đại học chính quy : Lớp: 61PM2 Ngành: Kỹ thuật phần mềmKhoa: Công nghệ thông tin

[11] "Studocu là gì?," [Online] Available: la-gi-cach-download-tai-lieu-tu-studocu/.

https://chiasepremium.com/review-studocu-[12] "Số liệu thống kê 123doc," [Online] Available:https://www.similarweb.com/website/123docz.net/#overview.

[13] "Similarweb," [Online] Available: https://www.similarweb.com/.

Trang 4

3 NỘI DUNG CÁC PHẦN THUYẾT MINH VÀ TÍNH TOÁN:

Chương 1: TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT 10%Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 40%Chương 3: THỰC NGHIỆM, SO SÁNH VÀ ĐÁNH GIÁ 40%

4 GIÁO VIÊN HƯỚNG DẪN TỪNG PHẦN

MỞ ĐẦU

TS Nguyễn Thọ ThôngChương 1: TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT

Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNGChương 3: THỰC NGHIỆM, SO SÁNH VÀ ĐÁNHGIÁ

KẾT LUẬN

5 NGÀY GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆPNgày tháng năm 2023

Trưởng Bộ môn (Ký và ghi rõ Họ tên)

Giáo viên hướng dẫn chính(Ký và ghi rõ Họ tên)

Nhiệm vụ Đồ án tốt nghiệp đã được Hội đồng thi tốt nghiệp của Khoa thông qua Ngày .tháng .năm 2023 Chủ tịch Hội đồng

(Ký và ghi rõ Họ tên)

Trang 5

Sinh viên đã hoàn thành và nộp bản Đồ án tốt nghiệp cho Hội đồng thi ngày tháng năm 2023

Sinh viên làm Đồ án tốt nghiệp (Ký và ghi rõ Họ tên)

Trang 6

TRƯỜNG ĐẠI HỌC THUỶ LỢI KHOA CÔNG NGHỆ THÔNG TIN

Với sự phát triển của công nghệ, các hệ thống chia sẻ tài liệu trực tuyến đã đượcphát triển để đáp ứng nhu cầu ngày càng cao của người sử dụng Những hệ thống nàycung cấp cho người dùng một nền tảng để tải lên, chia sẻ và quản lý tài liệu một cáchđơn giản và hiệu quả Ngoài ra, hệ thống cũng cung cấp các công cụ để quản lý tàiliệu, cho phép người dùng xác định quyền truy cập cho từng tài liệu, thực hiện các thaotác như chuyển từ miễn phí sang có phí và ngược lại, di chuyển tài liệu sang danh mụckhác, và theo dõi các thông tin về số người đọc, người tải xuống của tài liệu.

Đề tài “Xây dựng hệ thống chia sẻ tài liệu trực tuyến” có thể được áp dụng trongnhiều lĩnh vực, từ giáo dục đến doanh nghiệp, đáp ứng nhu cầu ngày càng tăng về việcquản lý và chia sẻ tài liệu trực tuyến.

CÁC MỤC TIÊU CHÍNHLý thuyết

● Tìm hiểu về framework Laravel của PHP● Tìm hiểu về search engine là elasticsearch● Tìm hiểu về object storage MinIO.● Tìm hiểu sâu hơn về SEO website

Trang 7

Kỹ năng

● Tự động hóa các khâu kiểm duyệt, lọc và xử lý tài liệu

● Ứng dụng Elasticsearch để tối ưu tìm kiếm và kết hợp với full-text search đểgiúp cho người dùng có thể tìm được tài liệu mong muốn một cách nhanhchóng và chính xác nhất

● Tích hợp chức năng trả phí cho tài liệu để người bán có doanh thu và dự án cókinh phí duy trì và phát triển

● Tích hợp được AI để xử lý , nhận diện hình ảnh có trong các tài liệu● SEO website để đưa lên top tìm kiếm của google, bing

KẾT QUẢ DỰ KIẾNKiến thức

● Sinh viên hiểu được cách triển khai và quản lý hệ thống tài liệu trực tuyến mộtcách hiệu quả.

● Sinh viên hiểu được về các chuẩn và quy định liên quan đến bảo mật thông tintrong hệ thống chia sẻ tài liệu trực tuyến.

● Sinh viên nắm rõ các kỹ thuật phân tích và xử lý dữ liệu liên quan đến hệ thốngchia sẻ tài liệu trực tuyến.

● Sinh viên có khả năng phát triển và tùy biến hệ thống chia sẻ tài liệu trực tuyếnđể phù hợp với nhu cầu sử dụng của khách hàng.

ảnh, giúp cho việc tìm kiếm tài liệu trở nên hiệu quả hơn và chính xác hơn.● Thu thập tài liệu và xử lí tài liệu.

● Sinh viên có khả năng thiết kế và triển khai hệ thống chia sẻ tài liệu trực tuyếnmột cách chuyên nghiệp.

● Sinh viên có khả năng nghiên cứu và áp dụng các công nghệ mới nhất để nângcao hiệu suất và tính năng của hệ thống chia sẻ tài liệu trực tuyến.

Trang 8

TÀI LIỆU THAM KHẢO[1] Framework laravel: https://laravel.com/

[2] Search engine Elasticsearch: https://www.elastic.co/[3] Object storage MinIO : https://min.io/

[4] Detectron2 – Meta AI : https://ai.facebook.com/tools/detectron2/

Trang 9

LỜI CAM ĐOAN

Tác giả xin cam đoan đây là Đồ án tốt nghiệp của bản thân tác giả Các kết quả trongĐồ án tốt nghiệp này là trung thực, và không sao chép từ bất kỳ một nguồn nào vàdưới bất kỳ hình thức nào Việc tham khảo các nguồn tài liệu đã được thực hiện tríchdẫn và ghi nguồn tài liệu tham khảo đúng quy định.

Tác giả ĐATN Minh Hoàng Nhật Minh

i

Trang 10

Em cũng xin gửi lời cảm ơn chân thành đến Ban giám hiệu và toàn thể các giảng viêncủa trường Đại Học Thủy Lợi Sự tận tâm và nhiệt huyết của các Thầy/Cô đã giúp emthu nhận một cách tốt hơn những kiến thức quý báu và phát triển bản thân sâu hơn vềkiến thức trong ngành Em rất biết ơn vì sự cống hiến không ngừng của quý Thầy/Côtrong việc truyền đạt kiến thức và tạo điều kiện tốt nhất để em phát triển.

Trong quá trình thực hiện đồ án, dù đã nhận được sự hướng dẫn nhiệt tình từ TS.Nguyễn Thọ Thông và sự nỗ lực không ngừng, em nhận thức rằng sẽ luôn tồn tạinhững hạn chế không tránh khỏi Em luôn sẵn lòng tiếp nhận và đánh giá cao mọiđóng góp và phản hồi từ TS Nguyễn Thọ Thông, Ban giám hiệu và các giảng viên, vìđó đóng vai trò vô cùng quan trọng và mang ý nghĩa lớn trong việc hoàn thiện đồ ántốt nghiệp của em.

Cuối cùng, em xin chân thành cảm ơn TS Nguyễn Thọ Thông, Ban giám hiệu và toànthể các giảng viên vì sự hỗ trợ và đóng góp quý báu của Thầy/Cô trong hành trình họctập và nghiên cứu của em.

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

ii

Trang 11

MỤC LỤC

DANH MỤC CÁC HÌNH ẢNH v

DANH MỤC BẢNG BIỂU viii

DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ x

CHƯƠNG 1 TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT 1

1.3.4 Công cụ quản lý source code 7

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 8

2.1 Đặc tả yêu cầu phần mềm 8

2.1.1 Mô tả chung 8

2.1.2 Về giao diện 8

2.2 Biểu đồ phân cấp chức năng 10

2.3 Use Case của các tác nhân trong hệ thống 10

2.4 Thiết kế chi tiết hệ thống 12

2.4.1 Biểu đồ use case 12

2.4.2 Bản mô tả yêu cầu chức năng 14

2.4.3 Bản mô tả yêu cầu phi chức năng 43

2.5 Thiết kế cơ sở dữ liệu 43

2.5.1 Các bảng trong CSDL 43

2.5.2 Sơ đồ quan hệ CSDL 50

CHƯƠNG 3 THỰC NGHIỆM, SO SÁNH VÀ ĐÁNH GIÁ KẾT QUẢ 51

3.1 Môi trường thực nghiệm 51iii

Trang 12

3.2 Kết quả đạt được 51

3.2.1 Về phía admin: 51

3.2.2 Về phía người dùng 60

3.3 So sánh kết quả với các hệ thống tương đương 72

3.3.1 Giới thiệu các hệ thống tương đương 72

3.3.2 Tiêu chí so sánh các hệ thống 72

3.3.3 Bảng so sánh kết quả giữa hệ thống của đề tài và các hệ thống tương đương 73

3.4 Đánh giá kết quả 74

3.4.1 Phân tích và đánh giá kết quả thực nghiệm 74

3.4.2 Đánh giá tổng thể kết quả đề tài 75

3.5 Hạn chế 76

3.5.1 Phân tích và đánh giá các hạn chế của đề tài 76

3.5.2 Đề xuất các hướng nghiên cứu tiếp theo để khắc phục các hạn chế của đề tài 76

3.6 Đề xuất hướng phát triển đề tài trong tương lai 77

KẾT LUẬN 79

TÀI LIỆU THAM KHẢO 81

iv

Trang 13

DANH MỤC CÁC HÌNH ẢNH

Hình 1.1 Chu kỳ mô hình MVC trong laravel 6

Hình 2.1 Biểu đồ Use case tổng quát 12

Hình 2.2 Biểu đồ use case phân rã chức năng của Admin 13

Hình 2.4 Biểu đồ use case phân rã chức năng của khách vãng lai 13

Hình 2.3 Biểu đồ use case phân rã chức năng của người dùng 14

Hình 2.5 Sơ đồ activity chức năng “quản lý tài liệu” của admin 15

Hình 2.6 Sơ đồ tuần tự chức năng “quản lý tài liệu” của admin 15

Hình 2.7 Sơ đồ activity chức năng “lọc/tìm kiếm tài liệu” của admin 17

Hình 2.8 Sơ đồ activity chức năng “quản lý tài khoản người dùng” của admin 20

Hình 2.9 Sơ đồ activity chức năng “xoá tài khoản người dùng” của admin 22

Hình 2.10 Sơ đồ tuần tự chức năng “quản lý tài khoản người dùng” của admin 22

Hình 2.11 Sơ đồ activity chức năng “đăng nhập” của người dùng 25

Hình 2.12 Sơ đồ tuần tự chức năng “đăng nhập” của người dùng 25

Hình 2.13 Sơ đồ activity chức năng “quên mật khẩu” của người dùng 27

Hình 2.14 Sơ đồ tuần tự chức năng “quên mật khẩu” của người dùng 27

Hình 2.15 Sơ đồ activity chức năng “đăng ký tài khoản” của người dùng 29

Hình 2.16 Sơ đồ tuần tự chức năng “đăng ký tài khoản” của người dùng 29

Hình 2.17 Sơ đồ activity chức năng “tải tài liệu” của người dùng 31

Hình 2.18 Sơ đồ tuần tự chức năng “tải tài liệu” của người dùng 31

Hình 2.19 Sơ đồ activity chức năng “đánh giá tài liệu” của người dùng 33

Hình 2.20 Sơ đồ tuần tự chức năng “đánh giá tài liệu” của người dùng 33

Hình 2.21 Sơ đồ activity chức năng “nạp tiền vào tài khoản” của người dùng 36

Hình 2.22 Sơ đồ tuần tự chức năng “nạp tiền vào tài khoản” của người dùng 36

v

Trang 14

Hình 2.23 Sơ đồ activity chức năng “đăng tài liệu” của người dùng 38

Hình 2.24 Sơ đồ tuần tự chức năng “đăng tài liệu” của người dùng 38

Hình 2.25 Sơ đồ activity chức năng “cập nhật thông tin tài khoản” của người dùng .40Hình 2.26 Sơ đồ tuần tự chức năng “cập nhật thông tin tài khoản” của người dùng 40

Hình 2.27 Sơ đồ activity chức năng “quản lý tài liệu đã đăng” của người dùng 42

Hình 2.28 Sơ đồ tuần tự chức năng “quản lý tài liệu đã đăng” của người dùng 42

Hình 2.29 Sơ đồ quan hệ CSDL 50

Hình 3.1 Giao diện đăng nhập admin 51

Hình 3.2 Trang quản lý người dùng 52

Hình 3.3 Trang tạo mới người dùng 52

Hình 3.4 Trang cập nhật thông tin người dùng 53

Hình 3.5 Trang quản lý danh mục 53

Hình 3.6 Trang thêm danh mục 54

Hình 3.7 Trang cập nhật danh mục 54

Hình 3.8 Trang quản lý tài liệu 55

Hình 3.9 Trang thêm mới tài liệu 55

Hình 3.10 Trang cập nhật thông tin tài liệu 56

Hình 3.11 Trang thống kê lượt tải xuống 56

Hình 3.12 Trang quản lý tags 57

Hình 3.13 Trang thêm mới tags 57

Hình 3.14 Trang cập nhật thông tin của tags 58

Hình 3.15 Trang thống kê comment 58

Hình 3.16 Trang thống kê báo cáo tài liệu 59

Hình 3.17 Trang thống kê giao dịch 59

Hình 3.18 Trang chủ 60vi

Trang 15

Hình 3.25 Trang danh sách tài liệu theo danh mục 64

Hình 3.28 Giao diện báo cáo tài liệu 64

Hình 3.26 Trang đọc tài liệu 65

Hình 3.27 Trang đọc tài liệu 66

Hình 3.31 Giao diện chọn hình thức nạp tiền 67

Hình 3.33 Giao diện thanh toán bằng VNPay 67

Hình 3.35 Giao diện thanh toán bằng Paypal 68

Hình 3.37 Giao diện danh sách các tài liệu đã tải xuống 68

Hình 3.38 Giao diện đăng tài liệu 69

Hình 3.40 Trang quản lý tài liệu đã đăng 69

Hình 3.41 Trang cập nhật thông tin tài liệu 70

Hình 3.42 Chức năng xóa tài liệu 70

Hình 3.44 Trang tổng hợp comment của người dùng 71

Hình 3.45 Trang tìm kiếm tài liệu 71

vii

Trang 16

DANH MỤC BẢNG BIỂU

Bảng 2.1 Kịch bản use case kiểm duyệt liệu 14

Bảng 2.2 Kịch bản use case tìm kiếm tài liệu 16

Bảng 2.3 Kịch bản use case thêm tài khoản người dùng 18

Bảng 2.4 Kịch bản use case cập nhật thông tin người dùng 20

Bảng 2.5 Kịch bản use case xóa tài khoản người dùng 21

Bảng 2.6 Kịch bản use case quản lý giao dịch 23

Bảng 2.7 Kịch bản use case thống kê thông tin 23

Bảng 2.8 Kịch bản use case đăng nhập 24

Bảng 2.9 Kịch bản use case cho chức năng lấy lại mật khẩu 26

Bảng 2.10 Kịch bản use case đăng ký tài khoản 28

Bảng 2.11 Kịch bản use case cho chức năng tải tài liệu 30

Bảng 2.12 Kịch bản use case cho chức năng đánh giá tài liệu 32

Bảng 2.13 Kịch bản use case xem danh sách tài liệu đã tải 34

Bảng 2.14 Kịch bản use case cho chức năng nạp tiền vào tài khoản 35

Bảng 2.15 Kịch bản use case cho chức năng đăng tài liệu 37

Bảng 2.16 Kịch bản use case cập nhật thông tin cá nhân 39

Bảng 2.17 Kịch bản use case quản lý tài liệu đã đăng 41

Trang 18

DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮTừ viết tắt Viết đầy đủ

HTML HyperText Markup LanguageCSS Cascading Style SheetsJS JavaScript

SQL Structured Query LanguageAPI Application Programming InterfaceMVC Model – View – ControllerCSDL Cơ sở dữ liệu

PHP Personal Home PageGA 4 Google Analytics 4UI User InterfaceUX User Experience

CHƯƠNG 1 TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT1.1 Giới thiệu

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

Đầu tiên, trong thời đại công nghệ số hiện đại, việc chia sẻ và truy cập tài liệu trựctuyến đang trở thành xu hướng phổ biến Em quan tâm đến việc xây dựng một hệthống hiệu quả và tiện lợi để người dùng có thể dễ dàng chia sẻ và tìm kiếm các tàiliệu cần thiết.

Thứ hai, hệ thống chia sẻ tài liệu online có thể đáp ứng nhu cầu học tập và nghiên cứucủa sinh viên và người dùng chung Em tin rằng việc cung cấp một nền tảng thuận tiệncho việc chia sẻ kiến thức và tài liệu sẽ góp phần thúc đẩy quá trình học tập và nghiêncứu, tạo điều kiện thuận lợi cho việc trao đổi thông tin và tương tác giữa các thànhviên trong cộng đồng.

x

Trang 19

Thứ ba, việc phát triển một hệ thống chia sẻ tài liệu trực tuyến là một thách thức hấpdẫn và mang tính thực tiễn cao Em muốn áp dụng những kiến thức và kỹ năng đã họctrong quá trình đào tạo để tạo ra một sản phẩm có giá trị thực tiễn và có khả năng ứngdụng rộng rãi trong thực tế.

Cuối cùng, em tin rằng việc nghiên cứu và xây dựng hệ thống chia sẻ tài liệu trựctuyến sẽ là một bước ngoặt quan trọng trong sự phát triển cá nhân và sự chuẩn bị chosự nghiệp sau này Em hy vọng rằng qua việc thực hiện đề tài này, em sẽ có cơ hội rènluyện và nâng cao kỹ năng lập trình, quản lý dự án và tư duy phân tích, đồng thời đónggóp vào việc xây dựng một hệ thống hữu ích và có giá trị cho cộng đồng.

1.1.2 Mục tiêu nghiên cứu

Mục tiêu nghiên cứu của đề tài "Hệ thống chia sẻ tài liệu trực tuyến" là xây dựng mộtnền tảng tốt cho việc chia sẻ và truy cập tài liệu trực tuyến Cụ thể, mục tiêu củanghiên cứu bao gồm:

Phân tích và đánh giá các yêu cầu và nhu cầu của người dùng về việc chia sẻ và truycập tài liệu trực tuyến Điều này giúp hiểu rõ hơn về các tính năng và chức năng cần cótrong hệ thống.

Thiết kế và triển khai một giao diện hệ thống thân thiện và dễ sử dụng cho ngườidùng Đây là mục tiêu quan trọng để đảm bảo tính tiện ích và thuận lợi cho người dùngkhi sử dụng hệ thống.

Phát triển cơ chế quản lý tài liệu, bao gồm việc lưu trữ, phân loại và tìm kiếm thôngtin Mục tiêu là tạo ra một cơ sở dữ liệu hiệu quả và có tổ chức, giúp người dùng dễdàng tìm kiếm và truy cập tài liệu mong muốn.

Đảm bảo tính bảo mật và quyền riêng tư trong quá trình chia sẻ tài liệu Mục tiêunày là đảm bảo rằng chỉ những người được phép mới có thể truy cập và sử dụng tàiliệu, bảo vệ quyền riêng tư của người dùng.

Kiểm thử và đánh giá hiệu suất của hệ thống Mục tiêu là đảm bảo rằng hệ thốnghoạt động một cách ổn định, đáp ứng yêu cầu và tối ưu hóa hiệu suất trong việc chia sẻvà truy cập tài liệu.

xi

Trang 20

Tổng quan, mục tiêu của nghiên cứu là xây dựng một hệ thống chia sẻ tài liệu trựctuyến hiệu quả, tiện lợi và an toàn, đáp ứng nhu cầu của người dùng trong việc chia sẻ,truy cập và quản lý tài liệu trực tuyến.

Quản lý tài liệu: Nghiên cứu sẽ tập trung vào các khía cạnh quản lý tài liệu, baogồm phân loại, tổ chức và tìm kiếm thông tin Mục tiêu là tạo ra một hệ thống quản lýtài liệu hiệu quả, cho phép người dùng dễ dàng tìm kiếm, truy cập và tải xuống tài liệutheo yêu cầu.

Bảo mật và quyền riêng tư: Nghiên cứu sẽ xem xét các biện pháp bảo mật và quyềnriêng tư trong việc chia sẻ tài liệu trực tuyến Mục tiêu là đảm bảo rằng chỉ nhữngngười được phép mới có thể truy cập và sử dụng tài liệu, đồng thời bảo vệ thông tin cánhân của người dùng.

Hiệu suất và tối ưu hóa: Nghiên cứu sẽ tập trung vào việc kiểm thử và đánh giá hiệusuất của hệ thống Mục tiêu là đảm bảo rằng hệ thống hoạt động một cách ổn định, đápứng yêu cầu và tối ưu hóa hiệu suất trong việc chia sẻ và truy cập tài liệu.

Tổng quan, phạm vi nghiên cứu của đề tài sẽ tập trung vào việc xây dựng một hệ thốngchia sẻ tài liệu trực tuyến đầy đủ tính năng, hiệu quả và an toàn, cùng với việc tối ưuhóa hiệu suất và đáp ứng yêu cầu của người dùng.

1.1.4 Ý nghĩa thực tiễn

Đề tài "Hệ thống chia sẻ tài liệu trực tuyến" mang ý nghĩa thực tiễn quan trọng trongnhiều lĩnh vực và ngành nghề Dưới đây là một số ý nghĩa thực tiễn của đề tài này:

xii

Trang 21

Tiện lợi và linh hoạt: Hệ thống chia sẻ tài liệu online giúp người dùng dễ dàng chiasẻ và truy cập tài liệu từ mọi nơi và mọi thiết bị có kết nối internet Điều này mang lạisự tiện lợi và linh hoạt cho người dùng, giúp họ tiếp cận thông tin và tài liệu cần thiếtmột cách nhanh chóng và hiệu quả.

Quản lý tài liệu hiệu quả: Hệ thống cho phép người dùng tổ chức, phân loại và tìmkiếm tài liệu một cách dễ dàng Điều này giúp tăng cường khả năng quản lý tài liệu,giảm thiểu thời gian tìm kiếm và đảm bảo rằng tài liệu được tổ chức và lưu trữ mộtcách hiệu quả.

Chia sẻ thông tin và hợp tác: Hệ thống chia sẻ tài liệu online tạo ra một môi trườngthuận lợi để người dùng chia sẻ kiến thức, kinh nghiệm và tài liệu với nhau Điều nàykhuyến khích sự hợp tác, trao đổi và tương tác giữa các cá nhân và tổ chức, góp phầnnâng cao chất lượng và sự phát triển của cộng đồng người dùng.

Tiết kiệm tài nguyên và bảo vệ môi trường: Sử dụng hệ thống chia sẻ tài liệu onlinegiúp giảm thiểu việc sử dụng giấy và in ấn, từ đó giảm lượng rác thải và tiết kiệm tàinguyên tự nhiên Điều này đóng góp vào việc bảo vệ môi trường và hướng đến mộtcông việc và học tập bền vững.

Hỗ trợ học tập và nghiên cứu: Hệ thống chia sẻ tài liệu online cung cấp nguồn tàiliệu phong phú và đa dạng cho việc học tập và nghiên cứu Người dùng có thể tiếp cậncác tài liệu học thuật, báo cáo, tài liệu tham khảo và nhiều nguồn kiến thức khác, giúpnâng cao trình độ và hiệu suất học tập của họ.

Tóm lại, đề tài "Hệ thống chia sẻ tài liệu trực tuyến" có ý nghĩa thực tiễn quan trọngtrong việc cung cấp một công cụ tiện ích, hiệu quả và hỗ trợ cho việc quản lý, chia sẻvà tiếp cận tài liệu trong môi trường công việc và học tập.

xiii

Trang 22

Hệ thống quản lý tài liệu: Cơ sở lý thuyết về hệ thống quản lý tài liệu bao gồm cáckhái niệm về cấu trúc dữ liệu, quản lý metadata, cơ chế tìm kiếm và phân loại tài liệu.Nghiên cứu trong lĩnh vực này giúp xây dựng hệ thống có khả năng tổ chức và quản lýtài liệu một cách hiệu quả.

Hệ thống cơ sở dữ liệu: Cơ sở lý thuyết về hệ thống cơ sở dữ liệu cung cấp cácnguyên tắc về thiết kế, truy vấn và xử lý dữ liệu Nghiên cứu trong lĩnh vực này giúpxây dựng hệ thống có khả năng lưu trữ và truy xuất dữ liệu tài liệu một cách an toàn vàhiệu quả.

An ninh và bảo mật: Cơ sở lý thuyết về an ninh và bảo mật đảm bảo rằng hệ thốngchia sẻ tài liệu online được bảo vệ khỏi các mối đe dọa và xâm nhập Nghiên cứu tronglĩnh vực này tập trung vào các phương pháp mã hóa, chứng thực và kiểm soát truy cậpđể đảm bảo tính bảo mật của dữ liệu tài liệu.

Trải nghiệm người dùng: Cơ sở lý thuyết về trải nghiệm người dùng tập trung vàoviệc nghiên cứu và áp dụng các nguyên tắc thiết kế giao diện người dùng và trảinghiệm người dùng để tạo ra một giao diện thân thiện và dễ sử dụng cho hệ thống chiasẻ tài liệu.

Công nghệ web: Cơ sở lý thuyết về công nghệ web bao gồm các nguyên tắc và côngnghệ liên quan đến phát triển ứng dụng web, bao gồm HTML, CSS, JavaScript.Nghiên cứu trong lĩnh vực này giúp xây dựng giao diện người dùng tương tác và thânthiện trên nền tảng web.

Xử lý ngôn ngữ tự nhiên: Cơ sở lý thuyết về xử lý ngôn ngữ tự nhiên tập trung vàoviệc nghiên cứu và phát triển các phương pháp và công nghệ để xử lý và phân tíchthông tin trong tài liệu văn bản Nghiên cứu trong lĩnh vực này giúp tăng cường khảnăng tìm kiếm, phân loại và tổ chức tài liệu dựa trên nội dung và ngôn ngữ.

Từ cơ sở lý thuyết này, đề tài "Hệ thống chia sẻ tài liệu trực tuyến" có thể xây dựngmột hệ thống hiệu quả, an toàn và dễ sử dụng để quản lý và chia sẻ tài liệu trong

xiv

Trang 23

1.3 Công nghệ sử dụng1.3.1 Ngôn ngữ lập trình

1.3.1.1HTML [CITATION HTM \l 1033 ]

HTML (HyperText Markup Language) là một ngôn ngữ đánh dấu được sử dụng để tạovà cấu trúc nội dung trên các trang web Nó là một ngôn ngữ giao diện cho trình duyệtweb, giúp hiển thị thông tin và tạo cấu trúc cho các phần tử trên trang.

HTML sử dụng các thẻ (tag) để xác định các phần tử trên trang web Mỗi thẻ bắt đầubằng dấu nhấn mở và kết thúc bằng dấu nhấn đóng Ví dụ, thẻ <><h1> và </h1>được sử dụng để định dạng tiêu đề cấp 1 trong HTML Các thẻ có thể chứa văn bản,hình ảnh, liên kết và nhiều phần tử khác.

1.3.1.2CSS [CITATION HTM \l 1033 ]

CSS (Cascading Style Sheets) là một ngôn ngữ đánh dấu sử dụng để tạo kiểu và địnhdạng cho các phần tử trên trang web Nó giúp xác định các thuộc tính như màu sắc,kích thước, vị trí và đường viền của các phần tử, từ đó tạo nên giao diện và trải nghiệmcho người dùng.

1.3.1.3Javascript [CITATION Jav \l 1033 ]

JavaScript là một ngôn ngữ lập trình phía máy khách (client-side) được sử dụng phổbiến trong việc tạo ra các ứng dụng web động và tương tác Với JavaScript, bạn có thểthêm tính năng động, xử lý sự kiện và tương tác người dùng trực tiếp trên trình duyệt.JavaScript được thực thi trên trình duyệt của người dùng, không cần thông qua máychủ (server), giúp tạo ra các tác động nhanh chóng và phản hồi tức thì cho người dùng.Nó cho phép thao tác với các phần tử HTML, thay đổi nội dung và kiểu dáng củatrang, xử lý các sự kiện như nhấp chuột, gửi biểu mẫu và tương tác với dữ liệu từ máychủ.

1.3.1.4PHP [CITATION PHP \l 1033 ]

PHP là viết tắt của cụm từ Personal Home Page nay đã được chuyển thành HypertextPreprocessor PHP là một ngôn ngữ lập trình phía máy chủ (server-side) phổ biến vàmạnh mẽ, được sử dụng rộng rãi trong phát triển các ứng dụng web động và trang web

xv

Trang 24

tương tác PHP cho phép xử lý dữ liệu trên máy chủ và tạo ra nội dung động để gửi vềcho máy khách (client).

1.3.2 Hệ quản trị cơ sở dữ liệu MySQL [CITATION htt1 \l 1033 ]

MySQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở phổ biến Nó cung cấpmột cách hiệu quả để lưu trữ và quản lý dữ liệu trong các ứng dụng web và phần mềm.MySQL sử dụng ngôn ngữ truy vấn SQL (Structured Query Language) để thao tác vàtương tác với cơ sở dữ liệu.

MySQL có một cộng đồng lớn và phong phú, với nhiều tài liệu, hỗ trợ và công cụ pháttriển Nó cũng tích hợp tốt với các ngôn ngữ lập trình như PHP, Python, Java và Ruby,giúp dễ dàng tương tác và làm việc với cơ sở dữ liệu trong các ứng dụng phát triển.1.3.3 Framework Laravel [CITATION htt \l 1033 ]

Laravel là một framework phát triển ứng dụng web mạnh mẽ và linh hoạt, được tạo rabởi Taylor Otwell vào năm 2011 Nó được xây dựng trên nền tảng của ngôn ngữ lậptrình PHP và đã trở thành một trong những framework phổ biến nhất cho việc pháttriển ứng dụng web hiện đại.

Một số điểm nổi bật và chi tiết hơn về Laravel bao gồm:

Cấu trúc MVC: Laravel tuân thủ mô hình MVC (Model-View-Controller), giúpphân chia rõ ràng các phần khác nhau của ứng dụng Điều này giúp cho việc quản lývà phát triển ứng dụng trở nên dễ dàng hơn bằng cách tách biệt logic xử lý dữ liệu(model), giao diện người dùng (view) và điều khiển các hoạt động (controller).

xvi

Trang 25

Hình 1.1 Chu kỳ mô hình MVC trong laravel

Routing linh hoạt: Laravel cung cấp hệ thống routing mạnh mẽ, cho phép địnhtuyến các URL và điều hướng yêu cầu HTTP đến các điều khiển tương ứng Điều nàygiúp quản lý các tác vụ và chức năng của ứng dụng một cách dễ dàng và hiệu quả.

Hỗ trợ cơ sở dữ liệu: Laravel hỗ trợ nhiều loại cơ sở dữ liệu phổ biến như MySQL,PostgreSQL, SQLite và SQL Server Framework cung cấp một ORM (Object-Relational Mapping) gọi là Eloquent ORM, giúp tương tác dễ dàng và linh hoạt với cơsở dữ liệu thông qua các đối tượng và truy vấn dễ đọc.

Giao diện người dùng mạnh mẽ: Laravel hỗ trợ Blade, một hệ thống mẫu (template)mạnh mẽ giúp xây dựng giao diện người dùng đẹp mắt và dễ quản lý Blade cung cấpcác tính năng như kế thừa mẫu, truyền dữ liệu vào mẫu, điều kiện điều chỉnh và lặp lạidữ liệu, giúp tạo ra mã HTML sạch sẽ và dễ đọc.

Bảo mật: Laravel đi kèm với các tính năng bảo mật mạnh mẽ để bảo vệ ứng dụng.Nó cung cấp các công cụ cho xác thực người dùng, mã hóa mật khẩu, kiểm tra phânquyền và xử lý tấn công CSRF (Cross-Site Request Forgery), giúp đảm bảo tính bảomật của ứng dụng.

1.3.4 Công cụ quản lý source code

Git [CITATION htt2 \l 1033 ]: Git là một hệ thống quản lý phiên bản phân tán(distributed version control system) được phát triển bởi Linus Torvalds vào năm 2005.Nó được sử dụng rộng rãi trong việc quản lý mã nguồn và theo dõi các thay đổi củacác dự án phần mềm Git cho phép nhiều người cùng làm việc trên cùng một dự án,phân chia công việc và hợp nhất các thay đổi một cách dễ dàng.

Github [CITATION htt3 \l 1033 ]: GitHub là một dịch vụ lưu trữ mã nguồn dựatrên Git, được thành lập vào năm 2008 Nó cung cấp một nền tảng trực tuyến cho cácnhà phát triển lưu trữ, quản lý và chia sẻ mã nguồn của họ.

Tổng quát, Git là hệ thống quản lý phiên bản phân tán mạnh mẽ, trong khi GitHublà một dịch vụ lưu trữ và chia sẻ mã nguồn dựa trên Git Cả hai cùng đóng vai trò quantrọng trong việc quản lý mã nguồn, hợp tác và phát triển phần mềm một cách hiệu quả.

xvii

Trang 26

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Đặc tả yêu cầu phần mềm

2.1.1 Mô tả chung

- Hệ thống gồm các chức năng chính:o Quản lý tài khoản người dùngo Quản lý tài liệu

o Quản lý các giao dịch phát sinh trên hệ thốngo Tải tài liệu

o Đăng tài liệuo Nạp tiền vào tài khoản2.1.2 Về giao diệnVề phía khách vãng lai- Giao diện trang chủ.- Giao diện đăng nhập, đăng ký.- Giao diện quên mật khẩu- Giao diện đọc tài liệu

- Giao diện danh sách tài liệu theo chủ đềVề phía người dùng

- Giao diện trang chủ.- Giao diện đăng nhập, đăng ký.- Giao diện quên mật khẩu- Giao diện đọc tài liệu

- Giao diện danh sách tài liệu theo chủ đề- Giao diện đăng tài liệu

xviii

Trang 27

- Giao diện cập nhật thông tin tài khoản- Giao diện quản lý tài liệu đã đăng- Giao diện thống kê các tài liệu đã tải xuống- Giao diện cho chức năng nạp tiền vào tài khoảnVề phía admin

- Giao diện trang dashboard- Giao diện trang quản lý người dùng- Giao diện thêm người dùng- Giao diện cập nhật người dùng- Giao diện trang quản lý danh mục- Giao diện thêm danh mục- Giao diện cập nhật danh mục- Giao diện trang quản lý tài liệu- Giao diện thêm tài liệu- Giao diện cập nhật tài liệu

- Giao diện thống kê lượt tải xuống tài liệu- Giao diện trang quản lý tags

- Giao diện thêm tags- Giao diện cập nhật tags

- Giao diện thống kê lượt bình luận trong tài liệu- Giao diện quản lý báo cáo về tài liệu

xix

Trang 28

2.2 Biểu đồ phân cấp chức năng

2.3 Use Case của các tác nhân trong hệ thống- UC của tác nhân Admin

o Đăng nhập vào tài khoản admin

o Quản lý tài khoản người dùng: Tìm kiếm, thêm mới, cập nhật và xóa tài khoảnngười dùng khỏi hệ thống

xxH thốống chia s ệẻ

tài li u tr c ệựtuyếốn

Qu n lý ngảười dùng

Qu n lý danh ảm cụ

Qu n lý tài li uảệ

Thốống kế lượt t iả

Qu n lý tagsả

Thốống kế comment

Thốống kế báo cáo

Thốống kế giao d chị

Người dùng

C p nh t thống ậậ琀椀n cá nhân

Đ c tài li uọệ

Báo cáo tài li uệ

N p 琀椀ếền vào h ạệthốống

T i tài li uảệ

Đăng tài li uệ

Qu n lý tài li u ảệcá nhân

Trang 29

o Quản lý các danh mục của tài liệu: Tìm kiếm, thêm mới, cập nhật và xóa các danhmục của tài liệu

o Quản lý tài liệu:

Lọc tài liệu theo danh mục, số lượt tải, giá tài liệu, dạng tài liệu (word, pdf,powerpoint), số lượt download

Tìm kiếm tài liệu

Thêm mới, cập nhật, xóa tài liệuKiểm duyệt tài liệu

o Quản lý lượt tải xuống tài liệu: Theo dõi lượt tải xuống tài liệu, lọc tài liệu theo sốlượt tải

o Quản lý comment: Theo dõi và lọc các comment trong các tài liệu

o Quản lý report: Kiểm duyệt các thông tin report của tài liệu, lọc các report theo tàiliệu, lọc các report theo người dùng

o Quản lý giao dịch: Theo dõi thông tin về các giao dịch phát sinh trên hệ thống, lọccác giao dịch theo các hình thức giao dịch, tìm kiếm giao dịch theo mã giao dịch- UC của tác nhân khách hàng

o Đăng ký: Người dùng chưa có tài khoản trên hệ thống có thể đăng ký tài khoảnbằng email

o Đăng nhập:

Đăng nhập bằng tài khoản của hệ thốngĐăng nhập bằng tài khoản facebookĐăng nhập bằng tài khoản google

o Tìm kiếm: Người dùng có thể tìm kiếm tài liệu theo các từ khóa hoặc có thể tìmkiếm tài liệu theo danh mục của tài liệu

o Nạp tiền vào tài khoản: Người dùng có thể nạp tiền vào tài khoản bằng 2 hình thứcnạp tiền thông qua VNPay và Paypal

xxi

Trang 30

o Lưu tài liệu: Người dùng có thể lưu lại tài liệu vào hệ thống để có thể xem lại dễdàng

o Comment: Người dùng có thể comment để nhận xét về tài liệuo Like, dislike: Người dùng có thể Like hoặc Dislike về tài liệu

o Report tài liệu: Người dùng có thể report tài liệu với các lựa chọn có sẵn hoặc có thểnhập tin nhắn để report tài liệu đó

o Tải tài liệu: Nếu tài liệu miễn phí thì người dùng có thể tải bất cứ lúc nào, nếu tàiliệu có phí thì số dư trong tài khoản của hệ thống người dùng phải lớn hơn hoặc bằnggiá tiền của tài liệu thì sẽ tải được tài liệu

o Đăng tài liệu: Người dùng có thể đăng tài liệu lên để bán hoặc để chia sẻ miễn phío Quản lý tài liệu: Người dùng có thể quản lý các tài liệu đã tải xuống, đã lưu và đãđăng lên hệ thống

o Quản lý thông tin cá nhân: Người dùng có thể quản lý và cập nhật thông tin cá nhânvà thay đổi mật khẩu, lấy lại mật khẩu.

xxii

Trang 31

2.4 Thiết kế chi tiết hệ thống2.4.1 Biểu đồ use case

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

xxiii

Trang 32

Hình 2.3 Biểu đồ use case phân rã chức năng của Admin

Hình 2.4 Biểu đồ use case phân rã chức năng của khách vãng laixxiv

Trang 33

Hình 2.5 Biểu đồ use case phân rã chức năng của người dùng2.4.2 Bản mô tả yêu cầu chức năng

2.1.3.2.1 Chức năng kiểm duyệt tài liệuActor(s): AdminSummary Description: Kiểm duyệt tài liệuPriority: Should have (Ưu tiên 2)Status:

Pre-Condition: Admin đăng nhập vào hệ thống và truy cập trang quản lý tài liệu.Post-Condition(s): Hệ thống hiển thị các thay đổi thành công và hiển thị kết quả trên mànhình.

Basic Path:

1 Admin chọn tính năng quản lý tài liệu.

2 Hệ thống hiển thị ra màn hình trang quản lý tài liệu 3 Admin chọn “kiểm duyệt tài liệu”.

4 Hệ thống hiển thị danh sách những tài liệu bị report.

5 Admin chọn tài liệu cần kiểm duyệt sau đó kiểm tra và thay đổi trạngthái của tài liệu thành “Ẩn” và ấn “Lưu”.

6 Hệ thống gửi thông báo xác nhận ẩn tài liệu7 Admin xác nhận thông báo

8 Hệ thống thông báo cập nhật tài liệu thành công và không hiện tài liệutrên website

Alternative Paths: 7a Admin không xác nhận thông báo8a Hệ thống chuyển hướng về trang quản lý tài liệu.

Business Rules: Những tài liệu bị report trong danh sách chờ duyệt thì không bị ẩn đi.Non-Functional

Thời gian truy vấn không quá 2sThời gian cập nhật thông tin không quá 5sBảng 2.1 Kịch bản use case kiểm duyệt liệu

xxv

Trang 34

Hình 2.6 Sơ đồ activity chức năng “quản lý tài liệu” của admin

Hình 2.7 Sơ đồ tuần tự chức năng “quản lý tài liệu” của admin

xxvi

Trang 35

2.1.3.2.2 Chức năng lọc/tìm kiếm tài liệuActor(s): AdminSummary

Description: Lọc/tìm kiếm tài liệuPriority: Should have (Ưu tiên 2)Status:

Pre-Condition: Admin đăng nhập vào hệ thống và truy cập trang quản lýtài liệu.

Post-Condition(s): Hệ thống hiển thị kết quả tìm kiếm trên màn hình.

Basic Path:

1 Admin chọn tính năng quản lý tài liệu.

1 Hệ thống hiển thị ra màn hình trang quản lý tài liệu 2 Admin chọn lọc tài liệu theo: danh mục, giá bán, kiểu tàiliệu, ngôn ngữ và số lượt tải của tài liệu.

3 Hệ thống hiển thị danh sách những tài liệu thỏa mãn cácyêu cầu lọc của admin

Alternative Paths:

3a Admin tìm kiếm tài liệu bằng cách nhập tiêu đề của tàiliệu trên thanh công cụ tìm kiếm và ấn “enter” hoặc buttontìm kiếm.

4a Hệ thống hiển thị kết quả tìm kiếm của admin.Business Rules: Kết quả tìm kiếm sẽ hiển thị thêm thông tin về lịch sử

tìm kiếm tài liệu.Non-Functional

Thời gian truy vấn không quá 2sThời gian cập nhật thông tin không quá 5sBảng 2.2 Kịch bản use case tìm kiếm tài liệu

xxvii

Trang 36

Hình 2.8 Sơ đồ activity chức năng “lọc/tìm kiếm tài liệu” của admin2.1.3.2.3 Chức năng thêm tài khoản người dùng

Actor(s): AdminSummary

Description: Thêm tài khoản người dùngPriority: Should have (Ưu tiên 2)Status:

xxviii

Trang 37

Basic Path:

1 Admin chọn chức năng quản lý tài khoản.

2 Hệ thống hiển thị ra màn hình trang quản lý tài liệu 3 Admin chọn “thêm người dùng”

4 Hệ thống hiển thị trang thêm mới để admin nhập thông tintài khoản của người dùng

5 Admin nhập thông tin tài khoản và chọn nút “Lưu”6 Hệ thống kiểm tra thông tin của người dùng và thông báothêm thành công, tài khoản của người dùng được thêm vàoCSDL.

Alternative Paths:

5a Admin không ấn nút “Lưu” và thoát ra khỏi trang thêm tàikhoản.

5b Thông tin người dùng không hợp lệ

6a Hệ thống chuyển hướng về trang quản lý tài khoản ngườidùng.

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

7b Quay lại bước 5

Business Rules: Email người dùng không được trùng nhauNon-Functional

Thời gian truy vấn không quá 2sThời gian cập nhật thông tin không quá 5sBảng 2.3 Kịch bản use case thêm tài khoản người dùng

2.1.3.2.4 Chức năng cập nhật thông tin tài khoản người dùngActor(s): Admin

Description: Cập nhật thông tin khoản người dùngxxix

Trang 38

Priority: Should have (Ưu tiên 2)Status:

Pre-Condition: Admin đăng nhập vào hệ thống và truy cập trang quản lý tàikhoản người dùng.

Post-Condition(s): Hệ thống hiển thị thông tin tài khoản người dùng sau khi thayđổi trên màn hình và thay đổi thông tin trong cơ sở dữ liệu.

Basic Path:

1 Admin chọn chức năng quản lý tài liệu.

2 Hệ thống hiển thị ra màn hình trang quản lý tài liệu 3 Admin chọn tài khoản người dùng muốn cập nhật và chọnchức năng “cập nhật tài khoản người dùng”

4 Hệ thống hiển thị trang thông tin tài khoản của người dùng.5 Admin thay đổi các thông tin tài khoản và chọn nút “Lưu”6 Hệ thống kiểm tra thông tin của người dùng và thông báocập nhật thành công, tài khoản của người dùng được thay đổitrong CSDL.

Alternative Paths:

5a Admin không ấn nút “Lưu” và thoát ra khỏi trang thêm tàikhoản.

5b Thông tin người dùng không hợp lệ

6a Hệ thống chuyển hướng về trang quản lý tài khoản ngườidùng.

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

7b Quay lại bước 5

Business Rules: Email người dùng không được trùng nhauNon-Functional

Thời gian truy vấn không quá 2sThời gian cập nhật thông tin không quá 5sBảng 2.4 Kịch bản use case cập nhật thông tin người dùng

xxx

Trang 39

Hình 2.9 Sơ đồ activity chức năng “quản lý tài khoản người dùng” của admin2.1.3.2.5 Chức năng xóa tài khoản người dùng

Actor(s): AdminSummary

Description: Xóa tài khoản người dùngPriority: Should have (Ưu tiên 2)Status:

Pre-Condition: Admin đăng nhập vào hệ thống và truy cập trang quản lýtài khoản người dùng.

Post-Condition(s): Hệ thống hiển thị danh sách tài khoản người dùng sau khithay đổi trên màn hình.

Basic Path: 1 Admin chọn chức năng quản lý tài khoản người dùng.xxxi

Trang 40

2 Hệ thống hiển thị ra màn hình trang quản lý tài khoảnngười dùng

3 Admin chọn tài khoản người dùng muốn xóa và chọn nút“xóa”

4 Hệ thống hiển thị thông báo và yêu cầu xác nhận xóa tàikhoản người dùng

5 Admin xác nhận xóa tài khoản người dùng

6 Hệ thống kiểm tra thông tin của người dùng và thôngbáo xóa tài khoản thành công, tài khoản của người dùng bịxóa khỏi CSDL.

Thời gian truy vấn không quá 2sThời gian cập nhật thông tin không quá 5sBảng 2.5 Kịch bản use case xóa tài khoản người dùng

xxxii

Ngày đăng: 15/05/2024, 18:45