Hệ thống hiển thị thông tin chi tiết của các phầnsauTổng số giao dịch theo ngày tuần tháng.Tổng số lượt tải tài liệu theo ngày tuầntháng.Tổng số tài liệu được tải lên.Tổng số tài liệu đa
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNT
TRƯỜ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
Trang 2ĐỒ ÁN TỐT NGHIỆP
HÀ NỘI, NĂM 2023
Trang 3BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNT
RƯỜ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 : Công nghệ thông tin
Trang 4Mã số:
NGƯỜI HƯỚNG DẪN TS Nguyễn Thọ Thông
HÀ NỘI, NĂM 2023
Trang 5GÁY BÌA ĐỒ ÁN TỐT NGHIỆP, KHÓA LUẬN TỐT NGHIỆP
HOÀNGNHẬTMINHĐỒÁNTỐTNGHIỆPHÀNỘI,NĂM2023
Trang 6LỜI CAM ĐOANTá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 7Trong 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 8MỤC LỤC
DANH MỤC CÁC HÌNH ẢNH vi
DANH MỤC BẢNG BIỂU x
DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ xiii
CHƯƠNG 1 TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT 1
1.1 Giới thiệu 1
1.1.1 Lý do chọn đề tài 1
1.1.2 Mục tiêu nghiên cứu 1
1.1.3 Phạm vi nghiên cứu 2
1.1.4 Ý nghĩa thực tiễn 3
1.2 Cơ sở lý thuyết 4
1.3 Công nghệ sử dụng 6
1.3.1 Ngôn ngữ lập trình 6
1.3.2 Hệ quản trị cơ sở dữ liệu MySQL [1] 8
1.3.3 Framework Laravel [2] 10
1.3.4 Công cụ quản lý source code 11
CHƯƠNG 2 THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG 13
2.1 Biểu đồ phân cấp chức năng 13
2.2 Phân tích yêu cầu và thiết kế hệ thống 14
iii
Trang 92.2.1 Đặc tả yêu cầu phần mềm 14
2.2.2 Use Case của các tác nhân trong hệ thống 23
2.2.3 Thiết kế chi tiết hệ thống 25
2.2.4 Thiết kế cơ sở dữ liệu 75
CHƯƠNG 3 THỰC NGHIỆM, SO SÁNH VÀ ĐÁNH GIÁ KẾT QUẢ 89
3.1 Môi trường thực nghiệm 89
3.2 Kết quả đạt được 90
3.2.1 Báo cáo kết quả đạt được về giao diện và chức năng 90
3.2.2 Báo cáo kết quả đạt được về hiệu suất 121
3.3 So sánh kết quả với các hệ thống tương đương 124
3.3.1 Giới thiệu các hệ thống tương đương 124
3.3.2 Tiêu chí so sánh các hệ thống 126
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 .127
3.4 Đánh giá kết quả 128
3.4.1 Phân tích và đánh giá kết quả thực nghiệm 128
3.4.2 Đánh giá tổng thể kết quả đề tài 130
3.5 Hạn chế 131
3.5.1 Phân tích và đánh giá các hạn chế của đề tài 131
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 .132
iv
Trang 103.6 Đóng góp của đề tàis 133
3.6.1 Đóng góp của đề tài đối với ngành khoa học và công nghệ 133
3.6.2 Đóng góp của đề tài về phát triển giáo dục và nâng tầm tri thức của mọi người 134
3.6.3 Đề xuất hướng phát triển đề tài trong tương lai 135
CHƯƠNG 4 KẾT LUẬN 136
TÀI LIỆU THAM KHẢO 138
PHỤ LỤC 139
v
Trang 11DANH MỤC CÁC HÌNH ẢNH
Hình 2.1 Biểu đồ Use case tổng quát 25
Hình 2.2 Biểu đồ use case phân rã chức năng của Admin 26
Hình 2.3 Biểu đồ use case phân rã chức năng của người dùng 27
Hình 2.4 Biểu đồ use case phân rã chức năng của khách vãng lai 28
Hình 2.5 Sơ đồ activity chức năng “quản lý tài liệu” của admin 31
Hình 2.6 Sơ đồ tuần tự chức năng “quản lý tài liệu” của admin 31
Hình 2.7 Sơ đồ activity chức năng “lọc/tìm kiếm tài liệu” của admin 33
Hình 2.8 Sơ đồ activity chức năng “quản lý tài khoản người dùng” của admin 37
Hình 2.9 Sơ đồ activity chức năng “xoá tài khoản người dùng” của admin 39
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 40
Hình 2.11 Sơ đồ activity chức năng “đăng nhập” của người dùng 45
Hình 2.12 Sơ đồ tuần tự chức năng “đăng nhập” của người dùng 46
Hình 2.13 Sơ đồ activity chức năng “quên mật khẩu” của người dùng 49
Hình 2.14 Sơ đồ tuần tự chức năng “quên mật khẩu” của người dùng 50
Hình 2.15 Sơ đồ activity chức năng “đăng ký tài khoản” của người dùng 52
Hình 2.16 Sơ đồ tuần tự chức năng “đăng ký tài khoản” của người dùng 53
Hình 2.17 Sơ đồ activity chức năng “tải tài liệu” của người dùng 55
Hình 2.18 Sơ đồ tuần tự chức năng “tải tài liệu” của người dùng 56
vi
Trang 12Hình 2.19 Sơ đồ activity chức năng “đánh giá tài liệu” của người dùng 58
Hình 2.20 Sơ đồ tuần tự chức năng “đánh giá tài liệu” của người dùng 59
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 62
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 63
Hình 2.23 Sơ đồ activity chức năng “đăng tài liệu” của người dùng 66
Hình 2.24 Sơ đồ tuần tự chức năng “đăng tài liệu” của người dùng 67
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 .70 Hì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 71
Hình 2.27 Sơ đồ activity chức năng “quản lý tài liệu đã đăng” của người dùng 73
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 74
Hình 2.29 Sơ đồ quan hệ CSDL 89
Hình 3.1 Giao diện đăng nhập admin 90
Hình 3.2 Trang quản lý người dùng 91
Hình 3.3 Trang tạo mới người dùng 91
Hình 3.4 Trang cập nhật thông tin người dùng 92
Hình 3.5 Trang quản lý danh mục 93
Hình 3.6 Trang thêm danh mục 93
Hình 3.7 Trang cập nhật danh mục 94
Hình 3.8 Trang quản lý tài liệu 95
Hình 3.9 Trang thêm mới tài liệu 95
vii
Trang 13Hình 3.10 Trang cập nhật thông tin tài liệu 96
Hình 3.11 Trang thống kê lượt tải xuống 96
Hình 3.12 Trang quản lý tags 97
Hình 3.13 Trang thêm mới tags 98
Hình 3.14 Trang cập nhật thông tin của tags 98
Hình 3.15 Trang thống kê comment 99
Hình 3.16 Trang thống kê báo cáo tài liệu 100
Hình 3.17 Trang thống kê giao dịch 100
Hình 3.18 Trang chủ 103
Hình 3.19 Trang đăng nhập 103
Hình 3.20 Trang đăng ký 104
Hình 3.21 Trang lấy lại mật khẩu 104
Hình 3.22 Trang setting 105
Hình 3.23 Cập nhật thông tin thành công 105
Hình 3.24 Trang danh sách tài liệu theo danh mục 108
Hình 3.25 Trang đọc tài liệu 108
Hình 3.26 Trang đọc tài liệu 109
Hình 3.27 Giao diện báo cáo tài liệu 110
Hình 3.28 Báo cáo tài liệu thành công 110
Hình 3.29 Chức năng comment 111
viii
Trang 14Hình 3.30 Giao diện chọn hình thức nạp tiền 111
Hình 3.31 Giao diện nhập số tiền muốn nạp bằng VNPay 112
Hình 3.32 Giao diện thanh toán bằng VNPay 112
Hình 3.33 Giao diện chọn số tiền muốn nạp bằng Paypal 113
Hình 3.34 Giao diện thanh toán bằng Paypal 114
Hình 3.35 Nạp tiền thành công 114
Hình 3.36 Giao diện danh sách các tài liệu đã tải xuống 115
Hình 3.37 Giao diện đăng tài liệu 116
Hình 3.38 Đăng tài liệu thành công 117
Hình 3.39 Trang quản lý tài liệu đã đăng 117
Hình 3.40 Trang cập nhật thông tin tài liệu 118
Hình 3.41 Chức năng xóa tài liệu 118
Hình 3.42 Cập nhật tài liệu thành công 119
Hình 3.43 Trang tổng hợp comment của người dùng 119
Hình 3.44 Trang tìm kiếm tài liệu 120
Hình 3.45 Thời gian để tải trang chủ 121
Hình 3.46 Thời gian tải trang đọc tài liệu 122
Hình 3.47 Thời gian tải trang đăng tài liệu 122
Hình 3.48 Thời gian tải trang cập nhật thông tin cá nhân 123
Hình 3.49 Thời gian tải trang quản lý tài liệu đã tải 123
ix
Trang 15Hình 3.50 Thời gian tải trang danh sách tài liệu theo danh mục 124
DANH MỤC BẢNG BIỂU Bảng 2.1 Kịch bản use case kiểm duyệt liệu 30
Bảng 2.2 Kịch bản use case tìm kiếm tài liệu 33
Bảng 2.3 Kịch bản use case thêm tài khoản người dùng 35
Bảng 2.4 Kịch bản use case cập nhật thông tin người dùng 36
Bảng 2.5 Kịch bản use case xóa tài khoản người dùng 39
Bảng 2.6 Kịch bản use case quản lý giao dịch 41
Bảng 2.7 Kịch bản use case thống kê thông tin 43
Bảng 2.8 Kịch bản use case đăng nhập 44
Bảng 2.9 Kịch bản use case cho chức năng lấy lại mật khẩu 48
Bảng 2.10 Kịch bản use case đăng ký tài khoản 51
Bảng 2.11 Kịch bản use case cho chức năng tải tài liệu 55
Bảng 2.12 Kịch bản use case cho chức năng đánh giá tài liệu 58
Bảng 2.13 Kịch bản use case xem danh sách tài liệu đã tải 60
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 62
Bảng 2.15 Kịch bản use case cho chức năng đăng tài liệu 65
Bảng 2.16 Kịch bản use case cập nhật thông tin cá nhân 69
x
Trang 16Bảng 2.17 Kịch bản use case quản lý tài liệu đã đăng 72
Bảng 2.18 Bảng users 77
Bảng 2.19 Bảng roles 78
Bảng 2.20 Bảng permissions 78
Bảng 2.21 Bảng role_has_permissions 79
Bảng 2.22 Bảng model_has_roles 79
Bảng 2.23 Bảng model_has_permissions 80
Bảng 2.24 Bảng categories 80
Bảng 2.25 Bảng documents 83
Bảng 2.26 Bảng comments 84
Bảng 2.27 Bảng tags 85
Bảng 2.28 Bảng document_tag 85
Bảng 2.29 Bảng download 86
Bảng 2.30 Bảng reports 87
Bảng 2.31 Bảng payment 88
Bảng 2.32 Bảng payment_document 88
Bảng 3.1 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 128
xi
Trang 59Summary Description: Thống kê thông tin website
Status:
Pre-Condition: Admin đăng nhập vào hệ thống và truy cập trangdashboard.
Post-Condition(s): Hệ thống hiển thị danh sách các thông tin của
website
Basic Path:
1 Admin chọn chức năng thống kê thông tin
2 Hệ thống hiển thị ra màn hình trang dashboard
3 Hệ thống hiển thị thông tin chi tiết của các phầnsau
Tổng số giao dịch theo ngày tuần tháng.Tổng số lượt tải tài liệu theo ngày tuầntháng
Tổng số tài liệu được tải lên
Tổng số tài liệu đang ở trạng thái “côngkhai”
Alternative Paths:
Business Rules: Admin không thể thay đổi các thông tin được thống
kê trên website
Non-Functional
Requirements: Thời gian truy vấn không quá 2sThời gian cập nhật thông tin không quá 5s
Bảng 2.7 Kịch bản use case thống kê thông tin2.1.3.2.8 Chức năng đăng nhập
42
Trang 60Pre-Condition: Người dùng cần có tài khoản trên hệ thống, sau đó chọn tính
năng đăng nhập trên website
Post-Condition(s): Hệ thống hiển thị trang chủ của website
4a Người dùng xác nhận đăng nhập
Business Rules: Người dùng nhập sai mật khẩu thì hệ thống thông
báo :”Sai mật khẩu”
43
Trang 61Người dùng nhập sai email thì hệ thống thôngbáo:”Sai tên đăng nhập”
Người dùng để trống email và mật khẩuthì hệ thống thông báo :”Tên đăng nhậphoặc mật khẩu không chính xác”
Non-Functional
Requirements:
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.8 Kịch bản use case đăng nhập
Hình 2.11 Sơ đồ activity chức năng “đăng nhập” của người dùng
44
Trang 62Hình 2.12 Sơ đồ tuần tự chức năng “đăng nhập” của người dùng
2.1.3.2.9 Chức năng lấy lại mật khẩu
45
Trang 63Actor(s): User
Summary
1 Người dùng chọn tính năng đăng nhập
2 Hệ thống hiển thị ra màn hình trang đăng nhập
3 Người dùng chọn:”quên mật khẩu”
4 Hệ thống hiển thị form điền email đã đăng ký trên
hệ thống để lấy lại mật khẩu
4 Người dùng điền email và chọn :”gửi yêu cầu”
5 Hệ thống kiểm tra thông tin email của người dùng
và gửi mã xác nhận nếu email hợp lệ
Trang 64Business Rules:
Email của người dùng không tồn tại thì
hệ thống gửi thống báo :”email khôngtồn tại” tới người dùng
Người dùng nhập mã xác nhận sai thì hệ thống gửithông báo :”mã xác nhận sai”
Người dùng nhập sai mã quá 5 lần thì hệ thống sẽchuyển hướng về trang đăng nhập
Non-Functional
Requirements:
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.9 Kịch bản use case cho chức năng lấy lại mật khẩu
47
Trang 65Hình 2.13 Sơ đồ activity chức năng “quên mật khẩu” của người dùng
48
Trang 66Hình 2.14 Sơ đồ tuần tự chức năng “quên mật khẩu” của người dùng
2.1.3.2.10 Chức năng đăng ký tài khoản
Trang 67đăng ký tài khoản.
Post-Condition(s): Hệ thống hiển thị đăng ký tài khoản thành công và chuyểnhướng sang trang chủ của website.
Basic Path:
1 Người dùng chọn đăng ký tài khoản
2 Hệ thống hiển thị ra màn hình trang đăng ký tàikhoản
3 Người dùng nhập các thông tin: họ tên, email, mậtkhẩu và nhập lại mật khẩu
4 Người dùng ấn nút “Đăng ký”
5 Hệ thống sẽ kiểm tra thông tin của người dùng, thôngbáo đăng nhập thành công và chuyển hướng về trang chủcủa website
Business Rules:
Người dùng đăng ký thành công thì thôngtin của người dùng được lưu vào CSDL vàđăng nhập trực tiếp sau khi đăng ký thànhcông
Trang 68Hình 2.15 Sơ đồ activity chức năng “đăng ký tài khoản” của người dùng
Hình 2.16 Sơ đồ tuần tự chức năng “đăng ký tài khoản” của người dùng
51
Trang 692.1.3.2.11 Chức năng tải tài liệu
Summary
Description: Tải tài liệu
Priority: Should have (Ưu tiên 2)
1 Người dùng chọn tài liệu cần tải và ấn nút “tải xuống”
2 Hệ thống hiển thị ra màn hình trang tải tài liệu với 2 lựachọn cho người dùng là :”đăng nhập” và “không đăngnhập”
3 Người dùng chọn đăng nhập để tải tài liệu
4 Hệ thống hiển thị ra form đăng nhập
5 Người dùng điền thông tin để đăng nhập vào hệ thống
6 Hệ thống kiểm tra số dư trong tài khoản của người dùng
để thanh toán tài liệu
7 Hệ thống thông báo tải tài liệu thành công và tài liệuđược tải về máy người dùng
Alternative
Paths:
2a Người dùng đã đăng nhập thì chuyển quabước 6
3a Người dùng chọn “không đăng nhập”
4a Hệ thống hiển thị thông báo xác nhận tải
52
Trang 70tài liệu khi không đăng nhập5a Người dùng xác nhận thông báo6a Hệ thống hiển thị phương thức thanhtoán
7a Người dùng điền thông tin và thanh toántài liệu
8a Hệ thống thông báo thanh toán thànhcông và tài liệu được tải về máy của ngườidùng
Đối với người dùng đã có tài khoản nếu có số dư trongtài khoản lớn hơn giá trị của tài liệu thì hệ thống sẽ trừtiền trong tài khoản và tài liệu được tải về máy củangười dùng
Đối với người dùng đã có tài khoản nếu có số dư trongtài khoản nhỏ hơn giá trị của tài liệu thì hệ thống sẽ gửithông báo yêu cầu người dùng nạp tiền vào tài khoản,nếu người dùng nạp nhiều hơn giá trị của tài liệu thì sốtiền thừa sẽ được cộng vào tài khoản của người dùng
Non-Functional
Requirements:
Thời gian khởi tạo đơn hàng khoảng 3 phút
Thời gian cập nhật thông tin không quá 15sBảng 2.11 Kịch bản use case cho chức năng tải tài liệu
53
Trang 71Hình 2.17 Sơ đồ activity chức năng “tải tài liệu” của người dùng
54
Trang 72Hình 2.18 Sơ đồ tuần tự chức năng “tải tài liệu” của người dùng
2.1.3.2.12 Chức năng đánh giá tài liệu
55
Trang 73Actor(s): User
Summary
Description: Đánh giá tài liệu
3b Người dùng chọn các lý do có sẵn ởtrên form và chọn “report”
4b Hệ thống gửi thông báo xác nhận tài liệu bịreport đến cho admin
5b Admin xác nhận tài liệu bị báo cáo 6b Hệ thống ẩn tài liệu đã bị người dùng báo cáo
Business Rules: Người dùng nhập tối đa 1000 ký tự trong ô
56
Trang 74Hình 2.19 Sơ đồ activity chức năng “đánh giá tài liệu” của người dùng
57
Trang 75Hình 2.20 Sơ đồ tuần tự chức năng “đánh giá tài liệu” của người dùng
2.1.3.2.13 Chức năng xem danh sách tài liệu đã tải
58
Trang 76Actor(s): User
Summary
Description: Xem danh sách tài liệu đã tải
Priority: Should have (Ưu tiên 2)
1 Người dùng chọn trang thông tin cá nhân
2 Hệ thống hiển thị ra màn hình trang thông tin cá nhânbao gồm thông tin người dùng và danh sách những tàiliệu đã tải về
59