1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên

213 0 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 diễn đàn chia sẻ tài liệu cho sinh viên
Tác giả Vũ Hoàng Anh
Người hướng dẫn ThS. Mai Anh Thơ
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ Thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 213
Dung lượng 14,76 MB

Cấu trúc

  • 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (6)
  • 2. MỤC ĐÍCH CỦA ĐỀ TÀI (6)
  • 3. PHƯƠNG PHÁP THỰC HIỆN (6)
  • CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU (27)
    • 1.1. Phân tích hiện trạng (6)
    • 1.2. Khảo sát một số phần mềm (6)
      • 1.2.1. Studocu (27)
      • 1.2.2. Thư viện số HCMUTE (30)
    • 1.3. Phân tích yêu cầu của dự án (6)
    • 1.4. Yêu cầu chức năng nghiệp vụ (6)
    • 1.5. Danh sách yêu cầu chức năng nghiệp vụ (6)
    • 1.6. Danh sách yêu cầu chức năng hệ thống (6)
    • 1.7. Danh sách yêu cầu phi chức năng (6)
  • CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU (41)
    • 2.1. Lược đồ chức năng (7)
      • 2.1.1. Lược đồ chức năng tổng quan (41)
      • 2.1.2. Phân rã chức năng (41)
    • 2.2. Đặc tả chức năng (7)
      • 2.2.1. Đăng ký (44)
      • 2.2.2. Đăng nhập (45)
      • 2.2.3. Đăng xuất (46)
      • 2.2.4. Lấy lại mật khẩu (47)
      • 2.2.5. Đổi mật khẩu (49)
      • 2.2.6. Xem thông tin cá nhân (50)
      • 2.2.7. Cập nhật thông tin cá nhân (51)
      • 2.2.8. Đổi ảnh đại diện (52)
      • 2.2.9. Đọc tài liệu (53)
      • 2.2.10. Tìm kiếm tài liệu (54)
      • 2.2.11. Lọc tài liệu (55)
      • 2.2.12. Thích tài liệu (56)
      • 2.2.13. Lưu tài liệu (0)
      • 2.2.14. Đánh giá tài liệu (0)
      • 2.2.15. Đăng tài liệu (0)
      • 2.2.16. Chỉnh sửa tài liệu (60)
      • 2.2.17. Xoá tài liệu (61)
      • 2.2.18. Thêm người dùng (62)
      • 2.2.19. Chỉnh sửa người dùng (64)
      • 2.2.20. Xoá người dùng (65)
      • 2.2.21. Xoá đánh giá (67)
      • 2.2.22. Phê duyệt tài liệu (68)
      • 2.2.23. Thêm trường (69)
      • 2.2.24. Chỉnh sửa trường (70)
      • 2.2.25. Xoá trường (71)
      • 2.2.26. Kích hoạt trường (72)
      • 2.2.27. Thêm danh mục (73)
      • 2.2.28. Chỉnh sửa danh mục (74)
      • 2.2.29. Xoá danh mục (75)
      • 2.2.30. Kích hoạt danh mục (77)
      • 2.2.31. Thêm lĩnh vực (78)
      • 2.2.32. Chỉnh sửa lĩnh vực (79)
      • 2.2.33. Xoá lĩnh vực (80)
      • 2.2.34. Kích hoạt lĩnh vực (81)
      • 2.2.35. Thống kê (82)
  • CHƯƠNG 3: THIẾT KẾ PHẦN MỀM (83)
    • 3.1. Lược đồ tuần tự (7)
      • 3.1.1. Đăng ký (83)
      • 3.1.2. Đăng nhập (84)
      • 3.1.3. Đăng xuất (84)
      • 3.1.4. Lấy lại mật khẩu (85)
      • 3.1.5. Đổi mật khẩu (86)
      • 3.1.6. Xem thông tin cá nhân (87)
      • 3.1.7. Cập nhật thông tin cá nhân (88)
      • 3.1.8. Đổi ảnh đại diện (89)
      • 3.1.9. Đọc tài liệu (89)
      • 3.1.10. Tìm kiếm tài liệu (90)
      • 3.1.11. Lọc tài liệu (90)
      • 3.1.12. Thích tài liệu (91)
      • 3.1.13. Lưu tài liệu (0)
      • 3.1.14. Đánh giá tài liệu (0)
      • 3.1.15. Đăng tài liệu (0)
      • 3.1.16. Chỉnh sửa tài liệu (94)
      • 3.1.17. Xoá tài liệu (95)
      • 3.1.18. Thêm người dùng (96)
      • 3.1.19. Chỉnh sửa người dùng (97)
      • 3.1.20. Xoá người dùng (98)
      • 3.1.21. Xoá đánh giá (99)
      • 3.1.22. Phê duyệt tài liệu (100)
      • 3.1.23. Thêm trường (101)
      • 3.1.24. Chỉnh sửa trường (102)
      • 3.1.25. Xoá trường (103)
      • 3.1.26. Kích hoạt trường (104)
      • 3.1.27. Thêm danh mục (105)
      • 3.1.28. Chỉnh sửa danh mục (106)
      • 3.1.29. Xoá danh mục (107)
      • 3.1.30. Kích hoạt danh mục (108)
      • 3.1.31. Thêm lĩnh vực (109)
      • 3.1.32. Chỉnh sửa lĩnh vực (110)
      • 3.1.33. Xoá lĩnh vực (111)
      • 3.1.34. Kích hoạt lĩnh vực (112)
      • 3.1.35. Thống kê (112)
    • 3.2. Lược đồ lớp (7)
  • CHƯƠNG 4: KIẾN TRÚC HỆ THỐNG (114)
    • 4.1. Kiến trúc tổng quan (7)
      • 4.1.1. Các thành phần (114)
      • 4.1.2. Tương tác và giao tiếp giữa các thành phần (0)
    • 4.2. Các công nghệ và thư viện được sử dụng (0)
      • 4.2.1. Spring Boot (115)
      • 4.2.2. Spring Security (119)
      • 4.2.3. Spring Data JPA (123)
      • 4.2.4. ReactJS (126)
      • 4.2.5. Axios (132)
      • 4.2.6. Google Drive API (133)
      • 4.2.7. MySQL (138)
  • CHƯƠNG 5: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ (141)
    • 5.1. Sinh viên và người dùng khách (7)
      • 5.1.1. Trang chủ (141)
      • 5.1.2. Đăng nhập (141)
      • 5.1.3. Đăng ký (142)
      • 5.1.4. Quên mật khẩu (144)
      • 5.1.5. Thanh trên (145)
      • 5.1.6. Thanh bên (146)
      • 5.1.7. Thông tin cá nhân (147)
      • 5.1.8. Chi tiết tài liệu (148)
      • 5.1.9. Danh sách tài liệu chính (150)
      • 5.1.10. Danh sách tài liệu đã thích (152)
      • 5.1.11. Danh sách tài liệu đã lưu (153)
      • 5.1.12. Danh sách tài liệu đã tải lên đã được duyệt (154)
      • 5.1.13. Danh sách tài liệu đã tải lên đang đợi duyệt (155)
      • 5.1.14. Danh sách tài liệu đã tải lên bị từ chối (155)
      • 5.1.15. Đăng tài liệu (0)
      • 5.1.16. Chỉnh sửa tài liệu (158)
      • 5.1.17. Danh sách tài liệu của một người (159)
    • 5.2. Quản lý và admin (7)
      • 5.2.1. Đăng nhập (161)
      • 5.2.2. Quên mật khẩu (162)
      • 5.2.3. Thông tin cá nhân (163)
      • 5.2.4. Trang chủ (166)
      • 5.2.5. Danh sách tài liệu (168)
      • 5.2.6. Chi tiết tài liệu (170)
      • 5.2.7. Thêm tài liệu (171)
      • 5.2.8. Chỉnh sửa tài liệu (172)
      • 5.2.9. Xoá tài liệu (174)
      • 5.2.10. Danh sách danh mục (175)
      • 5.2.11. Thêm danh mục (176)
      • 5.2.12. Chỉnh sửa danh mục (178)
      • 5.2.13. Xoá danh mục (179)
      • 5.2.14. Danh sách lĩnh vực (180)
      • 5.2.15. Thêm lĩnh vực (182)
      • 5.2.16. Chỉnh sửa lĩnh vực (183)
      • 5.2.17. Xoá lĩnh vực (184)
      • 5.2.18. Danh sách trường (185)
      • 5.2.19. Thêm trường (187)
      • 5.2.20. Chỉnh sửa trường (188)
      • 5.2.21. Xoá trường (189)
      • 5.2.22. Danh sách người dùng (190)
      • 5.2.23. Chi tiết người dùng (192)
      • 5.2.24. Thêm người dùng (194)
      • 5.2.25. Chỉnh sửa người dùng (196)
      • 5.2.26. Xoá người dùng (198)
      • 5.2.27. Danh sách tài liệu đang chờ (199)
      • 5.2.28. Phê duyệt tài liệu (200)
      • 5.2.29. Từ chối tài liệu (201)
      • 5.2.30. Danh sách đánh giá (202)
      • 5.2.31. Xoá đánh giá (203)
  • CHƯƠNG 6. CÀI ĐẶT, DEPLOY VÀ KIỂM THỬ (204)
    • 6.1. Cài đặt (7)
      • 6.1.1. Yêu cầu (204)
      • 6.1.2. Cài đặt với docker compose (0)
      • 6.1.3. Cài đặt cục bộ (0)
    • 6.2. Deploy (0)
    • 6.3. Kiểm thử (0)
      • 6.3.1. Kế hoạch kiểm thử (0)
      • 6.3.2. Kết quả kiểm thử (0)
    • 1. KẾT QUẢ ĐẠT ĐƯỢC (0)
      • 1.1. Về kiến thức (210)
      • 1.2. Về kỹ năng (210)
      • 1.3. Về thái độ (210)
      • 1.4. Về sản phẩm (210)
    • 2. ƯU NHƯỢC ĐIỂM (210)
      • 2.1. Ưu điểm (210)
      • 2.2. Nhược điểm (211)
    • 3. HƯỚNG PHÁT TRIỂN (211)

Nội dung

- Phạm vi nghiên cứu Trong phạm vi của đề tài, nhóm chúng em tập trung nghiên cứu các chức năng cơ bản của một hệ thống quản lý tài liệu như truy cập tài liệu, tải lên, chỉnh sửa, xoá bỏ

PHƯƠNG PHÁP THỰC HIỆN

1 Chương 1: Khảo sát hiện trạng và xác định yêu cầu

1.2 Khảo sát một số phần mềm

1.3 Phân tích yêu cầu của dự án

1.4 Yêu cầu chức năng nghiệp vụ

1.5 Danh sách yêu cầu chức năng nghiệp vụ

1.6 Danh sách yêu cầu chức năng hệ thống

1.7 Danh sách yêu cầu phi chức năng

2 Chương 2: Mô hình hoá yêu cầu

3 Chương 3: Thiết kế phần mềm

4 Chương 4: Kiến trúc hệ thống

4.2 Các công nghệ được sử dụng

5 Chương 5: Thiết kế giao diện và xử lý

5.1 Sinh viên và người dùng khách

6 Chương 6: Cài đặt và kiểm thử

STT Thời gian Công việc Ghi chú

1 28/2/2024-6/3/2024 Tham khảo, xác định đề tài

2 6/3/2024-13/4/2024 Khảo sát, phân tích và xác định các yêu cầu của đề tài

3 13/3/2024-20/3/2024 Xây dựng lược đồ chức năng, đặc tả chức năng

4 20/3/2024- 27/3/2024 Xây dựng lược đồ tuần tự

5 27/3/2024- 3/4/2024 Thiết kế giao diện phần sinh viên và người dùng khách

6 3/4/2024 – 10/4/2024 Thiết kế và xây dựng cơ sở dữ liệu

8 17/4/2024-24/4/2024 Kết nối giao diện và back-end cho sinh viên và người dùng khách

9 24/4/2024-1/5/2024 Thiết kế giao diện phần quản lý và admin

10 1/5/2024 – 8/5/2024 Kết nối giao diện và back-end cho quản lý và admin

11 8/5/2024 -15/5/2024 Hoàn thiện các chức năng và bổ sung các chức năng bị thiếu

12 15/5/2024 – 22/5/2024 Kiểm thử lại trang web, sửa chữa lỗi

15 5/6/2024 – 28/6/2024 Chỉnh sửa báo cáo và làm

Vu Hoang Anh Ý kiến của giáo viên hướng dẫn

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC ĐÍCH CỦA ĐỀ TÀI 1

CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 3

1.2 Khảo sát một số phần mềm 3

1.3 Phân tích yêu cầu của dự án 8

1.4 Yêu cầu chức năng nghiệp vụ 10

1.5 Danh sách yêu cầu chức năng nghiệp vụ 11

1.6 Danh sách yêu cầu chức năng hệ thống 14

1.7 Danh sách yêu cầu phi chức năng 15

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU 17

2.1.1 Lược đồ chức năng tổng quan 17

2.2.6 Xem thông tin cá nhân 26

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

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 59

3.1.6 Xem thông tin cá nhân 63

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

CHƯƠNG 4: KIẾN TRÚC HỆ THỐNG 90

4.1.2 Tương tác và giao tiếp giữa các thành phần 91

4.2 Các công nghệ và thư viện được sử dụng 91

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 117

5.1 Sinh viên và người dùng khách 117

5.1.9 Danh sách tài liệu chính 126

5.1.10 Danh sách tài liệu đã thích 128

5.1.11 Danh sách tài liệu đã lưu 129

5.1.12 Danh sách tài liệu đã tải lên đã được duyệt 130

5.1.13 Danh sách tài liệu đã tải lên đang đợi duyệt 131

5.1.14 Danh sách tài liệu đã tải lên bị từ chối 131

5.1.17 Danh sách tài liệu của một người 135

5.2.27 Danh sách tài liệu đang chờ 175

CHƯƠNG 6 CÀI ĐẶT, DEPLOY VÀ KIỂM THỬ 180

6.1.2 Cài đặt với docker compose 180

DANH MỤC TÀI LIỆU THAM KHẢO 188

Hình 1.1: Trang chủ Studocu 4

Hình 1.2: Danh sách tài liệu theo trường học 4

Hình 1.3: Xem chi tiết tài liệu 5

Hình 1.4: Tải tài liệu lên 5

Hình 1.5: Trang chủ thư viện số HCMUTE 6

Hình 1.6: Chi tiết tài liệu 7

Hình 1.7: Tải tài liệu 7

Hình 2.1: Lược đồ chức năng 17

Hình 2.2: Chức năng quản lý thông tin cá nhân 17

Hình 2.3: Chức năng quản lý tài liệu 18

Hình 2.4: Chức năng quản lý người dùng 18

Hình 2.5: Chức năng quản lý danh mục 19

Hình 2.6: Chức năng quản lý lĩnh vực 19

Hình 2.7: Chức năng quản lý trường 20

Hình 3.1: Lược đồ tuần tự chức năng đăng ký 59

Hình 3.2: Lược đồ tuần tự chức năng đăng nhập 60

Hình 3.3: Lược đồ tuần tự chức năng đăng xuất 60

Hình 3.4: Lược đồ tuần tự chức năng lấy lại mật khẩu 61

Hình 3.5: Lược đồ tuần tự chức năng đổi mật khẩu 62

Hình 3.6: Lược đồ tuần tự chức năng xem thông tin cá nhân 63

Hình 3.7: Lược đồ tuần tự chức năng cập nhật thông tin cá nhân 64

Hình 3.8: Lược đồ tuần tự chức năng đổi ảnh đại diện 65

Hình 3.9: Lược đồ tuần tự chức năng đọc tài liệu 65

Hình 3.10: Lược đồ tuần tự chức năng tìm kiếm tài liệu 66

Hình 3.11: Lược đồ tuần tự chức năng lọc tài liệu 66

Hình 3.12: Lược đồ tuần tự chức năng thích tài liệu 67

Hình 3.13: Lược đồ tuần tự chức năng lưu tài liệu 67

Hình 3.14: Lược đồ tuần tự chức năng đánh giá tài liệu 68

Hình 3.15: Lược đồ tuần tự chức năng đăng tài liệu 69

Hình 3.16: Lược đồ tuần tự chức năng chỉnh sửa tài liệu 70

Hình 3.17: Lược đồ tuần tự chức năng xoá tài liệu 71

Hình 3.18: Lược đồ tuần tự chức năng thêm người dùng 72

Hình 3.19: Lược đồ tuần tự chức năng chỉnh sửa người dùng 73

Hình 3.20: Lược đồ tuần tự chức năng xoá người dùng 74

Hình 3.21: Lược đồ tuần tự chức năng xoá đánh giá 75

Hình 3.22: Lược đồ tuần tự chức năng phê duyệt tài liệu 76

Hình 3.23: Lược đồ tuần tự chức năng thêm trường 77

Hình 3.24: Lược đồ tuần tự chức năng chỉnh sửa trường 78

Hình 3.25: Lược đồ tuần tự chức năng xoá trường 79

Hình 3.26: Lược đồ tuần tự chức năng kích hoạt trường 80

Hình 3.27: Lược đồ tuần tự chức năng thêm danh mục 81

Hình 3.28: Lược đồ tuần tự chức năng chỉnh sửa danh mục 82

Hình 3.29: Lược đồ tuần tự chức năng xoá danh mục 83

Hình 3.30: Lược đồ tuần tự chức năng kích hoạt danh mục 84

Hình 3.31: Lược đồ tuần tự chức năng thêm lĩnh vực 85

Hình 3.32: Lược đồ tuần tự chức năng chỉnh sửa lĩnh vực 86

Hình 3.33: Lược đồ tuần tự chức năng xoá lĩnh vực 87

Hình 3.34: Lược đồ tuần tự chức năng kích hoạt lĩnh vực 88

Hình 3.35: Lược đồ tuần tự chức năng thống kê 88

Hình 3.36: Lược đồ lớp của hệ thống 89

Hình 4.1: Kiến trúc tổng quan của hệ thống 90

Hình 4.2: Cấu trúc dự án Spring Boot đơn giản 92

Hình 4.3: Tạo dự án Spring Boot với Maven 93

Hình 4.4: Khai báo dependency trong pom.xml 94

Hình 4.5: Controller trong Spring Boot 94

Hình 4.6: Spring Boot và Tomcat 95

Hình 4.7: Thêm dependency Spring Security vào dự án 96

Hình 4.8: Cấu hình Filter Chain 97

Hình 4.9: Cấu hình xác thực 97

Hình 4.10: Thêm JWT Filter vào SecurityFilterChain 98

Hình 4.12: Tạo và trả JWT khi login 99

Hình 4.13: Repository interface trong Spring Data JPA 100

Hình 4.14: Truy vấn query tuỳ chỉnh 100

Hình 4.15: Thêm dependency của Spring Data JPA 101

Hình 4.16: Cấu hình kết nối MySQL trong application.yml 101

Hình 4.17: Tạo các entity classes 102

Hình 4.18: Kiến trúc ReactJS 103

Hình 4.19: Cấu trúc thư mục ReactJS 103

Hình 4.22: Minh hoạ tệp JSX 106

Hình 4.23: Ví dụ về useState 106

Hình 4.24: Ví dụ về useEffect 107

Hình 4.25: Chuyển hướng với useNavigate 107

Hình 4.26: Lấy đường dẫn hiện tại bằng useLocation 108

Hình 4.27: Truy xuất tham số từ URL với useParams 108

Hình 4.28: Minh hoạ props 108

Hình 4.29: Axios trong package.json 109

Hình 4.30: Sử dụng axios để gửi yêu cầu GET lấy tất cả danh mục 109

Hình 4.31: Tạo dự án Google Cloud 110

Hình 4.32: Giao diện APIs & Services 111

Hình 4.33: Kích hoạt Google Drive API 111

Hình 4.34: Giao diện Credentials để tạo service account 112

Hình 4.35: Tạo service account 112

Hình 4.37: Google Drive API dependency 113

Hình 4.38: Cấu hình Bean cho Google Drive API 114

Hình 4.39: Xoá tệp bằng Google Drive API 114

Hình 4.40: Tải lên tệp bằng Google Drive API 114

Hình 4.41: Kiến trúc của MySQL 115

Hình 4.42: Sử dụng MySQL thiết kế cơ sở dữ liệu 116

Hình 5.1: Giao diện trang chủ 117

Hình 5.2: Giao diện đăng nhập 118

Hình 5.3: Giao diện đăng ký 119

Hình 5.4: Giao diện quên mật khẩu 120

Hình 5.5: Giao diện thanh trên 121

Hình 5.6: Giao diện thanh bên 122

Hình 5.7: Giao diện thông tin cá nhân 123

Hình 5.8: Giao diện chi tiết tài liệu 125

Hình 5.9: Giao diện danh sách tài liệu chính 127

Hình 5.10: Giao diện danh sách tài liệu đã thích 128

Hình 5.11: Giao diện danh sách tài liệu đã lưu 129

Hình 5.12: Giao diện danh sách tài liệu tải lên đã được duyệt 130

Hình 5.13: Giao diện danh sách tài liệu tải lên đang đợi duyệt 131

Hình 5.14: Giao diện danh sách tài liệu tải lên bị từ chối 132

Hình 5.15: Giao diện đăng tài liệu 133

Hình 5.16: Giao diện chỉnh sửa tài liệu 134

Hình 5.17: Giao diện danh sách tài liệu của một người 136

Hình 5.18: Giao diện đăng nhập 137

Hình 5.19: Giao diện quên mật khẩu 138

Hình 5.20: Giao diện thông tin cá nhân 140

Hình 5.21: Giao diện trang chủ quản trị 143

Hình 5.22: Giao diện danh sách tài liệu 144

Hình 5.23: Giao diện chi tiết tài liệu 146

Hình 5.24: Giao diện thêm tài liệu 147

Hình 5.25: Giao diện chỉnh sửa tài liệu 149

Hình 5.26: Giao diện xoá tài liệu 150

Hình 5.27: Giao diện danh sách danh mục 151

Hình 5.28: Giao diện thêm danh mục 153

Hình 5.29: Giao diện chỉnh sửa danh mục 154

Hình 5.30: Giao diện xoá danh mục 155

Hình 5.31: Giao diện danh sách lĩnh vực 156

Hình 5.32: Giao diện thêm lĩnh vực 158

Hình 5.33: Giao diện chỉnh sửa lĩnh vực 159

Hình 5.34: Giao diện xoá lĩnh vực 160

Hình 5.35: Giao diện danh sách trường 161

Hình 5.36: Giao diện thêm trường 163

Hình 5.37: Giao diện chỉnh sửa trường 164

Hình 5.38: Giao diện chỉnh sửa trường 165

Hình 5.39: Giao diện danh sách người dùng 166

Hình 5.40: Giao diện chi tiết người dùng 168

Hình 5.41: Giao diện thêm người dùng 170

Hình 5.42: Giao diện chỉnh sửa người dùng 172

Hình 5.43: Giao diện xoá người dùng 174

Hình 5.44: Giao diện danh sách tài liệu đang chờ 175

Hình 5.45: Giao diện phê duyệt tài liệu 176

Hình 5.46: Giao diện từ chối tài liệu 177

Hình 5.47: Giao diện danh sách đánh giá 178

Hình 5.48: Giao diện xoá đánh giá 179

Bảng 1.1: Nhận xét trang web Studocu 5

Bảng 1.2: Nhận xét thư viện số HCMUTE 7

Bảng 1.3: Danh sách chức năng chính 8

Bảng 1.4: Yêu cầu chức năng quản lý thông tin cá nhân 11

Bảng 1.5: Yêu cầu chức năng quản lý người dùng 12

Bảng 1.6: Yêu cầu chức năng quản lý tài liệu 12

Bảng 1.7: Yêu cầu chức năng quản lý danh mục 13

Bảng 1.8: Yêu cầu chức năng quản lý lĩnh vực 13

Bảng 1.9: Yêu cầu chức năng quản lý trường 14

Bảng 1.10: Yêu cầu chức năng quản lý đánh giá 14

Bảng 1.11: Danh sách yêu cầu chức năng hệ thống 14

Bảng 1.12: Danh sách yêu cầu phi chức năng 15

Bảng 2.1: Đặc tả chức năng đăng ký 20

Bảng 2.2: Đặc tả chức năng đăng nhập 21

Bảng 2.3: Đặc tả chức năng đăng xuất 22

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu 23

Bảng 2.5: Đặc tả chức năng đổi mật khẩu 25

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân 26

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân 27

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện 28

Bảng 2.9: Đặc tả chức năng đọc tài liệu 29

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu 30

Bảng 2.11: Đặc tả chức năng lọc tài liệu 31

Bảng 2.12: Đặc tả chức năng thích tài liệu 32

Bảng 2.13: Đặc tả chức năng lưu tài liệu 33

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu 34

Bảng 2.15: Đặc tả chức năng đăng tài liệu 35

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu 36

Bảng 2.17: Đặc tả chức năng xoá tài liệu 37

Bảng 2.18: Đặc tả chức năng thêm người dùng 38

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng 40Bảng 2.20: Đặc tả chức năng xoá người dùng 41Bảng 2.21: Đặc tả chức năng xoá đánh giá 43Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu 44Bảng 2.23: Đặc tả chức năng thêm trường 45Bảng 2.24: Đặc tả chức năng chỉnh sửa trường 46Bảng 2.25: Đặc tả chức năng xoá trường 47Bảng 2.26: Đặc tả chức năng kích hoạt trường 48Bảng 2.27: Đặc tả chức năng thêm danh mục 49Bảng 2.28: Đặc tả chức năng chỉnh sửa danh mục 50Bảng 2.29: Đặc tả chức năng xoá danh mục 51Bảng 2.30: Đặc tả chức năng kích hoạt lĩnh vực 53Bảng 2.31: Đặc tả chức năng thêm lĩnh vực 54Bảng 2.32: Đặc tả chức năng chỉnh sửa lĩnh vực 55Bảng 2.33: Đặc tả chức năng xoá lĩnh vực 56Bảng 2.34: Đặc tả chức năng kích hoạt lĩnh vực 57Bảng 2.35: Đặc tả chức năng thống kê 58Bảng 5.1: Bảng mô tả giao diện trang chủ 117Bảng 5.2: Bảng mô tả giao diện đăng nhập 118Bảng 5.3: Bảng mô tả giao diện đăng ký 119Bảng 5.4: Bảng mô tả giao diện quên mật khẩu 120Bảng 5.5: Bảng mô tả giao diện thanh trên 121Bảng 5.6: Bảng mô tả giao diện thanh bên 122Bảng 5.7: Bảng mô tả giao diện thông tin cá nhân 123Bảng 5.8: Bảng mô tả giao diện chi tiết tài liệu 125Bảng 5.9: Bảng mô tả giao diện danh sách tài liệu chính 127Bảng 5.10: Bảng mô tả giao diện danh sách tài liệu đã thích 128Bảng 5.11: Bảng mô tả giao diện danh sách tài liệu đã lưu 129Bảng 5.12: Bảng mô tả giao diện danh sách tài liệu tải lên đã được duyệt 130Bảng 5.13: Bảng mô tả giao diện danh sách tài liệu tải lên đang đợi duyệt 131Bảng 5.14: Bảng mô tả giao diện danh sách tài liệu tải lên bị từ chối 132Bảng 5.15: Bảng mô tả giao diện đăng tài liệu 133

Bảng 5.16: Bảng mô tả giao diện chỉnh sửa tài liệu 135Bảng 5.17: Bảng mô tả giao diện danh sách tài liệu của một người 136Bảng 5.18: Bảng mô tả giao diện đăng nhập 137Bảng 5.19: Bảng mô tả giao diện quên mật khẩu 138Bảng 5.20: Bảng mô tả giao diện thông tin cá nhân 141Bảng 5.21: Bảng mô tả giao diện trang chủ quản trị 143Bảng 5.22: Bảng mô tả giao diện danh sách tài liệu 145Bảng 5.23: Bảng mô tả giao diện chi tiết tài liệu 146Bảng 5.24: Bảng mô tả giao diện thêm tài liệu 148Bảng 5.25: Bảng mô tả giao diện chỉnh sửa tài liệu 149Bảng 5.26: Bảng mô tả giao diện xoá tài liệu 150Bảng 5.27: Bảng mô tả giao diện danh sách danh mục 151Bảng 5.28: Bảng mô tả giao diện thêm danh mục 153Bảng 5.29: Bảng mô tả giao diện chỉnh sửa danh mục 154Bảng 5.30: Bảng mô tả giao diện xoá danh mục 155Bảng 5.31: Bảng mô tả giao diện danh sách lĩnh vực 156Bảng 5.32: Bảng mô tả giao diện thêm lĩnh vực 158Bảng 5.33: Bảng mô tả giao diện chỉnh sửa lĩnh vực 159Bảng 5.34: Bảng mô tả giao diện xoá lĩnh vực 160Bảng 5.35: Bảng mô tả giao diện danh sách trường 161Bảng 5.36: Bảng mô tả giao diện thêm trường 163Bảng 5.37: Bảng mô tả giao diện chỉnh sửa trường 164Bảng 5.38: Bảng mô tả giao diện xoá trường 165Bảng 5.39: Bảng mô tả giao diện danh sách người dùng 166Bảng 5.40: Bảng mô tả giao diện chi tiết người dùng 168Bảng 5.41: Bảng mô tả giao diện thêm người dùng 171Bảng 5.42: Bảng mô tả giao diện chỉnh sửa người dùng 173Bảng 5.43: Bảng mô tả giao diện xoá người dùng 174Bảng 5.44: Bảng mô tả giao diện danh sách tài liệu đang chờ 175Bảng 5.45: Bảng mô tả giao diện phê duyệt tài liệu 176Bảng 5.46: Bảng mô tả giao diện từ chối tài liệu 177Bảng 5.47: Bảng mô tả giao diện danh sách đánh giá 178

Bảng 5.48: Bảng mô tả giao diện xoá đánh giá 179Bảng 6.1: Sản phẩm deploy 180Bảng 6.2: Lịch trình công việc 181Bảng 6.3: Chiến lược kiểm thử 182Bảng 6.4: Kết quả kiểm thử 183

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại ngày nay, công nghệ thông tin đã và đang phát triển nhanh chóng, mạnh mẽ trong tất cả các lĩnh vực đời sống Từ những bước tiến vượt bậc trong lĩnh vực máy tính, mạng lưới, đến sự bùng nổ của Internet và sự xuất hiện của trí tuệ nhân tạo, công nghệ thông tin dần chuyển đổi cách con người sống, làm việc và tương tác với nhau Đặc biệt, nó đã mở ra nhiều cơ hội mới trong việc chia sẻ và truy cập thông tin Giờ đây, con người có thể tiếp cận và sử dụng nguồn tài nguyên trên mạng từ xa, không giới hạn thời gian và địa điểm Điều này cũng mở ra tương lai cho các dịch vụ lưu trữ và cung cấp tài nguyên đến cho người dùng trực tuyến

Lĩnh vực giáo dục cũng chứng kiến sự thay đổi mạnh mẽ dưới tác động của công nghệ Các mô hình giảng dạy và học tập truyền thống dần dần chuyển đổi sang môi trường máy tính và trực tuyến Kèm theo đó là nhu cầu cho việc sử dụng các nguồn tài nguyên học tập tăng lên một cách mạnh mẽ Nếu như trước kia, khi muốn tìm hiểu và học tập về một nội dung, lĩnh vực nào đó, sinh viên sẽ cần phải có một bản tài liệu hoặc một cuốn sách bằng giấy Tuy nhiên, ngày nay, sinh viên hầu như có thể truy cập mạng Internet để tìm và sử dụng các tài liệu đó Điều này vừa tạo sự tiện lợi cho người học cũng như cung cấp khả năng tiếp cận kho tài liệu phong phú Tuy nhiên, việc học tập là không giới hạn ở chỉ mỗi một trường đại học Mỗi trường đại học sẽ có một nguồn tài liệu bổ ích và quý giá khác nhau Do đó, em nghĩ đến ý tưởng tạo một trang web tổng hợp và phân loại tài liệu theo các trường đại học, cao đẳng nhằm cung cấp một nguồn tài nguyên phong phú và bổ ích đến các sinh viên

Xuất phát từ ý tưởng đó, em xin thực hiện đề tài Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài này là tạo nên một trang web diễn đàn cung cấp một kho tài liệu bổ ích và phong phú đến cho sinh viên, giúp cho sinh viên tiếp cận tài liệu học tập một cách tiện lợi và hiệu quả

- Đối tượng nghiên cứu Đề tài tập trung nghiên cứu những vấn đề sau:

 Các kỹ thuật phân tích thiết kế hệ thống

 Tìm hiểu về Spring Boot trên nền tảng Java để xây dựng API cho hệ thống

 Tìm hiểu về React để xây dựng giao diện người dùng

 Tìm hiểu về Google Drive API để lưu trữ tài liệu

Trong phạm vi của đề tài, nhóm chúng em tập trung nghiên cứu các chức năng cơ bản của một hệ thống quản lý tài liệu như truy cập tài liệu, tải lên, chỉnh sửa, xoá bỏ, phân loại

KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU

Danh sách yêu cầu phi chức năng

2 Chương 2: Mô hình hoá yêu cầu

3 Chương 3: Thiết kế phần mềm

4 Chương 4: Kiến trúc hệ thống

4.2 Các công nghệ được sử dụng

5 Chương 5: Thiết kế giao diện và xử lý

5.1 Sinh viên và người dùng khách

6 Chương 6: Cài đặt và kiểm thử

STT Thời gian Công việc Ghi chú

1 28/2/2024-6/3/2024 Tham khảo, xác định đề tài

2 6/3/2024-13/4/2024 Khảo sát, phân tích và xác định các yêu cầu của đề tài

3 13/3/2024-20/3/2024 Xây dựng lược đồ chức năng, đặc tả chức năng

4 20/3/2024- 27/3/2024 Xây dựng lược đồ tuần tự

5 27/3/2024- 3/4/2024 Thiết kế giao diện phần sinh viên và người dùng khách

6 3/4/2024 – 10/4/2024 Thiết kế và xây dựng cơ sở dữ liệu

8 17/4/2024-24/4/2024 Kết nối giao diện và back-end cho sinh viên và người dùng khách

9 24/4/2024-1/5/2024 Thiết kế giao diện phần quản lý và admin

10 1/5/2024 – 8/5/2024 Kết nối giao diện và back-end cho quản lý và admin

11 8/5/2024 -15/5/2024 Hoàn thiện các chức năng và bổ sung các chức năng bị thiếu

12 15/5/2024 – 22/5/2024 Kiểm thử lại trang web, sửa chữa lỗi

15 5/6/2024 – 28/6/2024 Chỉnh sửa báo cáo và làm

Vu Hoang Anh Ý kiến của giáo viên hướng dẫn

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC ĐÍCH CỦA ĐỀ TÀI 1

CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 3

1.2 Khảo sát một số phần mềm 3

1.3 Phân tích yêu cầu của dự án 8

1.4 Yêu cầu chức năng nghiệp vụ 10

1.5 Danh sách yêu cầu chức năng nghiệp vụ 11

1.6 Danh sách yêu cầu chức năng hệ thống 14

1.7 Danh sách yêu cầu phi chức năng 15

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU 17

2.1.1 Lược đồ chức năng tổng quan 17

2.2.6 Xem thông tin cá nhân 26

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

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 59

3.1.6 Xem thông tin cá nhân 63

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

CHƯƠNG 4: KIẾN TRÚC HỆ THỐNG 90

4.1.2 Tương tác và giao tiếp giữa các thành phần 91

4.2 Các công nghệ và thư viện được sử dụng 91

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 117

5.1 Sinh viên và người dùng khách 117

5.1.9 Danh sách tài liệu chính 126

5.1.10 Danh sách tài liệu đã thích 128

5.1.11 Danh sách tài liệu đã lưu 129

5.1.12 Danh sách tài liệu đã tải lên đã được duyệt 130

5.1.13 Danh sách tài liệu đã tải lên đang đợi duyệt 131

5.1.14 Danh sách tài liệu đã tải lên bị từ chối 131

5.1.17 Danh sách tài liệu của một người 135

5.2.27 Danh sách tài liệu đang chờ 175

CHƯƠNG 6 CÀI ĐẶT, DEPLOY VÀ KIỂM THỬ 180

6.1.2 Cài đặt với docker compose 180

DANH MỤC TÀI LIỆU THAM KHẢO 188

Hình 1.1: Trang chủ Studocu 4

Hình 1.2: Danh sách tài liệu theo trường học 4

Hình 1.3: Xem chi tiết tài liệu 5

Hình 1.4: Tải tài liệu lên 5

Hình 1.5: Trang chủ thư viện số HCMUTE 6

Hình 1.6: Chi tiết tài liệu 7

Hình 1.7: Tải tài liệu 7

Hình 2.1: Lược đồ chức năng 17

Hình 2.2: Chức năng quản lý thông tin cá nhân 17

Hình 2.3: Chức năng quản lý tài liệu 18

Hình 2.4: Chức năng quản lý người dùng 18

Hình 2.5: Chức năng quản lý danh mục 19

Hình 2.6: Chức năng quản lý lĩnh vực 19

Hình 2.7: Chức năng quản lý trường 20

Hình 3.1: Lược đồ tuần tự chức năng đăng ký 59

Hình 3.2: Lược đồ tuần tự chức năng đăng nhập 60

Hình 3.3: Lược đồ tuần tự chức năng đăng xuất 60

Hình 3.4: Lược đồ tuần tự chức năng lấy lại mật khẩu 61

Hình 3.5: Lược đồ tuần tự chức năng đổi mật khẩu 62

Hình 3.6: Lược đồ tuần tự chức năng xem thông tin cá nhân 63

Hình 3.7: Lược đồ tuần tự chức năng cập nhật thông tin cá nhân 64

Hình 3.8: Lược đồ tuần tự chức năng đổi ảnh đại diện 65

Hình 3.9: Lược đồ tuần tự chức năng đọc tài liệu 65

Hình 3.10: Lược đồ tuần tự chức năng tìm kiếm tài liệu 66

Hình 3.11: Lược đồ tuần tự chức năng lọc tài liệu 66

Hình 3.12: Lược đồ tuần tự chức năng thích tài liệu 67

Hình 3.13: Lược đồ tuần tự chức năng lưu tài liệu 67

Hình 3.14: Lược đồ tuần tự chức năng đánh giá tài liệu 68

Hình 3.15: Lược đồ tuần tự chức năng đăng tài liệu 69

Hình 3.16: Lược đồ tuần tự chức năng chỉnh sửa tài liệu 70

Hình 3.17: Lược đồ tuần tự chức năng xoá tài liệu 71

Hình 3.18: Lược đồ tuần tự chức năng thêm người dùng 72

Hình 3.19: Lược đồ tuần tự chức năng chỉnh sửa người dùng 73

Hình 3.20: Lược đồ tuần tự chức năng xoá người dùng 74

Hình 3.21: Lược đồ tuần tự chức năng xoá đánh giá 75

Hình 3.22: Lược đồ tuần tự chức năng phê duyệt tài liệu 76

Hình 3.23: Lược đồ tuần tự chức năng thêm trường 77

Hình 3.24: Lược đồ tuần tự chức năng chỉnh sửa trường 78

Hình 3.25: Lược đồ tuần tự chức năng xoá trường 79

Hình 3.26: Lược đồ tuần tự chức năng kích hoạt trường 80

Hình 3.27: Lược đồ tuần tự chức năng thêm danh mục 81

Hình 3.28: Lược đồ tuần tự chức năng chỉnh sửa danh mục 82

Hình 3.29: Lược đồ tuần tự chức năng xoá danh mục 83

Hình 3.30: Lược đồ tuần tự chức năng kích hoạt danh mục 84

Hình 3.31: Lược đồ tuần tự chức năng thêm lĩnh vực 85

Hình 3.32: Lược đồ tuần tự chức năng chỉnh sửa lĩnh vực 86

Hình 3.33: Lược đồ tuần tự chức năng xoá lĩnh vực 87

Hình 3.34: Lược đồ tuần tự chức năng kích hoạt lĩnh vực 88

Hình 3.35: Lược đồ tuần tự chức năng thống kê 88

Hình 3.36: Lược đồ lớp của hệ thống 89

Hình 4.1: Kiến trúc tổng quan của hệ thống 90

Hình 4.2: Cấu trúc dự án Spring Boot đơn giản 92

Hình 4.3: Tạo dự án Spring Boot với Maven 93

Hình 4.4: Khai báo dependency trong pom.xml 94

Hình 4.5: Controller trong Spring Boot 94

Hình 4.6: Spring Boot và Tomcat 95

Hình 4.7: Thêm dependency Spring Security vào dự án 96

Hình 4.8: Cấu hình Filter Chain 97

Hình 4.9: Cấu hình xác thực 97

Hình 4.10: Thêm JWT Filter vào SecurityFilterChain 98

Hình 4.12: Tạo và trả JWT khi login 99

Hình 4.13: Repository interface trong Spring Data JPA 100

Hình 4.14: Truy vấn query tuỳ chỉnh 100

Hình 4.15: Thêm dependency của Spring Data JPA 101

Hình 4.16: Cấu hình kết nối MySQL trong application.yml 101

Hình 4.17: Tạo các entity classes 102

Hình 4.18: Kiến trúc ReactJS 103

Hình 4.19: Cấu trúc thư mục ReactJS 103

Hình 4.22: Minh hoạ tệp JSX 106

Hình 4.23: Ví dụ về useState 106

Hình 4.24: Ví dụ về useEffect 107

Hình 4.25: Chuyển hướng với useNavigate 107

Hình 4.26: Lấy đường dẫn hiện tại bằng useLocation 108

Hình 4.27: Truy xuất tham số từ URL với useParams 108

Hình 4.28: Minh hoạ props 108

Hình 4.29: Axios trong package.json 109

Hình 4.30: Sử dụng axios để gửi yêu cầu GET lấy tất cả danh mục 109

Hình 4.31: Tạo dự án Google Cloud 110

Hình 4.32: Giao diện APIs & Services 111

Hình 4.33: Kích hoạt Google Drive API 111

Hình 4.34: Giao diện Credentials để tạo service account 112

Hình 4.35: Tạo service account 112

Hình 4.37: Google Drive API dependency 113

Hình 4.38: Cấu hình Bean cho Google Drive API 114

Hình 4.39: Xoá tệp bằng Google Drive API 114

Hình 4.40: Tải lên tệp bằng Google Drive API 114

Hình 4.41: Kiến trúc của MySQL 115

Hình 4.42: Sử dụng MySQL thiết kế cơ sở dữ liệu 116

Hình 5.1: Giao diện trang chủ 117

Hình 5.2: Giao diện đăng nhập 118

Hình 5.3: Giao diện đăng ký 119

Hình 5.4: Giao diện quên mật khẩu 120

Hình 5.5: Giao diện thanh trên 121

Hình 5.6: Giao diện thanh bên 122

Hình 5.7: Giao diện thông tin cá nhân 123

Hình 5.8: Giao diện chi tiết tài liệu 125

Hình 5.9: Giao diện danh sách tài liệu chính 127

Hình 5.10: Giao diện danh sách tài liệu đã thích 128

Hình 5.11: Giao diện danh sách tài liệu đã lưu 129

Hình 5.12: Giao diện danh sách tài liệu tải lên đã được duyệt 130

Hình 5.13: Giao diện danh sách tài liệu tải lên đang đợi duyệt 131

Hình 5.14: Giao diện danh sách tài liệu tải lên bị từ chối 132

Hình 5.15: Giao diện đăng tài liệu 133

Hình 5.16: Giao diện chỉnh sửa tài liệu 134

Hình 5.17: Giao diện danh sách tài liệu của một người 136

Hình 5.18: Giao diện đăng nhập 137

Hình 5.19: Giao diện quên mật khẩu 138

Hình 5.20: Giao diện thông tin cá nhân 140

Hình 5.21: Giao diện trang chủ quản trị 143

Hình 5.22: Giao diện danh sách tài liệu 144

Hình 5.23: Giao diện chi tiết tài liệu 146

Hình 5.24: Giao diện thêm tài liệu 147

Hình 5.25: Giao diện chỉnh sửa tài liệu 149

Hình 5.26: Giao diện xoá tài liệu 150

Hình 5.27: Giao diện danh sách danh mục 151

Hình 5.28: Giao diện thêm danh mục 153

Hình 5.29: Giao diện chỉnh sửa danh mục 154

Hình 5.30: Giao diện xoá danh mục 155

Hình 5.31: Giao diện danh sách lĩnh vực 156

Hình 5.32: Giao diện thêm lĩnh vực 158

Hình 5.33: Giao diện chỉnh sửa lĩnh vực 159

Hình 5.34: Giao diện xoá lĩnh vực 160

Hình 5.35: Giao diện danh sách trường 161

Hình 5.36: Giao diện thêm trường 163

Hình 5.37: Giao diện chỉnh sửa trường 164

Hình 5.38: Giao diện chỉnh sửa trường 165

Hình 5.39: Giao diện danh sách người dùng 166

Hình 5.40: Giao diện chi tiết người dùng 168

Hình 5.41: Giao diện thêm người dùng 170

Hình 5.42: Giao diện chỉnh sửa người dùng 172

Hình 5.43: Giao diện xoá người dùng 174

Hình 5.44: Giao diện danh sách tài liệu đang chờ 175

Hình 5.45: Giao diện phê duyệt tài liệu 176

Hình 5.46: Giao diện từ chối tài liệu 177

Hình 5.47: Giao diện danh sách đánh giá 178

Hình 5.48: Giao diện xoá đánh giá 179

Bảng 1.1: Nhận xét trang web Studocu 5

Bảng 1.2: Nhận xét thư viện số HCMUTE 7

Bảng 1.3: Danh sách chức năng chính 8

Bảng 1.4: Yêu cầu chức năng quản lý thông tin cá nhân 11

Bảng 1.5: Yêu cầu chức năng quản lý người dùng 12

Bảng 1.6: Yêu cầu chức năng quản lý tài liệu 12

Bảng 1.7: Yêu cầu chức năng quản lý danh mục 13

Bảng 1.8: Yêu cầu chức năng quản lý lĩnh vực 13

Bảng 1.9: Yêu cầu chức năng quản lý trường 14

Bảng 1.10: Yêu cầu chức năng quản lý đánh giá 14

Bảng 1.11: Danh sách yêu cầu chức năng hệ thống 14

Bảng 1.12: Danh sách yêu cầu phi chức năng 15

Bảng 2.1: Đặc tả chức năng đăng ký 20

Bảng 2.2: Đặc tả chức năng đăng nhập 21

Bảng 2.3: Đặc tả chức năng đăng xuất 22

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu 23

Bảng 2.5: Đặc tả chức năng đổi mật khẩu 25

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân 26

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân 27

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện 28

Bảng 2.9: Đặc tả chức năng đọc tài liệu 29

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu 30

Bảng 2.11: Đặc tả chức năng lọc tài liệu 31

Bảng 2.12: Đặc tả chức năng thích tài liệu 32

Bảng 2.13: Đặc tả chức năng lưu tài liệu 33

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu 34

Bảng 2.15: Đặc tả chức năng đăng tài liệu 35

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu 36

Bảng 2.17: Đặc tả chức năng xoá tài liệu 37

Bảng 2.18: Đặc tả chức năng thêm người dùng 38

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng 40Bảng 2.20: Đặc tả chức năng xoá người dùng 41Bảng 2.21: Đặc tả chức năng xoá đánh giá 43Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu 44Bảng 2.23: Đặc tả chức năng thêm trường 45Bảng 2.24: Đặc tả chức năng chỉnh sửa trường 46Bảng 2.25: Đặc tả chức năng xoá trường 47Bảng 2.26: Đặc tả chức năng kích hoạt trường 48Bảng 2.27: Đặc tả chức năng thêm danh mục 49Bảng 2.28: Đặc tả chức năng chỉnh sửa danh mục 50Bảng 2.29: Đặc tả chức năng xoá danh mục 51Bảng 2.30: Đặc tả chức năng kích hoạt lĩnh vực 53Bảng 2.31: Đặc tả chức năng thêm lĩnh vực 54Bảng 2.32: Đặc tả chức năng chỉnh sửa lĩnh vực 55Bảng 2.33: Đặc tả chức năng xoá lĩnh vực 56Bảng 2.34: Đặc tả chức năng kích hoạt lĩnh vực 57Bảng 2.35: Đặc tả chức năng thống kê 58Bảng 5.1: Bảng mô tả giao diện trang chủ 117Bảng 5.2: Bảng mô tả giao diện đăng nhập 118Bảng 5.3: Bảng mô tả giao diện đăng ký 119Bảng 5.4: Bảng mô tả giao diện quên mật khẩu 120Bảng 5.5: Bảng mô tả giao diện thanh trên 121Bảng 5.6: Bảng mô tả giao diện thanh bên 122Bảng 5.7: Bảng mô tả giao diện thông tin cá nhân 123Bảng 5.8: Bảng mô tả giao diện chi tiết tài liệu 125Bảng 5.9: Bảng mô tả giao diện danh sách tài liệu chính 127Bảng 5.10: Bảng mô tả giao diện danh sách tài liệu đã thích 128Bảng 5.11: Bảng mô tả giao diện danh sách tài liệu đã lưu 129Bảng 5.12: Bảng mô tả giao diện danh sách tài liệu tải lên đã được duyệt 130Bảng 5.13: Bảng mô tả giao diện danh sách tài liệu tải lên đang đợi duyệt 131Bảng 5.14: Bảng mô tả giao diện danh sách tài liệu tải lên bị từ chối 132Bảng 5.15: Bảng mô tả giao diện đăng tài liệu 133

Bảng 5.16: Bảng mô tả giao diện chỉnh sửa tài liệu 135Bảng 5.17: Bảng mô tả giao diện danh sách tài liệu của một người 136Bảng 5.18: Bảng mô tả giao diện đăng nhập 137Bảng 5.19: Bảng mô tả giao diện quên mật khẩu 138Bảng 5.20: Bảng mô tả giao diện thông tin cá nhân 141Bảng 5.21: Bảng mô tả giao diện trang chủ quản trị 143Bảng 5.22: Bảng mô tả giao diện danh sách tài liệu 145Bảng 5.23: Bảng mô tả giao diện chi tiết tài liệu 146Bảng 5.24: Bảng mô tả giao diện thêm tài liệu 148Bảng 5.25: Bảng mô tả giao diện chỉnh sửa tài liệu 149Bảng 5.26: Bảng mô tả giao diện xoá tài liệu 150Bảng 5.27: Bảng mô tả giao diện danh sách danh mục 151Bảng 5.28: Bảng mô tả giao diện thêm danh mục 153Bảng 5.29: Bảng mô tả giao diện chỉnh sửa danh mục 154Bảng 5.30: Bảng mô tả giao diện xoá danh mục 155Bảng 5.31: Bảng mô tả giao diện danh sách lĩnh vực 156Bảng 5.32: Bảng mô tả giao diện thêm lĩnh vực 158Bảng 5.33: Bảng mô tả giao diện chỉnh sửa lĩnh vực 159Bảng 5.34: Bảng mô tả giao diện xoá lĩnh vực 160Bảng 5.35: Bảng mô tả giao diện danh sách trường 161Bảng 5.36: Bảng mô tả giao diện thêm trường 163Bảng 5.37: Bảng mô tả giao diện chỉnh sửa trường 164Bảng 5.38: Bảng mô tả giao diện xoá trường 165Bảng 5.39: Bảng mô tả giao diện danh sách người dùng 166Bảng 5.40: Bảng mô tả giao diện chi tiết người dùng 168Bảng 5.41: Bảng mô tả giao diện thêm người dùng 171Bảng 5.42: Bảng mô tả giao diện chỉnh sửa người dùng 173Bảng 5.43: Bảng mô tả giao diện xoá người dùng 174Bảng 5.44: Bảng mô tả giao diện danh sách tài liệu đang chờ 175Bảng 5.45: Bảng mô tả giao diện phê duyệt tài liệu 176Bảng 5.46: Bảng mô tả giao diện từ chối tài liệu 177Bảng 5.47: Bảng mô tả giao diện danh sách đánh giá 178

Bảng 5.48: Bảng mô tả giao diện xoá đánh giá 179Bảng 6.1: Sản phẩm deploy 180Bảng 6.2: Lịch trình công việc 181Bảng 6.3: Chiến lược kiểm thử 182Bảng 6.4: Kết quả kiểm thử 183

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại ngày nay, công nghệ thông tin đã và đang phát triển nhanh chóng, mạnh mẽ trong tất cả các lĩnh vực đời sống Từ những bước tiến vượt bậc trong lĩnh vực máy tính, mạng lưới, đến sự bùng nổ của Internet và sự xuất hiện của trí tuệ nhân tạo, công nghệ thông tin dần chuyển đổi cách con người sống, làm việc và tương tác với nhau Đặc biệt, nó đã mở ra nhiều cơ hội mới trong việc chia sẻ và truy cập thông tin Giờ đây, con người có thể tiếp cận và sử dụng nguồn tài nguyên trên mạng từ xa, không giới hạn thời gian và địa điểm Điều này cũng mở ra tương lai cho các dịch vụ lưu trữ và cung cấp tài nguyên đến cho người dùng trực tuyến

Lĩnh vực giáo dục cũng chứng kiến sự thay đổi mạnh mẽ dưới tác động của công nghệ Các mô hình giảng dạy và học tập truyền thống dần dần chuyển đổi sang môi trường máy tính và trực tuyến Kèm theo đó là nhu cầu cho việc sử dụng các nguồn tài nguyên học tập tăng lên một cách mạnh mẽ Nếu như trước kia, khi muốn tìm hiểu và học tập về một nội dung, lĩnh vực nào đó, sinh viên sẽ cần phải có một bản tài liệu hoặc một cuốn sách bằng giấy Tuy nhiên, ngày nay, sinh viên hầu như có thể truy cập mạng Internet để tìm và sử dụng các tài liệu đó Điều này vừa tạo sự tiện lợi cho người học cũng như cung cấp khả năng tiếp cận kho tài liệu phong phú Tuy nhiên, việc học tập là không giới hạn ở chỉ mỗi một trường đại học Mỗi trường đại học sẽ có một nguồn tài liệu bổ ích và quý giá khác nhau Do đó, em nghĩ đến ý tưởng tạo một trang web tổng hợp và phân loại tài liệu theo các trường đại học, cao đẳng nhằm cung cấp một nguồn tài nguyên phong phú và bổ ích đến các sinh viên

Xuất phát từ ý tưởng đó, em xin thực hiện đề tài Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài này là tạo nên một trang web diễn đàn cung cấp một kho tài liệu bổ ích và phong phú đến cho sinh viên, giúp cho sinh viên tiếp cận tài liệu học tập một cách tiện lợi và hiệu quả

- Đối tượng nghiên cứu Đề tài tập trung nghiên cứu những vấn đề sau:

 Các kỹ thuật phân tích thiết kế hệ thống

 Tìm hiểu về Spring Boot trên nền tảng Java để xây dựng API cho hệ thống

 Tìm hiểu về React để xây dựng giao diện người dùng

 Tìm hiểu về Google Drive API để lưu trữ tài liệu

Trong phạm vi của đề tài, nhóm chúng em tập trung nghiên cứu các chức năng cơ bản của một hệ thống quản lý tài liệu như truy cập tài liệu, tải lên, chỉnh sửa, xoá bỏ, phân loại

PHẦN NỘI DUNG CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 1.1 Phân tích hiện trạng

Ngày nay, Internet đã và đang phát triển một cách chóng mặt và trở nên rất phổ biến Sự tiện lợi mà Internet mang lại trong các lĩnh vực đời sống và xã hội là điều không thể phủ nhận Trong đó, nhu cầu sử dụng và truy cập nguồn tài liệu học tập trên Internet là rất là lớn Internet cung cấp một lượng tài liệu khổng lồ và cực kỳ đa dạng cho học sinh, sinh viên sử dụng Trong số đó, có hàng nghìn, hàng chục nghìn trang web chuyên về cung cấp tài liệu đến cho người học

Nhìn chung, các trang web cung cấp lượng tài liệu đa dạng ở nhiều lĩnh vực và thể loại khác nhau Tuy nhiên, điều này cũng đặt ra một số thách thức và vấn đề:

- Không phải tất cả các nguồn tài liệu trên Internet đều đảm bảo về chất lượng và tính tin cậy Có rất nhiều tài liệu không chính xác hoặc không được kiểm chứng một cách đầy đủ

- Một số trang web yêu cầu người sử dụng trả phí để có quyền truy cập đầy đủ nội dung

- Một số trang web chứa quảng cáo gây làm phiền và ảnh hưởng đến trải nghiệm người dùng

- Người học cần phải có kỹ năng tìm kiếm trên Internet để có thể tận dụng tối đa nguồn tài liệu

1.2 Khảo sát một số phần mềm

 Đường dẫn trang web: https://www.studocu.com/

Hình 0.1: Trang chủ Studocu

Hình 0.1.: Danh sách tài liệu theo trường học

Hình 0.3: Xem chi tiết tài liệu

Hình 0.4: Tải tài liệu lên

Bảng 0.1: Nhận xét trang web Studocu

- Tìm kiếm khoá học, sách, tài liệu

- Nguồn tài liệu chưa được kiểm soát chặt chẽ

- Tải lên và chia sẻ tài liệu

- Thích, bỏ thích, bình luận, lưu, chia sẻ lên mạng xã hội

- Đăng ký Premium để truy cập các tính năng như tài liệu nâng cao, tải, in tài liệu

 Đường dẫn trang web: https://thuvienso.hcmute.edu.vn/

Hình 0.5: Trang chủ thư viện số HCMUTE

Hình 0.7: Chi tiết tài liệu

Hình 0.8: Tải tài liệu

Bảng 0.1: Nhận xét thư viện số HCMUTE

- Tìm kiếm sách, tài liệu

- Chủ yếu là tài liệu liên quan đến Trường Đại học Sư phạm Kỹ thuật

- Tải lên và chia sẻ tài liệu

- Thích, bình chọn, bình luận, chia sẻ lên mạng xã hội

1.3 Phân tích yêu cầu của dự án

Xây dựng một trang web để chia sẻ tài liệu học tập cho sinh viên giữa các trường đại học, cao đẳng Người dùng có thể tìm đọc và chia sẻ tài liệu của mình với những người khác Ngoài ra, hệ thống còn được quản lý bởi admin và người quản lý nhằm kiểm soát nguồn tài liệu được chia sẻ Các chức năng chính của chương trình bao gồm:

Bảng 0.2.3.: Danh sách chức năng chính Đối tượng sử dụng Các chức năng thực hiện

Sinh viên Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đọc tài liệu

Tìm kiếm tài liệu Thích tài liệu Lưu tài liệu Đánh giá tài liệu

9 Đăng tài liệu Cập nhật tài liệu Xoá tài liệu

Quản lý Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu cho trường Cập nhật tài liệu của trường Xoá tài liệu của trường Thêm người dùng cho trường Cập nhật người dùng của trường Xoá người dùng của trường Xoá đánh giá của trường Phê duyệt tài liệu của trường

Admin Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu

Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu

Cập nhật tài liệu Xoá tài liệu Thêm người dùng Cập nhật người dùng Xoá người dùng Thêm trường Cập nhật trường Xoá trường Kích hoạt trường Thêm danh mục Cập nhật danh mục Xoá danh mục Kích hoạt danh mục Thêm lĩnh vực Cập nhật lĩnh vực Xoá lĩnh vực Kích hoạt lĩnh vực Phê duyệt tài liệu Thống kê

1.4 Yêu cầu chức năng nghiệp vụ

1.5 Danh sách yêu cầu chức năng nghiệp vụ

 Quản lý thông tin cá nhân

Bảng 0.2: Yêu cầu chức năng quản lý thông tin cá nhân

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin cá nhân Tra cứu

2 Cập nhật thông tin cá nhân Lưu trữ

Bảng 0.3: Yêu cầu chức năng quản lý người dùng

Bảng 0.4: Yêu cầu chức năng quản lý tài liệu

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin người dùng Tra cứu

2 Cập nhật thông tin người dùng Lưu trữ

3 Xoá người dùng Lưu trữ

4 Số lượng người dùng Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem tài liệu Tra cứu

2 Tìm kiếm tài liệu Tra cứu

3 Đăng tài liệu Lưu trữ

4 Cập nhật tài liệu Lưu trữ

5 Xoá tài liệu Lưu trữ

6 Thích tài liệu Lưu trữ

Bảng 0.5: Yêu cầu chức năng quản lý danh mục

Bảng 0.6: Yêu cầu chức năng quản lý lĩnh vực

7 Lưu tài liệu Lưu trữ

8 Đánh giá tài liệu Lưu trữ

9 Phê duyệt tài liệu Lưu trữ

10 Số lượng tài liệu Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem danh mục Tra cứu

2 Cập nhật danh mục Lưu trữ

3 Xoá danh mục Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem lĩnh vực Tra cứu

2 Cập nhật lĩnh vực Lưu trữ

3 Xoá lĩnh vực Lưu trữ

Bảng 0.7: Yêu cầu chức năng quản lý trường

Bảng 0.8: Yêu cầu chức năng quản lý đánh giá

1.6 Danh sách yêu cầu chức năng hệ thống

Bảng 0.9: Danh sách yêu cầu chức năng hệ thống

STT Nội dung Mô tả chi tiết Ghi chú

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

2 Cập nhật trường Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem đánh giá Tra cứu

2 Xoá đánh giá Lưu trữ

3 Đánh giá trung bình Tính toán

- Sinh viên: tìm kiếm, đọc tài liệu; thích, lưu, đánh giá tài liệu; đăng, cập nhật, xoá tài liệu

- Quản lý: đăng, cập nhật, xoá tài liệu của trường; thêm, cập nhật, xoá người dùng của trường; phê duyệt tài liệu của trường; xoá đánh giá của tài liệu thuộc trường

- Admin: đăng, cập nhật, xoá tài liệu; thêm, cập nhật, xoá người dùng; thêm, cập nhật, xoá, kích hoạt danh mục; thêm, cập nhật, xoá, kích hoạt lĩnh vực; thêm, cập nhật, xoá, kích hoạt trường; phê duyệt tài liệu; thống kê

Hệ thống đảm bảo tài nguyên và dịch vụ chỉ được truy cập được bởi những tác nhân và người dùng nhất định

Cơ sở dữ liệu được sao lưu định kỳ, mã nguồn có khả năng khôi phục sao lưu nhanh

4 Thông báo Thông báo cho người dùng khi cần thiết: hoạt động thành công, thất bại,…

1.7 Danh sách yêu cầu phi chức năng

Bảng 0.10: Danh sách yêu cầu phi chức năng

STT Nội dung Tiêu chuẩn Mô tả chi tiết

1 Tốc độ xử lý quá trình tương tác của người dùng Hiệu quả Có thể truy cập trực tuyến nhiều người cùng một lúc

2 Tốc độ tìm kiếm nhanh và chính xác Hiệu quả Tối đa 5s có kết quả tìm kiếm

Tiết kiệm thời gian, tối ưu được cơ sở dữ liệu, thu hẹp không gian, tránh mất dữ liệu

Tiết kiệm thời gian so với quản lý thủ công Dữ liệu được sao lưu trên máy, có thể phục hồi

4 Dễ dàng bảo trì, nâng cấp và phát triển Cải tiến

Có khả năng mở rộng và thêm các tính năng mới dễ dàng mà không làm phá vỡ cấu trúc hệ thống

5 Giao diện thân thiện, màu sắc đa dạng và rõ nét Tiện dụng

Giao diện dễ dàng cho người dùng sử dụng và tạo cảm giác hiện đại

6 Thao tác dễ dùng Tiện dụng Các thao tác đơn giản, gần gũi với người dùng

MÔ HÌNH HOÁ YÊU CẦU

Đặc tả chức năng

3 Chương 3: Thiết kế phần mềm

4 Chương 4: Kiến trúc hệ thống

4.2 Các công nghệ được sử dụng

5 Chương 5: Thiết kế giao diện và xử lý

5.1 Sinh viên và người dùng khách

6 Chương 6: Cài đặt và kiểm thử

STT Thời gian Công việc Ghi chú

1 28/2/2024-6/3/2024 Tham khảo, xác định đề tài

2 6/3/2024-13/4/2024 Khảo sát, phân tích và xác định các yêu cầu của đề tài

3 13/3/2024-20/3/2024 Xây dựng lược đồ chức năng, đặc tả chức năng

4 20/3/2024- 27/3/2024 Xây dựng lược đồ tuần tự

5 27/3/2024- 3/4/2024 Thiết kế giao diện phần sinh viên và người dùng khách

6 3/4/2024 – 10/4/2024 Thiết kế và xây dựng cơ sở dữ liệu

8 17/4/2024-24/4/2024 Kết nối giao diện và back-end cho sinh viên và người dùng khách

9 24/4/2024-1/5/2024 Thiết kế giao diện phần quản lý và admin

10 1/5/2024 – 8/5/2024 Kết nối giao diện và back-end cho quản lý và admin

11 8/5/2024 -15/5/2024 Hoàn thiện các chức năng và bổ sung các chức năng bị thiếu

12 15/5/2024 – 22/5/2024 Kiểm thử lại trang web, sửa chữa lỗi

15 5/6/2024 – 28/6/2024 Chỉnh sửa báo cáo và làm

Vu Hoang Anh Ý kiến của giáo viên hướng dẫn

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC ĐÍCH CỦA ĐỀ TÀI 1

CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 3

1.2 Khảo sát một số phần mềm 3

1.3 Phân tích yêu cầu của dự án 8

1.4 Yêu cầu chức năng nghiệp vụ 10

1.5 Danh sách yêu cầu chức năng nghiệp vụ 11

1.6 Danh sách yêu cầu chức năng hệ thống 14

1.7 Danh sách yêu cầu phi chức năng 15

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU 17

2.1.1 Lược đồ chức năng tổng quan 17

2.2.6 Xem thông tin cá nhân 26

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

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 59

3.1.6 Xem thông tin cá nhân 63

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

CHƯƠNG 4: KIẾN TRÚC HỆ THỐNG 90

4.1.2 Tương tác và giao tiếp giữa các thành phần 91

4.2 Các công nghệ và thư viện được sử dụng 91

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 117

5.1 Sinh viên và người dùng khách 117

5.1.9 Danh sách tài liệu chính 126

5.1.10 Danh sách tài liệu đã thích 128

5.1.11 Danh sách tài liệu đã lưu 129

5.1.12 Danh sách tài liệu đã tải lên đã được duyệt 130

5.1.13 Danh sách tài liệu đã tải lên đang đợi duyệt 131

5.1.14 Danh sách tài liệu đã tải lên bị từ chối 131

5.1.17 Danh sách tài liệu của một người 135

5.2.27 Danh sách tài liệu đang chờ 175

CHƯƠNG 6 CÀI ĐẶT, DEPLOY VÀ KIỂM THỬ 180

6.1.2 Cài đặt với docker compose 180

DANH MỤC TÀI LIỆU THAM KHẢO 188

Hình 1.1: Trang chủ Studocu 4

Hình 1.2: Danh sách tài liệu theo trường học 4

Hình 1.3: Xem chi tiết tài liệu 5

Hình 1.4: Tải tài liệu lên 5

Hình 1.5: Trang chủ thư viện số HCMUTE 6

Hình 1.6: Chi tiết tài liệu 7

Hình 1.7: Tải tài liệu 7

Hình 2.1: Lược đồ chức năng 17

Hình 2.2: Chức năng quản lý thông tin cá nhân 17

Hình 2.3: Chức năng quản lý tài liệu 18

Hình 2.4: Chức năng quản lý người dùng 18

Hình 2.5: Chức năng quản lý danh mục 19

Hình 2.6: Chức năng quản lý lĩnh vực 19

Hình 2.7: Chức năng quản lý trường 20

Hình 3.1: Lược đồ tuần tự chức năng đăng ký 59

Hình 3.2: Lược đồ tuần tự chức năng đăng nhập 60

Hình 3.3: Lược đồ tuần tự chức năng đăng xuất 60

Hình 3.4: Lược đồ tuần tự chức năng lấy lại mật khẩu 61

Hình 3.5: Lược đồ tuần tự chức năng đổi mật khẩu 62

Hình 3.6: Lược đồ tuần tự chức năng xem thông tin cá nhân 63

Hình 3.7: Lược đồ tuần tự chức năng cập nhật thông tin cá nhân 64

Hình 3.8: Lược đồ tuần tự chức năng đổi ảnh đại diện 65

Hình 3.9: Lược đồ tuần tự chức năng đọc tài liệu 65

Hình 3.10: Lược đồ tuần tự chức năng tìm kiếm tài liệu 66

Hình 3.11: Lược đồ tuần tự chức năng lọc tài liệu 66

Hình 3.12: Lược đồ tuần tự chức năng thích tài liệu 67

Hình 3.13: Lược đồ tuần tự chức năng lưu tài liệu 67

Hình 3.14: Lược đồ tuần tự chức năng đánh giá tài liệu 68

Hình 3.15: Lược đồ tuần tự chức năng đăng tài liệu 69

Hình 3.16: Lược đồ tuần tự chức năng chỉnh sửa tài liệu 70

Hình 3.17: Lược đồ tuần tự chức năng xoá tài liệu 71

Hình 3.18: Lược đồ tuần tự chức năng thêm người dùng 72

Hình 3.19: Lược đồ tuần tự chức năng chỉnh sửa người dùng 73

Hình 3.20: Lược đồ tuần tự chức năng xoá người dùng 74

Hình 3.21: Lược đồ tuần tự chức năng xoá đánh giá 75

Hình 3.22: Lược đồ tuần tự chức năng phê duyệt tài liệu 76

Hình 3.23: Lược đồ tuần tự chức năng thêm trường 77

Hình 3.24: Lược đồ tuần tự chức năng chỉnh sửa trường 78

Hình 3.25: Lược đồ tuần tự chức năng xoá trường 79

Hình 3.26: Lược đồ tuần tự chức năng kích hoạt trường 80

Hình 3.27: Lược đồ tuần tự chức năng thêm danh mục 81

Hình 3.28: Lược đồ tuần tự chức năng chỉnh sửa danh mục 82

Hình 3.29: Lược đồ tuần tự chức năng xoá danh mục 83

Hình 3.30: Lược đồ tuần tự chức năng kích hoạt danh mục 84

Hình 3.31: Lược đồ tuần tự chức năng thêm lĩnh vực 85

Hình 3.32: Lược đồ tuần tự chức năng chỉnh sửa lĩnh vực 86

Hình 3.33: Lược đồ tuần tự chức năng xoá lĩnh vực 87

Hình 3.34: Lược đồ tuần tự chức năng kích hoạt lĩnh vực 88

Hình 3.35: Lược đồ tuần tự chức năng thống kê 88

Hình 3.36: Lược đồ lớp của hệ thống 89

Hình 4.1: Kiến trúc tổng quan của hệ thống 90

Hình 4.2: Cấu trúc dự án Spring Boot đơn giản 92

Hình 4.3: Tạo dự án Spring Boot với Maven 93

Hình 4.4: Khai báo dependency trong pom.xml 94

Hình 4.5: Controller trong Spring Boot 94

Hình 4.6: Spring Boot và Tomcat 95

Hình 4.7: Thêm dependency Spring Security vào dự án 96

Hình 4.8: Cấu hình Filter Chain 97

Hình 4.9: Cấu hình xác thực 97

Hình 4.10: Thêm JWT Filter vào SecurityFilterChain 98

Hình 4.12: Tạo và trả JWT khi login 99

Hình 4.13: Repository interface trong Spring Data JPA 100

Hình 4.14: Truy vấn query tuỳ chỉnh 100

Hình 4.15: Thêm dependency của Spring Data JPA 101

Hình 4.16: Cấu hình kết nối MySQL trong application.yml 101

Hình 4.17: Tạo các entity classes 102

Hình 4.18: Kiến trúc ReactJS 103

Hình 4.19: Cấu trúc thư mục ReactJS 103

Hình 4.22: Minh hoạ tệp JSX 106

Hình 4.23: Ví dụ về useState 106

Hình 4.24: Ví dụ về useEffect 107

Hình 4.25: Chuyển hướng với useNavigate 107

Hình 4.26: Lấy đường dẫn hiện tại bằng useLocation 108

Hình 4.27: Truy xuất tham số từ URL với useParams 108

Hình 4.28: Minh hoạ props 108

Hình 4.29: Axios trong package.json 109

Hình 4.30: Sử dụng axios để gửi yêu cầu GET lấy tất cả danh mục 109

Hình 4.31: Tạo dự án Google Cloud 110

Hình 4.32: Giao diện APIs & Services 111

Hình 4.33: Kích hoạt Google Drive API 111

Hình 4.34: Giao diện Credentials để tạo service account 112

Hình 4.35: Tạo service account 112

Hình 4.37: Google Drive API dependency 113

Hình 4.38: Cấu hình Bean cho Google Drive API 114

Hình 4.39: Xoá tệp bằng Google Drive API 114

Hình 4.40: Tải lên tệp bằng Google Drive API 114

Hình 4.41: Kiến trúc của MySQL 115

Hình 4.42: Sử dụng MySQL thiết kế cơ sở dữ liệu 116

Hình 5.1: Giao diện trang chủ 117

Hình 5.2: Giao diện đăng nhập 118

Hình 5.3: Giao diện đăng ký 119

Hình 5.4: Giao diện quên mật khẩu 120

Hình 5.5: Giao diện thanh trên 121

Hình 5.6: Giao diện thanh bên 122

Hình 5.7: Giao diện thông tin cá nhân 123

Hình 5.8: Giao diện chi tiết tài liệu 125

Hình 5.9: Giao diện danh sách tài liệu chính 127

Hình 5.10: Giao diện danh sách tài liệu đã thích 128

Hình 5.11: Giao diện danh sách tài liệu đã lưu 129

Hình 5.12: Giao diện danh sách tài liệu tải lên đã được duyệt 130

Hình 5.13: Giao diện danh sách tài liệu tải lên đang đợi duyệt 131

Hình 5.14: Giao diện danh sách tài liệu tải lên bị từ chối 132

Hình 5.15: Giao diện đăng tài liệu 133

Hình 5.16: Giao diện chỉnh sửa tài liệu 134

Hình 5.17: Giao diện danh sách tài liệu của một người 136

Hình 5.18: Giao diện đăng nhập 137

Hình 5.19: Giao diện quên mật khẩu 138

Hình 5.20: Giao diện thông tin cá nhân 140

Hình 5.21: Giao diện trang chủ quản trị 143

Hình 5.22: Giao diện danh sách tài liệu 144

Hình 5.23: Giao diện chi tiết tài liệu 146

Hình 5.24: Giao diện thêm tài liệu 147

Hình 5.25: Giao diện chỉnh sửa tài liệu 149

Hình 5.26: Giao diện xoá tài liệu 150

Hình 5.27: Giao diện danh sách danh mục 151

Hình 5.28: Giao diện thêm danh mục 153

Hình 5.29: Giao diện chỉnh sửa danh mục 154

Hình 5.30: Giao diện xoá danh mục 155

Hình 5.31: Giao diện danh sách lĩnh vực 156

Hình 5.32: Giao diện thêm lĩnh vực 158

Hình 5.33: Giao diện chỉnh sửa lĩnh vực 159

Hình 5.34: Giao diện xoá lĩnh vực 160

Hình 5.35: Giao diện danh sách trường 161

Hình 5.36: Giao diện thêm trường 163

Hình 5.37: Giao diện chỉnh sửa trường 164

Hình 5.38: Giao diện chỉnh sửa trường 165

Hình 5.39: Giao diện danh sách người dùng 166

Hình 5.40: Giao diện chi tiết người dùng 168

Hình 5.41: Giao diện thêm người dùng 170

Hình 5.42: Giao diện chỉnh sửa người dùng 172

Hình 5.43: Giao diện xoá người dùng 174

Hình 5.44: Giao diện danh sách tài liệu đang chờ 175

Hình 5.45: Giao diện phê duyệt tài liệu 176

Hình 5.46: Giao diện từ chối tài liệu 177

Hình 5.47: Giao diện danh sách đánh giá 178

Hình 5.48: Giao diện xoá đánh giá 179

Bảng 1.1: Nhận xét trang web Studocu 5

Bảng 1.2: Nhận xét thư viện số HCMUTE 7

Bảng 1.3: Danh sách chức năng chính 8

Bảng 1.4: Yêu cầu chức năng quản lý thông tin cá nhân 11

Bảng 1.5: Yêu cầu chức năng quản lý người dùng 12

Bảng 1.6: Yêu cầu chức năng quản lý tài liệu 12

Bảng 1.7: Yêu cầu chức năng quản lý danh mục 13

Bảng 1.8: Yêu cầu chức năng quản lý lĩnh vực 13

Bảng 1.9: Yêu cầu chức năng quản lý trường 14

Bảng 1.10: Yêu cầu chức năng quản lý đánh giá 14

Bảng 1.11: Danh sách yêu cầu chức năng hệ thống 14

Bảng 1.12: Danh sách yêu cầu phi chức năng 15

Bảng 2.1: Đặc tả chức năng đăng ký 20

Bảng 2.2: Đặc tả chức năng đăng nhập 21

Bảng 2.3: Đặc tả chức năng đăng xuất 22

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu 23

Bảng 2.5: Đặc tả chức năng đổi mật khẩu 25

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân 26

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân 27

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện 28

Bảng 2.9: Đặc tả chức năng đọc tài liệu 29

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu 30

Bảng 2.11: Đặc tả chức năng lọc tài liệu 31

Bảng 2.12: Đặc tả chức năng thích tài liệu 32

Bảng 2.13: Đặc tả chức năng lưu tài liệu 33

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu 34

Bảng 2.15: Đặc tả chức năng đăng tài liệu 35

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu 36

Bảng 2.17: Đặc tả chức năng xoá tài liệu 37

Bảng 2.18: Đặc tả chức năng thêm người dùng 38

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng 40Bảng 2.20: Đặc tả chức năng xoá người dùng 41Bảng 2.21: Đặc tả chức năng xoá đánh giá 43Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu 44Bảng 2.23: Đặc tả chức năng thêm trường 45Bảng 2.24: Đặc tả chức năng chỉnh sửa trường 46Bảng 2.25: Đặc tả chức năng xoá trường 47Bảng 2.26: Đặc tả chức năng kích hoạt trường 48Bảng 2.27: Đặc tả chức năng thêm danh mục 49Bảng 2.28: Đặc tả chức năng chỉnh sửa danh mục 50Bảng 2.29: Đặc tả chức năng xoá danh mục 51Bảng 2.30: Đặc tả chức năng kích hoạt lĩnh vực 53Bảng 2.31: Đặc tả chức năng thêm lĩnh vực 54Bảng 2.32: Đặc tả chức năng chỉnh sửa lĩnh vực 55Bảng 2.33: Đặc tả chức năng xoá lĩnh vực 56Bảng 2.34: Đặc tả chức năng kích hoạt lĩnh vực 57Bảng 2.35: Đặc tả chức năng thống kê 58Bảng 5.1: Bảng mô tả giao diện trang chủ 117Bảng 5.2: Bảng mô tả giao diện đăng nhập 118Bảng 5.3: Bảng mô tả giao diện đăng ký 119Bảng 5.4: Bảng mô tả giao diện quên mật khẩu 120Bảng 5.5: Bảng mô tả giao diện thanh trên 121Bảng 5.6: Bảng mô tả giao diện thanh bên 122Bảng 5.7: Bảng mô tả giao diện thông tin cá nhân 123Bảng 5.8: Bảng mô tả giao diện chi tiết tài liệu 125Bảng 5.9: Bảng mô tả giao diện danh sách tài liệu chính 127Bảng 5.10: Bảng mô tả giao diện danh sách tài liệu đã thích 128Bảng 5.11: Bảng mô tả giao diện danh sách tài liệu đã lưu 129Bảng 5.12: Bảng mô tả giao diện danh sách tài liệu tải lên đã được duyệt 130Bảng 5.13: Bảng mô tả giao diện danh sách tài liệu tải lên đang đợi duyệt 131Bảng 5.14: Bảng mô tả giao diện danh sách tài liệu tải lên bị từ chối 132Bảng 5.15: Bảng mô tả giao diện đăng tài liệu 133

Bảng 5.16: Bảng mô tả giao diện chỉnh sửa tài liệu 135Bảng 5.17: Bảng mô tả giao diện danh sách tài liệu của một người 136Bảng 5.18: Bảng mô tả giao diện đăng nhập 137Bảng 5.19: Bảng mô tả giao diện quên mật khẩu 138Bảng 5.20: Bảng mô tả giao diện thông tin cá nhân 141Bảng 5.21: Bảng mô tả giao diện trang chủ quản trị 143Bảng 5.22: Bảng mô tả giao diện danh sách tài liệu 145Bảng 5.23: Bảng mô tả giao diện chi tiết tài liệu 146Bảng 5.24: Bảng mô tả giao diện thêm tài liệu 148Bảng 5.25: Bảng mô tả giao diện chỉnh sửa tài liệu 149Bảng 5.26: Bảng mô tả giao diện xoá tài liệu 150Bảng 5.27: Bảng mô tả giao diện danh sách danh mục 151Bảng 5.28: Bảng mô tả giao diện thêm danh mục 153Bảng 5.29: Bảng mô tả giao diện chỉnh sửa danh mục 154Bảng 5.30: Bảng mô tả giao diện xoá danh mục 155Bảng 5.31: Bảng mô tả giao diện danh sách lĩnh vực 156Bảng 5.32: Bảng mô tả giao diện thêm lĩnh vực 158Bảng 5.33: Bảng mô tả giao diện chỉnh sửa lĩnh vực 159Bảng 5.34: Bảng mô tả giao diện xoá lĩnh vực 160Bảng 5.35: Bảng mô tả giao diện danh sách trường 161Bảng 5.36: Bảng mô tả giao diện thêm trường 163Bảng 5.37: Bảng mô tả giao diện chỉnh sửa trường 164Bảng 5.38: Bảng mô tả giao diện xoá trường 165Bảng 5.39: Bảng mô tả giao diện danh sách người dùng 166Bảng 5.40: Bảng mô tả giao diện chi tiết người dùng 168Bảng 5.41: Bảng mô tả giao diện thêm người dùng 171Bảng 5.42: Bảng mô tả giao diện chỉnh sửa người dùng 173Bảng 5.43: Bảng mô tả giao diện xoá người dùng 174Bảng 5.44: Bảng mô tả giao diện danh sách tài liệu đang chờ 175Bảng 5.45: Bảng mô tả giao diện phê duyệt tài liệu 176Bảng 5.46: Bảng mô tả giao diện từ chối tài liệu 177Bảng 5.47: Bảng mô tả giao diện danh sách đánh giá 178

Bảng 5.48: Bảng mô tả giao diện xoá đánh giá 179Bảng 6.1: Sản phẩm deploy 180Bảng 6.2: Lịch trình công việc 181Bảng 6.3: Chiến lược kiểm thử 182Bảng 6.4: Kết quả kiểm thử 183

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại ngày nay, công nghệ thông tin đã và đang phát triển nhanh chóng, mạnh mẽ trong tất cả các lĩnh vực đời sống Từ những bước tiến vượt bậc trong lĩnh vực máy tính, mạng lưới, đến sự bùng nổ của Internet và sự xuất hiện của trí tuệ nhân tạo, công nghệ thông tin dần chuyển đổi cách con người sống, làm việc và tương tác với nhau Đặc biệt, nó đã mở ra nhiều cơ hội mới trong việc chia sẻ và truy cập thông tin Giờ đây, con người có thể tiếp cận và sử dụng nguồn tài nguyên trên mạng từ xa, không giới hạn thời gian và địa điểm Điều này cũng mở ra tương lai cho các dịch vụ lưu trữ và cung cấp tài nguyên đến cho người dùng trực tuyến

Lĩnh vực giáo dục cũng chứng kiến sự thay đổi mạnh mẽ dưới tác động của công nghệ Các mô hình giảng dạy và học tập truyền thống dần dần chuyển đổi sang môi trường máy tính và trực tuyến Kèm theo đó là nhu cầu cho việc sử dụng các nguồn tài nguyên học tập tăng lên một cách mạnh mẽ Nếu như trước kia, khi muốn tìm hiểu và học tập về một nội dung, lĩnh vực nào đó, sinh viên sẽ cần phải có một bản tài liệu hoặc một cuốn sách bằng giấy Tuy nhiên, ngày nay, sinh viên hầu như có thể truy cập mạng Internet để tìm và sử dụng các tài liệu đó Điều này vừa tạo sự tiện lợi cho người học cũng như cung cấp khả năng tiếp cận kho tài liệu phong phú Tuy nhiên, việc học tập là không giới hạn ở chỉ mỗi một trường đại học Mỗi trường đại học sẽ có một nguồn tài liệu bổ ích và quý giá khác nhau Do đó, em nghĩ đến ý tưởng tạo một trang web tổng hợp và phân loại tài liệu theo các trường đại học, cao đẳng nhằm cung cấp một nguồn tài nguyên phong phú và bổ ích đến các sinh viên

Xuất phát từ ý tưởng đó, em xin thực hiện đề tài Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài này là tạo nên một trang web diễn đàn cung cấp một kho tài liệu bổ ích và phong phú đến cho sinh viên, giúp cho sinh viên tiếp cận tài liệu học tập một cách tiện lợi và hiệu quả

- Đối tượng nghiên cứu Đề tài tập trung nghiên cứu những vấn đề sau:

 Các kỹ thuật phân tích thiết kế hệ thống

 Tìm hiểu về Spring Boot trên nền tảng Java để xây dựng API cho hệ thống

 Tìm hiểu về React để xây dựng giao diện người dùng

 Tìm hiểu về Google Drive API để lưu trữ tài liệu

Trong phạm vi của đề tài, nhóm chúng em tập trung nghiên cứu các chức năng cơ bản của một hệ thống quản lý tài liệu như truy cập tài liệu, tải lên, chỉnh sửa, xoá bỏ, phân loại

PHẦN NỘI DUNG CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 1.1 Phân tích hiện trạng

Ngày nay, Internet đã và đang phát triển một cách chóng mặt và trở nên rất phổ biến Sự tiện lợi mà Internet mang lại trong các lĩnh vực đời sống và xã hội là điều không thể phủ nhận Trong đó, nhu cầu sử dụng và truy cập nguồn tài liệu học tập trên Internet là rất là lớn Internet cung cấp một lượng tài liệu khổng lồ và cực kỳ đa dạng cho học sinh, sinh viên sử dụng Trong số đó, có hàng nghìn, hàng chục nghìn trang web chuyên về cung cấp tài liệu đến cho người học

Nhìn chung, các trang web cung cấp lượng tài liệu đa dạng ở nhiều lĩnh vực và thể loại khác nhau Tuy nhiên, điều này cũng đặt ra một số thách thức và vấn đề:

- Không phải tất cả các nguồn tài liệu trên Internet đều đảm bảo về chất lượng và tính tin cậy Có rất nhiều tài liệu không chính xác hoặc không được kiểm chứng một cách đầy đủ

- Một số trang web yêu cầu người sử dụng trả phí để có quyền truy cập đầy đủ nội dung

- Một số trang web chứa quảng cáo gây làm phiền và ảnh hưởng đến trải nghiệm người dùng

- Người học cần phải có kỹ năng tìm kiếm trên Internet để có thể tận dụng tối đa nguồn tài liệu

1.2 Khảo sát một số phần mềm

 Đường dẫn trang web: https://www.studocu.com/

Hình 0.1: Trang chủ Studocu

Hình 0.1.: Danh sách tài liệu theo trường học

Hình 0.3: Xem chi tiết tài liệu

Hình 0.4: Tải tài liệu lên

Bảng 0.1: Nhận xét trang web Studocu

- Tìm kiếm khoá học, sách, tài liệu

- Nguồn tài liệu chưa được kiểm soát chặt chẽ

- Tải lên và chia sẻ tài liệu

- Thích, bỏ thích, bình luận, lưu, chia sẻ lên mạng xã hội

- Đăng ký Premium để truy cập các tính năng như tài liệu nâng cao, tải, in tài liệu

 Đường dẫn trang web: https://thuvienso.hcmute.edu.vn/

Hình 0.5: Trang chủ thư viện số HCMUTE

Hình 0.7: Chi tiết tài liệu

Hình 0.8: Tải tài liệu

Bảng 0.1: Nhận xét thư viện số HCMUTE

- Tìm kiếm sách, tài liệu

- Chủ yếu là tài liệu liên quan đến Trường Đại học Sư phạm Kỹ thuật

- Tải lên và chia sẻ tài liệu

- Thích, bình chọn, bình luận, chia sẻ lên mạng xã hội

1.3 Phân tích yêu cầu của dự án

Xây dựng một trang web để chia sẻ tài liệu học tập cho sinh viên giữa các trường đại học, cao đẳng Người dùng có thể tìm đọc và chia sẻ tài liệu của mình với những người khác Ngoài ra, hệ thống còn được quản lý bởi admin và người quản lý nhằm kiểm soát nguồn tài liệu được chia sẻ Các chức năng chính của chương trình bao gồm:

Bảng 0.2.3.: Danh sách chức năng chính Đối tượng sử dụng Các chức năng thực hiện

Sinh viên Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đọc tài liệu

Tìm kiếm tài liệu Thích tài liệu Lưu tài liệu Đánh giá tài liệu

9 Đăng tài liệu Cập nhật tài liệu Xoá tài liệu

Quản lý Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu cho trường Cập nhật tài liệu của trường Xoá tài liệu của trường Thêm người dùng cho trường Cập nhật người dùng của trường Xoá người dùng của trường Xoá đánh giá của trường Phê duyệt tài liệu của trường

Admin Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu

Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu

Cập nhật tài liệu Xoá tài liệu Thêm người dùng Cập nhật người dùng Xoá người dùng Thêm trường Cập nhật trường Xoá trường Kích hoạt trường Thêm danh mục Cập nhật danh mục Xoá danh mục Kích hoạt danh mục Thêm lĩnh vực Cập nhật lĩnh vực Xoá lĩnh vực Kích hoạt lĩnh vực Phê duyệt tài liệu Thống kê

1.4 Yêu cầu chức năng nghiệp vụ

1.5 Danh sách yêu cầu chức năng nghiệp vụ

 Quản lý thông tin cá nhân

Bảng 0.2: Yêu cầu chức năng quản lý thông tin cá nhân

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin cá nhân Tra cứu

2 Cập nhật thông tin cá nhân Lưu trữ

Bảng 0.3: Yêu cầu chức năng quản lý người dùng

Bảng 0.4: Yêu cầu chức năng quản lý tài liệu

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin người dùng Tra cứu

2 Cập nhật thông tin người dùng Lưu trữ

3 Xoá người dùng Lưu trữ

4 Số lượng người dùng Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem tài liệu Tra cứu

2 Tìm kiếm tài liệu Tra cứu

3 Đăng tài liệu Lưu trữ

4 Cập nhật tài liệu Lưu trữ

5 Xoá tài liệu Lưu trữ

6 Thích tài liệu Lưu trữ

Bảng 0.5: Yêu cầu chức năng quản lý danh mục

Bảng 0.6: Yêu cầu chức năng quản lý lĩnh vực

7 Lưu tài liệu Lưu trữ

8 Đánh giá tài liệu Lưu trữ

9 Phê duyệt tài liệu Lưu trữ

10 Số lượng tài liệu Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem danh mục Tra cứu

2 Cập nhật danh mục Lưu trữ

3 Xoá danh mục Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem lĩnh vực Tra cứu

2 Cập nhật lĩnh vực Lưu trữ

3 Xoá lĩnh vực Lưu trữ

Bảng 0.7: Yêu cầu chức năng quản lý trường

Bảng 0.8: Yêu cầu chức năng quản lý đánh giá

1.6 Danh sách yêu cầu chức năng hệ thống

Bảng 0.9: Danh sách yêu cầu chức năng hệ thống

STT Nội dung Mô tả chi tiết Ghi chú

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

2 Cập nhật trường Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem đánh giá Tra cứu

2 Xoá đánh giá Lưu trữ

3 Đánh giá trung bình Tính toán

- Sinh viên: tìm kiếm, đọc tài liệu; thích, lưu, đánh giá tài liệu; đăng, cập nhật, xoá tài liệu

- Quản lý: đăng, cập nhật, xoá tài liệu của trường; thêm, cập nhật, xoá người dùng của trường; phê duyệt tài liệu của trường; xoá đánh giá của tài liệu thuộc trường

- Admin: đăng, cập nhật, xoá tài liệu; thêm, cập nhật, xoá người dùng; thêm, cập nhật, xoá, kích hoạt danh mục; thêm, cập nhật, xoá, kích hoạt lĩnh vực; thêm, cập nhật, xoá, kích hoạt trường; phê duyệt tài liệu; thống kê

Hệ thống đảm bảo tài nguyên và dịch vụ chỉ được truy cập được bởi những tác nhân và người dùng nhất định

Cơ sở dữ liệu được sao lưu định kỳ, mã nguồn có khả năng khôi phục sao lưu nhanh

4 Thông báo Thông báo cho người dùng khi cần thiết: hoạt động thành công, thất bại,…

1.7 Danh sách yêu cầu phi chức năng

Bảng 0.10: Danh sách yêu cầu phi chức năng

STT Nội dung Tiêu chuẩn Mô tả chi tiết

1 Tốc độ xử lý quá trình tương tác của người dùng Hiệu quả Có thể truy cập trực tuyến nhiều người cùng một lúc

2 Tốc độ tìm kiếm nhanh và chính xác Hiệu quả Tối đa 5s có kết quả tìm kiếm

Tiết kiệm thời gian, tối ưu được cơ sở dữ liệu, thu hẹp không gian, tránh mất dữ liệu

Tiết kiệm thời gian so với quản lý thủ công Dữ liệu được sao lưu trên máy, có thể phục hồi

4 Dễ dàng bảo trì, nâng cấp và phát triển Cải tiến

Có khả năng mở rộng và thêm các tính năng mới dễ dàng mà không làm phá vỡ cấu trúc hệ thống

5 Giao diện thân thiện, màu sắc đa dạng và rõ nét Tiện dụng

Giao diện dễ dàng cho người dùng sử dụng và tạo cảm giác hiện đại

6 Thao tác dễ dùng Tiện dụng Các thao tác đơn giản, gần gũi với người dùng

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU

2.1.1 Lược đồ chức năng tổng quan

Hình 2.1: Lược đồ chức năng

2.1.2.1 Chức năng quản lý thông tin cá nhân

Hình 2.2: Chức năng quản lý thông tin cá nhân

2.1.2.2 Chức năng quản lý tài liệu

Hình 2.3: Chức năng quản lý tài liệu

2.1.2.3 Chức năng quản lý người dùng

Hình 2.4: Chức năng quản lý người dùng

2.1.2.4 Chức năng quản lý danh mục

Hình 2.5: Chức năng quản lý danh mục

2.1.2.5 Chức năng quản lý lĩnh vực

Hình 2.6: Chức năng quản lý lĩnh vực

2.1.2.6 Chức năng quản lý trường

Hình 2.7: Chức năng quản lý trường

Bảng 2.1: Đặc tả chức năng đăng ký

Brief description Người dùng khách thực hiện đăng ký tài khoản mới

Pre-conditions Người dùng khách chưa có tài khoản và muốn tạo tài khoản mới

Post-conditions Người dùng khách tạo thành công tài khoản mới

1 Người dùng truy cập vào trang đăng ký

2 Người dùng nhập các thông tin yêu cầu

3 Người dùng nhấn nút Đăng ký

4 Hệ thống kiểm tra thông tin nhận vào

5 Hệ thống tạo tài khoản người dùng và thông báo đăng ký tài khoản thành công

4a Hệ thống phát hiện email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Extension point Người dùng nhấn Đăng nhập

Mật khẩu có độ dài tối thiểu là 8 ký tự

Tài khoản email đăng ký là tài khoản Gmail

Người dùng chỉ được đăng ký với vai trò sinh viên và giảng viên

Bảng 2.2: Đặc tả chức năng đăng nhập

Brief description Người dùng thực hiện đăng nhập vào hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã có tài khoản hợp lệ

Post-conditions Người dùng đăng nhập vào hệ thống thành công và thực hiện được

22 các chức năng theo phân quyền

1 Người dùng truy cập vào trang đăng nhập

2 Người dùng nhập email và mật khẩu

3 Người dùng nhấn Đăng nhập

4 Hệ thống xác thực thông tin đăng nhập

5 Người dùng đăng nhập thành công vào hệ thống

4a Hệ thống không thể xác thực thông tin đăng nhập

4a1 Hệ thống hiển thị thông báo lỗi thông tin đăng nhập chưa chính xác

4a2 Use case quay lại bước 2 của Basic flows

1 Người dùng nhấn Đăng ký

2 Người dùng nhấn Quên mật khẩu

Bảng 2.3: Đặc tả chức năng đăng xuất

Brief description Người dùng thực hiện đăng xuất ra khỏi hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đăng xuất thành công khỏi hệ thống

1 Người dùng nhấn nút Đăng xuất

2 Hệ thống hiển thị thông báo xác nhận việc đăng xuất của người dùng

4 Hệ thống kết thúc phiên người dùng và đưa người dùng quay lại trang đăng nhập

3a Người dùng huỷ bỏ đăng xuất

3a1 Người dùng chọn huỷ bỏ

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu

Name Lấy lại mật khẩu

Brief description Người dùng muốn lấy lại mật khẩu đã quên

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã có tài khoản hợp lệ trên hệ thống

Post-conditions Người dùng đổi được mật khẩu thành công

1 Người dùng nhấn Quên mật khẩu

2 Người dùng nhập email của tài khoản muốn lấy lại mật khẩu

3 Người dùng nhấn Lấy mã

4 Hệ thống kiểm tra email và tài khoản trong cơ sở dữ liệu

5 Hệ thống gửi mã xác nhận qua email

6 Người dùng nhập mã xác nhận

7 Người dùng nhấn Xác nhận

8 Hệ thống kiểm tra mã xác nhận

9 Hệ thống hiển thị ô nhập mật khẩu mới và mật khẩu xác nhận

10 Người dùng nhập mật khẩu mới và mật khẩu xác nhận

11 Người dùng nhấn Đổi mật khẩu

12.Hệ thống kiểm tra mật khẩu mới và mật khẩu xác nhận nhận được

13 Hệ thống thông báo đổi mật khẩu thành công

4a Hệ thống phát hiện email nhận được chưa được đăng ký 4a1 Hệ thống thông báo email chưa được đăng ký

4a2 Use case quay lại bước 2 của Basic flows 8a Hệ thống kiểm tra thấy mã xác nhận người dùng nhập vào không đúng

8a1 Hệ thống thông báo sai mã xác nhận

8a2 Use case quay lại bước 6 của Basic flows

Extension point Người dùng nhấn Đăng nhập

Bảng 2.5: Đặc tả chức năng đổi mật khẩu

Brief description Người dùng muốn đổi mật khẩu

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đăng nhập thành công vào hệ thống

Post-conditions Người dùng đổi mật khẩu thành công

1 Người dùng nhấn Trang cá nhân

2 Người dùng nhập mật khẩu hiện tại, mật khẩu mới, mật khẩu xác nhận

3 Người dùng nhấn Đổi mật khẩu

4 Hệ thống kiểm tra mật khẩu người dùng nhập vào

5 Hệ thống lưu mật khẩu mới và thông báo cập nhật mật khẩu thành công

4a Hệ thống kiểm tra thấy mật khẩu hiện tại không đúng 4a1 Hệ thống thông báo mật khẩu hiện tại không đúng 4a2 Use case quay lại bước 1 của Basic flows

2.2.6 Xem thông tin cá nhân

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân

Name Xem thông tin cá nhân

Brief description Người dùng xem thông tin cá nhân của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng xem được thông tin cá nhân

1 Người dùng nhấn Trang cá nhân

2 Hệ thống hiển thị thông tin cá nhân của người dùng Alternative flows

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

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân

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

Brief description Người dùng cập nhật thông tin cá nhân của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng cập nhật thành công thông tin cá nhân

1 Người dùng nhấn Trang cá nhân

2 Người dùng thay đổi các thông tin cần thiết

4 Hệ thống kiểm tra thông tin nhập vào

5 Hệ thống lưu thay đổi, thông báo cập nhật thông tin cá nhân thành công và hiển thị trang cá nhân mới

4a Hệ thống kiểm tra thấy email người dùng vừa chỉnh sửa đã được đăng ký

4a1 Hệ thống thông báo email đã được đăng ký trước đó

4a2 Use case quay lại bước 2 của Basic flows

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện

Name Đổi ảnh đại diện

Brief description Người dùng đổi ảnh đại diện cho tài khoản của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đổi ảnh đại diện thành công

1 Người dùng nhấn Trang cá nhân

2 Người dùng nhấn Chọn ảnh

3 Người dùng chọn ảnh từ thiết bị

5 Hệ thống tải và lưu ảnh đại diện, thông báo cập nhật thành công và hiển thị ảnh đại diện mới mới

Bảng 2.9: Đặc tả chức năng đọc tài liệu

Brief description Người dùng đọc tài liệu

Actor Người dùng khách, sinh viên

Post- conditions Người dùng đọc được tài liệu mà mình muốn

1 Người dùng truy cập danh sách tài liệu

2 Người dùng nhấp vào một tài liệu mà mình muốn đọc

3 Hệ thống hiển thị chi tiết tài liệu, trong đó nội dung tài liệu được hiển thị bằng trình xem PDF

Business rules Sinh viên chỉ đọc được những tài liệu công khai và tài liệu nội bộ của trường

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu

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

Brief description Người dùng tìm kiếm tài liệu

Actor Sinh viên, quản lý, admin

Post-conditions Người dùng tìm được các tài liệu mong muốn

1 Người dùng nhập từ khoá vào ô tìm kiếm trên trang web

2 Người dùng nhấn phím Enter hoặc biểu tượng tìm kiếm

3 Hệ thống tìm kiếm và hiển thị các tài liệu liên quan đến từ khoá nhận được

3a Hệ thống không thể tìm thấy được tài liệu nào phù hợp

3a1 Hệ thống hiển thị thông báo không tìm thấy tài liệu phù hợp 3a2 Use case kết thúc

Bảng 2.11: Đặc tả chức năng lọc tài liệu

Brief description Người dùng lọc tài liệu theo tiêu chí

Actor Người dùng khách, sinh viên

Post-conditions Người dùng thực hiện thao tác lọc để tìm ra các tài liệu thoả tiêu chí

1 Người dùng truy cập danh sách tài liệu

2 Người dùng chọn các tiêu chí lọc

3 Hệ thống tìm kiếm và hiển thị các tài liệu phù hợp với các tiêu chí lọc

3a Hệ thống không thể tìm thấy được tài liệu nào phù hợp

3a1 Hệ thống hiển thị thông báo không tìm thấy tài liệu phù hợp 3a2 Use case kết thúc

Bảng 2.12: Đặc tả chức năng thích tài liệu

Brief description Người dùng thêm tài liệu vào danh sách yêu thích

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa thích tài liệu dự định sẽ thích

Post-conditions Người dùng thêm tài liệu vào danh sách yêu thích thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng nhấn vào biểu tượng thích

3 Hệ thống thông báo đã thích tài liệu và tăng lượt thích lên

2a Người dùng muốn bỏ thích tài liệu

2a1 Người dùng nhấn vào biểu tượng thích

2a2 Hệ thống thông báo đã bỏ thích tài liệu và giảm lượt thích xuống

Bảng 2.13: Đặc tả chức năng lưu tài liệu

Brief description Người dùng thêm tài liệu vào danh sách đã lưu

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa lưu tài liệu dự định sẽ lưu

Post- conditions Người dùng thêm tài liệu vào danh sách đã lưu thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng nhấn vào biểu tượng lưu

3 Hệ thống thông báo đã lưu tài liệu

2a Người dùng muốn bỏ lưu tài liệu

2a1 Người dùng nhấn vào biểu tượng lưu

2a2 Hệ thống thông báo đã bỏ lưu tài liệu

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu

Name Đánh giá tài liệu

Brief description Người dùng đánh giá tài liệu

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa đánh giá tài liệu dự định sẽ đánh giá

Post-conditions Người dùng đánh giá tài liệu thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng chọn số sao và nhập lời đánh giá

4 Hệ thống kiểm tra thông tin nhận được

5 Hệ thống lưu lại đánh giá, cập nhật danh sách đánh giá và hiển thị thông báo đánh giá thành công

Bảng 2.15: Đặc tả chức năng đăng tài liệu

Brief description Người dùng đăng tải một tài liệu mới lên hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đăng tải thành công tài liệu lên hệ thống

1 Người dùng nhấn Tải lên/Thêm tài liệu

2 Người dùng nhập các thông tin được yêu cầu, chọn danh mục, lĩnh vực, chọn tệp tài liệu

3 Người dùng nhấn Tải lên

4 Hệ thống kiểm tra thông tin về tài liệu

5 Hệ thống lưu tài liệu và thông báo đã thêm tài liệu thành công

2a Người dùng có vai trò là admin

2a1 Người dùng nhập các thông tin được yêu cầu, chọn danh mục, lĩnh vực, chọn tệp tài liệu

2a2 Use case tiếp tục ở bước 3 của Basic flows

5a Người dùng có vai trò sinh viên

5a1 Hệ thống lưu tài liệu, thông báo đã thêm tài liệu thành công và đang đợi duyệt, chuyển tài liệu đang đợi đến quản lý và admin 5a2 Use case kết thúc

1 Sinh viên, quản lý sẽ tải tài liệu lên trường của mình

2 Quản lý và admin phê duyệt tài liệu do sinh viên tải lên

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu

Name Chỉnh sửa tài liệu

Brief description Người dùng chỉnh sửa tài liệu

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng chỉnh sửa tài liệu thành công

1 Người dùng truy cập vào danh sách tài liệu

2 Người dùng nhấn Chỉnh sửa bên cạnh tài liệu

3 Người dùng chỉnh sửa các thông tin cần thiết cũng như tệp tài liệu

4 Hệ thống kiểm tra thông tin về tài liệu

5 Hệ thống lưu tài liệu và thông báo đã chỉnh sửa tài liệu thành công

5a Người dùng có vai trò sinh viên

5a1 Hệ thống lưu lại tài liệu, thông báo đã chỉnh sửa tài liệu thành công và đang đợi duyệt, chuyển tài liệu đang đợi đến quản lý và admin

1 Sinh viên chỉnh sửa tài liệu thì tài liệu sẽ đưa về trạng thái chờ duyệt

2 Quản lý thực hiện chỉnh sửa các tài liệu thuộc trường mà mình quản lý

Bảng 2.17: Đặc tả chức năng xoá tài liệu

Brief description Người dùng muốn xoá một tài liệu

Pre-conditions Người dùng đăng nhập thành công vào hệ thống

Post-conditions Người dùng xoá tài liệu thành công

1 Người dùng truy cập danh sách tài liệu

2 Người dùng nhấn Xoá bên cạnh tài liệu

3 Hệ thống hiển thị xác nhận xoá tài liệu

5 Hệ thống xoá tài liệu, hiển thị thông báo xoá thành công và cập nhật lại danh sách tài liệu

4a Người dùng huỷ bỏ xoá tài liệu

4a1 Người dùng chọn Huỷ bỏ

Bảng 2.18: Đặc tả chức năng thêm người dùng

Brief description Người dùng thêm người dùng mới trên hệ thống

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng thêm người dùng mới thành công

1 Người dùng nhấn Thêm người dùng

2 Người dùng nhập các thông tin được yêu cầu cho người dùng mới

4 Hệ thống kiểm tra thông tin nhận vào

5 Hệ thống lưu người dùng mới, sau đó hiển thị thông báo thêm người dùng thành công

2a Người dùng có vai trò admin

2a1 Người dùng nhập các thông tin được yêu cầu và chọn trường cho người dùng mới

2a2 Use case tiếp tục ở bước 3 của Basic flows

4a Hệ thống kiểm tra thấy email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Mật khẩu có độ dài tối thiểu là 8 ký tự

Quản lý thực hiện thêm người dùng thuộc trường của mình

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng

Use case Chỉnh sửa người dùng

Brief description Người dùng chỉnh sửa thông tin của người dùng khác trên hệ thống

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người chỉnh sửa thành công thông tin thông tin của người dùng khác

1 Người dùng truy cập vào danh sách người dùng do mình quản lý

2 Người dùng nhấn Chỉnh sửa bên cạnh tài khoản của người dùng muốn chỉnh sửa

3 Người dùng chỉnh sửa các thông tin cần thiết của người dùng

5 Hệ thống lưu lại thay đổi và hiển thị thông báo chỉnh sửa người dùng thành công

Alternative flows 2a Người dùng có vai trò admin

2a1 Người dùng chỉnh sửa các thông tin của người dùng và chọn trường cho người dùng (nếu muốn)

2a2 Use case tiếp tục ở bước 3 của Basic flows

4a Hệ thống kiểm tra thấy email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Mật khẩu có độ dài tối thiểu là 8 ký tự

Quản lý thực hiện chỉnh sửa người dùng thuộc trường của mình

Bảng 2.20: Đặc tả chức năng xoá người dùng

Người dùng xoá một người dùng khác

Pre-conditions Người đã đăng nhập thành công vào hệ thống

Người dùng xoá thành công một người dùng khác

1 Người dùng truy cập vào danh sách người dùng mà mình quản lý

2 Người dùng nhấn Xoá bên cạnh tài khoản của người dùng muốn xoá

3 Hệ thống hiển thị cảnh báo xác nhận xoá người dùng

5 Hệ thống xoá người dùng, hiển thị thông báo xoá người dùng thành công và cập nhật lại danh sách người dùng

4a Người dùng huỷ bỏ việc xoá người dùng khác

4a1 Người dùng chọn Huỷ bỏ

4a2 Use case kết thúc 5a: Hệ thống kiểm tra thấy người dùng đã đăng tải tài liệu lên

5a1 Hệ thống vô hiệu hoá tài khoản người dùng, hiển thị thông báo vô hiệu hoá tài khoản người dùng và cập nhật lại danh sách người dùng

Business rules Quản lý thực hiện xoá người dùng thuộc trường mà mình quản lý

Bảng 2.21: Đặc tả chức năng xoá đánh giá

Brief description Người dùng xoá đánh giá vi phạm của tài liệu

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng xoá đánh giá thành công

1 Người dùng truy cập vào danh sách đánh giá của các tài liệu thuộc trường mà mình quản lý

2 Người dùng nhấn Xoá bên cạnh đánh giá

3 Hệ thống hiển thị cảnh báo xác nhận xoá đánh giá

5 Hệ thống xoá đánh giá, hiển thị thông báo xoá đánh giá thành công và cập nhật lại danh sách đánh giá

4a Người dùng huỷ bỏ việc xoá đánh giá

4a1 Người dùng chọn Huỷ bỏ

Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu

Name Phê duyệt tài liệu

Brief description Người dùng phê duyệt tài liệu do sinh viên tải lên

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng phê duyệt tài liệu thành công

1 Người dùng truy cập vào danh sách tài liệu đang chờ phê duyệt do mình quản lý

2 Người dùng nhấn Phê duyệt

3 Hệ thống hiển thị thông báo yêu cầu chọn hành động

4 Người dùng chọn Chấp nhận

THIẾT KẾ PHẦN MỀM

Lược đồ lớp

4 Chương 4: Kiến trúc hệ thống

4.2 Các công nghệ được sử dụng

5 Chương 5: Thiết kế giao diện và xử lý

5.1 Sinh viên và người dùng khách

6 Chương 6: Cài đặt và kiểm thử

STT Thời gian Công việc Ghi chú

1 28/2/2024-6/3/2024 Tham khảo, xác định đề tài

2 6/3/2024-13/4/2024 Khảo sát, phân tích và xác định các yêu cầu của đề tài

3 13/3/2024-20/3/2024 Xây dựng lược đồ chức năng, đặc tả chức năng

4 20/3/2024- 27/3/2024 Xây dựng lược đồ tuần tự

5 27/3/2024- 3/4/2024 Thiết kế giao diện phần sinh viên và người dùng khách

6 3/4/2024 – 10/4/2024 Thiết kế và xây dựng cơ sở dữ liệu

8 17/4/2024-24/4/2024 Kết nối giao diện và back-end cho sinh viên và người dùng khách

9 24/4/2024-1/5/2024 Thiết kế giao diện phần quản lý và admin

10 1/5/2024 – 8/5/2024 Kết nối giao diện và back-end cho quản lý và admin

11 8/5/2024 -15/5/2024 Hoàn thiện các chức năng và bổ sung các chức năng bị thiếu

12 15/5/2024 – 22/5/2024 Kiểm thử lại trang web, sửa chữa lỗi

15 5/6/2024 – 28/6/2024 Chỉnh sửa báo cáo và làm

Vu Hoang Anh Ý kiến của giáo viên hướng dẫn

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC ĐÍCH CỦA ĐỀ TÀI 1

CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 3

1.2 Khảo sát một số phần mềm 3

1.3 Phân tích yêu cầu của dự án 8

1.4 Yêu cầu chức năng nghiệp vụ 10

1.5 Danh sách yêu cầu chức năng nghiệp vụ 11

1.6 Danh sách yêu cầu chức năng hệ thống 14

1.7 Danh sách yêu cầu phi chức năng 15

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU 17

2.1.1 Lược đồ chức năng tổng quan 17

2.2.6 Xem thông tin cá nhân 26

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

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 59

3.1.6 Xem thông tin cá nhân 63

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

CHƯƠNG 4: KIẾN TRÚC HỆ THỐNG 90

4.1.2 Tương tác và giao tiếp giữa các thành phần 91

4.2 Các công nghệ và thư viện được sử dụng 91

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 117

5.1 Sinh viên và người dùng khách 117

5.1.9 Danh sách tài liệu chính 126

5.1.10 Danh sách tài liệu đã thích 128

5.1.11 Danh sách tài liệu đã lưu 129

5.1.12 Danh sách tài liệu đã tải lên đã được duyệt 130

5.1.13 Danh sách tài liệu đã tải lên đang đợi duyệt 131

5.1.14 Danh sách tài liệu đã tải lên bị từ chối 131

5.1.17 Danh sách tài liệu của một người 135

5.2.27 Danh sách tài liệu đang chờ 175

CHƯƠNG 6 CÀI ĐẶT, DEPLOY VÀ KIỂM THỬ 180

6.1.2 Cài đặt với docker compose 180

DANH MỤC TÀI LIỆU THAM KHẢO 188

Hình 1.1: Trang chủ Studocu 4

Hình 1.2: Danh sách tài liệu theo trường học 4

Hình 1.3: Xem chi tiết tài liệu 5

Hình 1.4: Tải tài liệu lên 5

Hình 1.5: Trang chủ thư viện số HCMUTE 6

Hình 1.6: Chi tiết tài liệu 7

Hình 1.7: Tải tài liệu 7

Hình 2.1: Lược đồ chức năng 17

Hình 2.2: Chức năng quản lý thông tin cá nhân 17

Hình 2.3: Chức năng quản lý tài liệu 18

Hình 2.4: Chức năng quản lý người dùng 18

Hình 2.5: Chức năng quản lý danh mục 19

Hình 2.6: Chức năng quản lý lĩnh vực 19

Hình 2.7: Chức năng quản lý trường 20

Hình 3.1: Lược đồ tuần tự chức năng đăng ký 59

Hình 3.2: Lược đồ tuần tự chức năng đăng nhập 60

Hình 3.3: Lược đồ tuần tự chức năng đăng xuất 60

Hình 3.4: Lược đồ tuần tự chức năng lấy lại mật khẩu 61

Hình 3.5: Lược đồ tuần tự chức năng đổi mật khẩu 62

Hình 3.6: Lược đồ tuần tự chức năng xem thông tin cá nhân 63

Hình 3.7: Lược đồ tuần tự chức năng cập nhật thông tin cá nhân 64

Hình 3.8: Lược đồ tuần tự chức năng đổi ảnh đại diện 65

Hình 3.9: Lược đồ tuần tự chức năng đọc tài liệu 65

Hình 3.10: Lược đồ tuần tự chức năng tìm kiếm tài liệu 66

Hình 3.11: Lược đồ tuần tự chức năng lọc tài liệu 66

Hình 3.12: Lược đồ tuần tự chức năng thích tài liệu 67

Hình 3.13: Lược đồ tuần tự chức năng lưu tài liệu 67

Hình 3.14: Lược đồ tuần tự chức năng đánh giá tài liệu 68

Hình 3.15: Lược đồ tuần tự chức năng đăng tài liệu 69

Hình 3.16: Lược đồ tuần tự chức năng chỉnh sửa tài liệu 70

Hình 3.17: Lược đồ tuần tự chức năng xoá tài liệu 71

Hình 3.18: Lược đồ tuần tự chức năng thêm người dùng 72

Hình 3.19: Lược đồ tuần tự chức năng chỉnh sửa người dùng 73

Hình 3.20: Lược đồ tuần tự chức năng xoá người dùng 74

Hình 3.21: Lược đồ tuần tự chức năng xoá đánh giá 75

Hình 3.22: Lược đồ tuần tự chức năng phê duyệt tài liệu 76

Hình 3.23: Lược đồ tuần tự chức năng thêm trường 77

Hình 3.24: Lược đồ tuần tự chức năng chỉnh sửa trường 78

Hình 3.25: Lược đồ tuần tự chức năng xoá trường 79

Hình 3.26: Lược đồ tuần tự chức năng kích hoạt trường 80

Hình 3.27: Lược đồ tuần tự chức năng thêm danh mục 81

Hình 3.28: Lược đồ tuần tự chức năng chỉnh sửa danh mục 82

Hình 3.29: Lược đồ tuần tự chức năng xoá danh mục 83

Hình 3.30: Lược đồ tuần tự chức năng kích hoạt danh mục 84

Hình 3.31: Lược đồ tuần tự chức năng thêm lĩnh vực 85

Hình 3.32: Lược đồ tuần tự chức năng chỉnh sửa lĩnh vực 86

Hình 3.33: Lược đồ tuần tự chức năng xoá lĩnh vực 87

Hình 3.34: Lược đồ tuần tự chức năng kích hoạt lĩnh vực 88

Hình 3.35: Lược đồ tuần tự chức năng thống kê 88

Hình 3.36: Lược đồ lớp của hệ thống 89

Hình 4.1: Kiến trúc tổng quan của hệ thống 90

Hình 4.2: Cấu trúc dự án Spring Boot đơn giản 92

Hình 4.3: Tạo dự án Spring Boot với Maven 93

Hình 4.4: Khai báo dependency trong pom.xml 94

Hình 4.5: Controller trong Spring Boot 94

Hình 4.6: Spring Boot và Tomcat 95

Hình 4.7: Thêm dependency Spring Security vào dự án 96

Hình 4.8: Cấu hình Filter Chain 97

Hình 4.9: Cấu hình xác thực 97

Hình 4.10: Thêm JWT Filter vào SecurityFilterChain 98

Hình 4.12: Tạo và trả JWT khi login 99

Hình 4.13: Repository interface trong Spring Data JPA 100

Hình 4.14: Truy vấn query tuỳ chỉnh 100

Hình 4.15: Thêm dependency của Spring Data JPA 101

Hình 4.16: Cấu hình kết nối MySQL trong application.yml 101

Hình 4.17: Tạo các entity classes 102

Hình 4.18: Kiến trúc ReactJS 103

Hình 4.19: Cấu trúc thư mục ReactJS 103

Hình 4.22: Minh hoạ tệp JSX 106

Hình 4.23: Ví dụ về useState 106

Hình 4.24: Ví dụ về useEffect 107

Hình 4.25: Chuyển hướng với useNavigate 107

Hình 4.26: Lấy đường dẫn hiện tại bằng useLocation 108

Hình 4.27: Truy xuất tham số từ URL với useParams 108

Hình 4.28: Minh hoạ props 108

Hình 4.29: Axios trong package.json 109

Hình 4.30: Sử dụng axios để gửi yêu cầu GET lấy tất cả danh mục 109

Hình 4.31: Tạo dự án Google Cloud 110

Hình 4.32: Giao diện APIs & Services 111

Hình 4.33: Kích hoạt Google Drive API 111

Hình 4.34: Giao diện Credentials để tạo service account 112

Hình 4.35: Tạo service account 112

Hình 4.37: Google Drive API dependency 113

Hình 4.38: Cấu hình Bean cho Google Drive API 114

Hình 4.39: Xoá tệp bằng Google Drive API 114

Hình 4.40: Tải lên tệp bằng Google Drive API 114

Hình 4.41: Kiến trúc của MySQL 115

Hình 4.42: Sử dụng MySQL thiết kế cơ sở dữ liệu 116

Hình 5.1: Giao diện trang chủ 117

Hình 5.2: Giao diện đăng nhập 118

Hình 5.3: Giao diện đăng ký 119

Hình 5.4: Giao diện quên mật khẩu 120

Hình 5.5: Giao diện thanh trên 121

Hình 5.6: Giao diện thanh bên 122

Hình 5.7: Giao diện thông tin cá nhân 123

Hình 5.8: Giao diện chi tiết tài liệu 125

Hình 5.9: Giao diện danh sách tài liệu chính 127

Hình 5.10: Giao diện danh sách tài liệu đã thích 128

Hình 5.11: Giao diện danh sách tài liệu đã lưu 129

Hình 5.12: Giao diện danh sách tài liệu tải lên đã được duyệt 130

Hình 5.13: Giao diện danh sách tài liệu tải lên đang đợi duyệt 131

Hình 5.14: Giao diện danh sách tài liệu tải lên bị từ chối 132

Hình 5.15: Giao diện đăng tài liệu 133

Hình 5.16: Giao diện chỉnh sửa tài liệu 134

Hình 5.17: Giao diện danh sách tài liệu của một người 136

Hình 5.18: Giao diện đăng nhập 137

Hình 5.19: Giao diện quên mật khẩu 138

Hình 5.20: Giao diện thông tin cá nhân 140

Hình 5.21: Giao diện trang chủ quản trị 143

Hình 5.22: Giao diện danh sách tài liệu 144

Hình 5.23: Giao diện chi tiết tài liệu 146

Hình 5.24: Giao diện thêm tài liệu 147

Hình 5.25: Giao diện chỉnh sửa tài liệu 149

Hình 5.26: Giao diện xoá tài liệu 150

Hình 5.27: Giao diện danh sách danh mục 151

Hình 5.28: Giao diện thêm danh mục 153

Hình 5.29: Giao diện chỉnh sửa danh mục 154

Hình 5.30: Giao diện xoá danh mục 155

Hình 5.31: Giao diện danh sách lĩnh vực 156

Hình 5.32: Giao diện thêm lĩnh vực 158

Hình 5.33: Giao diện chỉnh sửa lĩnh vực 159

Hình 5.34: Giao diện xoá lĩnh vực 160

Hình 5.35: Giao diện danh sách trường 161

Hình 5.36: Giao diện thêm trường 163

Hình 5.37: Giao diện chỉnh sửa trường 164

Hình 5.38: Giao diện chỉnh sửa trường 165

Hình 5.39: Giao diện danh sách người dùng 166

Hình 5.40: Giao diện chi tiết người dùng 168

Hình 5.41: Giao diện thêm người dùng 170

Hình 5.42: Giao diện chỉnh sửa người dùng 172

Hình 5.43: Giao diện xoá người dùng 174

Hình 5.44: Giao diện danh sách tài liệu đang chờ 175

Hình 5.45: Giao diện phê duyệt tài liệu 176

Hình 5.46: Giao diện từ chối tài liệu 177

Hình 5.47: Giao diện danh sách đánh giá 178

Hình 5.48: Giao diện xoá đánh giá 179

Bảng 1.1: Nhận xét trang web Studocu 5

Bảng 1.2: Nhận xét thư viện số HCMUTE 7

Bảng 1.3: Danh sách chức năng chính 8

Bảng 1.4: Yêu cầu chức năng quản lý thông tin cá nhân 11

Bảng 1.5: Yêu cầu chức năng quản lý người dùng 12

Bảng 1.6: Yêu cầu chức năng quản lý tài liệu 12

Bảng 1.7: Yêu cầu chức năng quản lý danh mục 13

Bảng 1.8: Yêu cầu chức năng quản lý lĩnh vực 13

Bảng 1.9: Yêu cầu chức năng quản lý trường 14

Bảng 1.10: Yêu cầu chức năng quản lý đánh giá 14

Bảng 1.11: Danh sách yêu cầu chức năng hệ thống 14

Bảng 1.12: Danh sách yêu cầu phi chức năng 15

Bảng 2.1: Đặc tả chức năng đăng ký 20

Bảng 2.2: Đặc tả chức năng đăng nhập 21

Bảng 2.3: Đặc tả chức năng đăng xuất 22

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu 23

Bảng 2.5: Đặc tả chức năng đổi mật khẩu 25

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân 26

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân 27

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện 28

Bảng 2.9: Đặc tả chức năng đọc tài liệu 29

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu 30

Bảng 2.11: Đặc tả chức năng lọc tài liệu 31

Bảng 2.12: Đặc tả chức năng thích tài liệu 32

Bảng 2.13: Đặc tả chức năng lưu tài liệu 33

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu 34

Bảng 2.15: Đặc tả chức năng đăng tài liệu 35

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu 36

Bảng 2.17: Đặc tả chức năng xoá tài liệu 37

Bảng 2.18: Đặc tả chức năng thêm người dùng 38

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng 40Bảng 2.20: Đặc tả chức năng xoá người dùng 41Bảng 2.21: Đặc tả chức năng xoá đánh giá 43Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu 44Bảng 2.23: Đặc tả chức năng thêm trường 45Bảng 2.24: Đặc tả chức năng chỉnh sửa trường 46Bảng 2.25: Đặc tả chức năng xoá trường 47Bảng 2.26: Đặc tả chức năng kích hoạt trường 48Bảng 2.27: Đặc tả chức năng thêm danh mục 49Bảng 2.28: Đặc tả chức năng chỉnh sửa danh mục 50Bảng 2.29: Đặc tả chức năng xoá danh mục 51Bảng 2.30: Đặc tả chức năng kích hoạt lĩnh vực 53Bảng 2.31: Đặc tả chức năng thêm lĩnh vực 54Bảng 2.32: Đặc tả chức năng chỉnh sửa lĩnh vực 55Bảng 2.33: Đặc tả chức năng xoá lĩnh vực 56Bảng 2.34: Đặc tả chức năng kích hoạt lĩnh vực 57Bảng 2.35: Đặc tả chức năng thống kê 58Bảng 5.1: Bảng mô tả giao diện trang chủ 117Bảng 5.2: Bảng mô tả giao diện đăng nhập 118Bảng 5.3: Bảng mô tả giao diện đăng ký 119Bảng 5.4: Bảng mô tả giao diện quên mật khẩu 120Bảng 5.5: Bảng mô tả giao diện thanh trên 121Bảng 5.6: Bảng mô tả giao diện thanh bên 122Bảng 5.7: Bảng mô tả giao diện thông tin cá nhân 123Bảng 5.8: Bảng mô tả giao diện chi tiết tài liệu 125Bảng 5.9: Bảng mô tả giao diện danh sách tài liệu chính 127Bảng 5.10: Bảng mô tả giao diện danh sách tài liệu đã thích 128Bảng 5.11: Bảng mô tả giao diện danh sách tài liệu đã lưu 129Bảng 5.12: Bảng mô tả giao diện danh sách tài liệu tải lên đã được duyệt 130Bảng 5.13: Bảng mô tả giao diện danh sách tài liệu tải lên đang đợi duyệt 131Bảng 5.14: Bảng mô tả giao diện danh sách tài liệu tải lên bị từ chối 132Bảng 5.15: Bảng mô tả giao diện đăng tài liệu 133

Bảng 5.16: Bảng mô tả giao diện chỉnh sửa tài liệu 135Bảng 5.17: Bảng mô tả giao diện danh sách tài liệu của một người 136Bảng 5.18: Bảng mô tả giao diện đăng nhập 137Bảng 5.19: Bảng mô tả giao diện quên mật khẩu 138Bảng 5.20: Bảng mô tả giao diện thông tin cá nhân 141Bảng 5.21: Bảng mô tả giao diện trang chủ quản trị 143Bảng 5.22: Bảng mô tả giao diện danh sách tài liệu 145Bảng 5.23: Bảng mô tả giao diện chi tiết tài liệu 146Bảng 5.24: Bảng mô tả giao diện thêm tài liệu 148Bảng 5.25: Bảng mô tả giao diện chỉnh sửa tài liệu 149Bảng 5.26: Bảng mô tả giao diện xoá tài liệu 150Bảng 5.27: Bảng mô tả giao diện danh sách danh mục 151Bảng 5.28: Bảng mô tả giao diện thêm danh mục 153Bảng 5.29: Bảng mô tả giao diện chỉnh sửa danh mục 154Bảng 5.30: Bảng mô tả giao diện xoá danh mục 155Bảng 5.31: Bảng mô tả giao diện danh sách lĩnh vực 156Bảng 5.32: Bảng mô tả giao diện thêm lĩnh vực 158Bảng 5.33: Bảng mô tả giao diện chỉnh sửa lĩnh vực 159Bảng 5.34: Bảng mô tả giao diện xoá lĩnh vực 160Bảng 5.35: Bảng mô tả giao diện danh sách trường 161Bảng 5.36: Bảng mô tả giao diện thêm trường 163Bảng 5.37: Bảng mô tả giao diện chỉnh sửa trường 164Bảng 5.38: Bảng mô tả giao diện xoá trường 165Bảng 5.39: Bảng mô tả giao diện danh sách người dùng 166Bảng 5.40: Bảng mô tả giao diện chi tiết người dùng 168Bảng 5.41: Bảng mô tả giao diện thêm người dùng 171Bảng 5.42: Bảng mô tả giao diện chỉnh sửa người dùng 173Bảng 5.43: Bảng mô tả giao diện xoá người dùng 174Bảng 5.44: Bảng mô tả giao diện danh sách tài liệu đang chờ 175Bảng 5.45: Bảng mô tả giao diện phê duyệt tài liệu 176Bảng 5.46: Bảng mô tả giao diện từ chối tài liệu 177Bảng 5.47: Bảng mô tả giao diện danh sách đánh giá 178

Bảng 5.48: Bảng mô tả giao diện xoá đánh giá 179Bảng 6.1: Sản phẩm deploy 180Bảng 6.2: Lịch trình công việc 181Bảng 6.3: Chiến lược kiểm thử 182Bảng 6.4: Kết quả kiểm thử 183

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại ngày nay, công nghệ thông tin đã và đang phát triển nhanh chóng, mạnh mẽ trong tất cả các lĩnh vực đời sống Từ những bước tiến vượt bậc trong lĩnh vực máy tính, mạng lưới, đến sự bùng nổ của Internet và sự xuất hiện của trí tuệ nhân tạo, công nghệ thông tin dần chuyển đổi cách con người sống, làm việc và tương tác với nhau Đặc biệt, nó đã mở ra nhiều cơ hội mới trong việc chia sẻ và truy cập thông tin Giờ đây, con người có thể tiếp cận và sử dụng nguồn tài nguyên trên mạng từ xa, không giới hạn thời gian và địa điểm Điều này cũng mở ra tương lai cho các dịch vụ lưu trữ và cung cấp tài nguyên đến cho người dùng trực tuyến

Lĩnh vực giáo dục cũng chứng kiến sự thay đổi mạnh mẽ dưới tác động của công nghệ Các mô hình giảng dạy và học tập truyền thống dần dần chuyển đổi sang môi trường máy tính và trực tuyến Kèm theo đó là nhu cầu cho việc sử dụng các nguồn tài nguyên học tập tăng lên một cách mạnh mẽ Nếu như trước kia, khi muốn tìm hiểu và học tập về một nội dung, lĩnh vực nào đó, sinh viên sẽ cần phải có một bản tài liệu hoặc một cuốn sách bằng giấy Tuy nhiên, ngày nay, sinh viên hầu như có thể truy cập mạng Internet để tìm và sử dụng các tài liệu đó Điều này vừa tạo sự tiện lợi cho người học cũng như cung cấp khả năng tiếp cận kho tài liệu phong phú Tuy nhiên, việc học tập là không giới hạn ở chỉ mỗi một trường đại học Mỗi trường đại học sẽ có một nguồn tài liệu bổ ích và quý giá khác nhau Do đó, em nghĩ đến ý tưởng tạo một trang web tổng hợp và phân loại tài liệu theo các trường đại học, cao đẳng nhằm cung cấp một nguồn tài nguyên phong phú và bổ ích đến các sinh viên

Xuất phát từ ý tưởng đó, em xin thực hiện đề tài Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài này là tạo nên một trang web diễn đàn cung cấp một kho tài liệu bổ ích và phong phú đến cho sinh viên, giúp cho sinh viên tiếp cận tài liệu học tập một cách tiện lợi và hiệu quả

- Đối tượng nghiên cứu Đề tài tập trung nghiên cứu những vấn đề sau:

 Các kỹ thuật phân tích thiết kế hệ thống

 Tìm hiểu về Spring Boot trên nền tảng Java để xây dựng API cho hệ thống

 Tìm hiểu về React để xây dựng giao diện người dùng

 Tìm hiểu về Google Drive API để lưu trữ tài liệu

Trong phạm vi của đề tài, nhóm chúng em tập trung nghiên cứu các chức năng cơ bản của một hệ thống quản lý tài liệu như truy cập tài liệu, tải lên, chỉnh sửa, xoá bỏ, phân loại

PHẦN NỘI DUNG CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 1.1 Phân tích hiện trạng

Ngày nay, Internet đã và đang phát triển một cách chóng mặt và trở nên rất phổ biến Sự tiện lợi mà Internet mang lại trong các lĩnh vực đời sống và xã hội là điều không thể phủ nhận Trong đó, nhu cầu sử dụng và truy cập nguồn tài liệu học tập trên Internet là rất là lớn Internet cung cấp một lượng tài liệu khổng lồ và cực kỳ đa dạng cho học sinh, sinh viên sử dụng Trong số đó, có hàng nghìn, hàng chục nghìn trang web chuyên về cung cấp tài liệu đến cho người học

Nhìn chung, các trang web cung cấp lượng tài liệu đa dạng ở nhiều lĩnh vực và thể loại khác nhau Tuy nhiên, điều này cũng đặt ra một số thách thức và vấn đề:

- Không phải tất cả các nguồn tài liệu trên Internet đều đảm bảo về chất lượng và tính tin cậy Có rất nhiều tài liệu không chính xác hoặc không được kiểm chứng một cách đầy đủ

- Một số trang web yêu cầu người sử dụng trả phí để có quyền truy cập đầy đủ nội dung

- Một số trang web chứa quảng cáo gây làm phiền và ảnh hưởng đến trải nghiệm người dùng

- Người học cần phải có kỹ năng tìm kiếm trên Internet để có thể tận dụng tối đa nguồn tài liệu

1.2 Khảo sát một số phần mềm

 Đường dẫn trang web: https://www.studocu.com/

Hình 0.1: Trang chủ Studocu

Hình 0.1.: Danh sách tài liệu theo trường học

Hình 0.3: Xem chi tiết tài liệu

Hình 0.4: Tải tài liệu lên

Bảng 0.1: Nhận xét trang web Studocu

- Tìm kiếm khoá học, sách, tài liệu

- Nguồn tài liệu chưa được kiểm soát chặt chẽ

- Tải lên và chia sẻ tài liệu

- Thích, bỏ thích, bình luận, lưu, chia sẻ lên mạng xã hội

- Đăng ký Premium để truy cập các tính năng như tài liệu nâng cao, tải, in tài liệu

 Đường dẫn trang web: https://thuvienso.hcmute.edu.vn/

Hình 0.5: Trang chủ thư viện số HCMUTE

Hình 0.7: Chi tiết tài liệu

Hình 0.8: Tải tài liệu

Bảng 0.1: Nhận xét thư viện số HCMUTE

- Tìm kiếm sách, tài liệu

- Chủ yếu là tài liệu liên quan đến Trường Đại học Sư phạm Kỹ thuật

- Tải lên và chia sẻ tài liệu

- Thích, bình chọn, bình luận, chia sẻ lên mạng xã hội

1.3 Phân tích yêu cầu của dự án

Xây dựng một trang web để chia sẻ tài liệu học tập cho sinh viên giữa các trường đại học, cao đẳng Người dùng có thể tìm đọc và chia sẻ tài liệu của mình với những người khác Ngoài ra, hệ thống còn được quản lý bởi admin và người quản lý nhằm kiểm soát nguồn tài liệu được chia sẻ Các chức năng chính của chương trình bao gồm:

Bảng 0.2.3.: Danh sách chức năng chính Đối tượng sử dụng Các chức năng thực hiện

Sinh viên Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đọc tài liệu

Tìm kiếm tài liệu Thích tài liệu Lưu tài liệu Đánh giá tài liệu

9 Đăng tài liệu Cập nhật tài liệu Xoá tài liệu

Quản lý Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu cho trường Cập nhật tài liệu của trường Xoá tài liệu của trường Thêm người dùng cho trường Cập nhật người dùng của trường Xoá người dùng của trường Xoá đánh giá của trường Phê duyệt tài liệu của trường

Admin Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu

Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu

Cập nhật tài liệu Xoá tài liệu Thêm người dùng Cập nhật người dùng Xoá người dùng Thêm trường Cập nhật trường Xoá trường Kích hoạt trường Thêm danh mục Cập nhật danh mục Xoá danh mục Kích hoạt danh mục Thêm lĩnh vực Cập nhật lĩnh vực Xoá lĩnh vực Kích hoạt lĩnh vực Phê duyệt tài liệu Thống kê

1.4 Yêu cầu chức năng nghiệp vụ

1.5 Danh sách yêu cầu chức năng nghiệp vụ

 Quản lý thông tin cá nhân

Bảng 0.2: Yêu cầu chức năng quản lý thông tin cá nhân

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin cá nhân Tra cứu

2 Cập nhật thông tin cá nhân Lưu trữ

Bảng 0.3: Yêu cầu chức năng quản lý người dùng

Bảng 0.4: Yêu cầu chức năng quản lý tài liệu

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin người dùng Tra cứu

2 Cập nhật thông tin người dùng Lưu trữ

3 Xoá người dùng Lưu trữ

4 Số lượng người dùng Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem tài liệu Tra cứu

2 Tìm kiếm tài liệu Tra cứu

3 Đăng tài liệu Lưu trữ

4 Cập nhật tài liệu Lưu trữ

5 Xoá tài liệu Lưu trữ

6 Thích tài liệu Lưu trữ

Bảng 0.5: Yêu cầu chức năng quản lý danh mục

Bảng 0.6: Yêu cầu chức năng quản lý lĩnh vực

7 Lưu tài liệu Lưu trữ

8 Đánh giá tài liệu Lưu trữ

9 Phê duyệt tài liệu Lưu trữ

10 Số lượng tài liệu Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem danh mục Tra cứu

2 Cập nhật danh mục Lưu trữ

3 Xoá danh mục Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem lĩnh vực Tra cứu

2 Cập nhật lĩnh vực Lưu trữ

3 Xoá lĩnh vực Lưu trữ

Bảng 0.7: Yêu cầu chức năng quản lý trường

Bảng 0.8: Yêu cầu chức năng quản lý đánh giá

1.6 Danh sách yêu cầu chức năng hệ thống

Bảng 0.9: Danh sách yêu cầu chức năng hệ thống

STT Nội dung Mô tả chi tiết Ghi chú

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

2 Cập nhật trường Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem đánh giá Tra cứu

2 Xoá đánh giá Lưu trữ

3 Đánh giá trung bình Tính toán

- Sinh viên: tìm kiếm, đọc tài liệu; thích, lưu, đánh giá tài liệu; đăng, cập nhật, xoá tài liệu

- Quản lý: đăng, cập nhật, xoá tài liệu của trường; thêm, cập nhật, xoá người dùng của trường; phê duyệt tài liệu của trường; xoá đánh giá của tài liệu thuộc trường

- Admin: đăng, cập nhật, xoá tài liệu; thêm, cập nhật, xoá người dùng; thêm, cập nhật, xoá, kích hoạt danh mục; thêm, cập nhật, xoá, kích hoạt lĩnh vực; thêm, cập nhật, xoá, kích hoạt trường; phê duyệt tài liệu; thống kê

Hệ thống đảm bảo tài nguyên và dịch vụ chỉ được truy cập được bởi những tác nhân và người dùng nhất định

Cơ sở dữ liệu được sao lưu định kỳ, mã nguồn có khả năng khôi phục sao lưu nhanh

4 Thông báo Thông báo cho người dùng khi cần thiết: hoạt động thành công, thất bại,…

1.7 Danh sách yêu cầu phi chức năng

Bảng 0.10: Danh sách yêu cầu phi chức năng

STT Nội dung Tiêu chuẩn Mô tả chi tiết

1 Tốc độ xử lý quá trình tương tác của người dùng Hiệu quả Có thể truy cập trực tuyến nhiều người cùng một lúc

2 Tốc độ tìm kiếm nhanh và chính xác Hiệu quả Tối đa 5s có kết quả tìm kiếm

Tiết kiệm thời gian, tối ưu được cơ sở dữ liệu, thu hẹp không gian, tránh mất dữ liệu

Tiết kiệm thời gian so với quản lý thủ công Dữ liệu được sao lưu trên máy, có thể phục hồi

4 Dễ dàng bảo trì, nâng cấp và phát triển Cải tiến

Có khả năng mở rộng và thêm các tính năng mới dễ dàng mà không làm phá vỡ cấu trúc hệ thống

5 Giao diện thân thiện, màu sắc đa dạng và rõ nét Tiện dụng

Giao diện dễ dàng cho người dùng sử dụng và tạo cảm giác hiện đại

6 Thao tác dễ dùng Tiện dụng Các thao tác đơn giản, gần gũi với người dùng

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU

2.1.1 Lược đồ chức năng tổng quan

Hình 2.1: Lược đồ chức năng

2.1.2.1 Chức năng quản lý thông tin cá nhân

Hình 2.2: Chức năng quản lý thông tin cá nhân

2.1.2.2 Chức năng quản lý tài liệu

Hình 2.3: Chức năng quản lý tài liệu

2.1.2.3 Chức năng quản lý người dùng

Hình 2.4: Chức năng quản lý người dùng

2.1.2.4 Chức năng quản lý danh mục

Hình 2.5: Chức năng quản lý danh mục

2.1.2.5 Chức năng quản lý lĩnh vực

Hình 2.6: Chức năng quản lý lĩnh vực

2.1.2.6 Chức năng quản lý trường

Hình 2.7: Chức năng quản lý trường

Bảng 2.1: Đặc tả chức năng đăng ký

Brief description Người dùng khách thực hiện đăng ký tài khoản mới

Pre-conditions Người dùng khách chưa có tài khoản và muốn tạo tài khoản mới

Post-conditions Người dùng khách tạo thành công tài khoản mới

1 Người dùng truy cập vào trang đăng ký

2 Người dùng nhập các thông tin yêu cầu

3 Người dùng nhấn nút Đăng ký

4 Hệ thống kiểm tra thông tin nhận vào

5 Hệ thống tạo tài khoản người dùng và thông báo đăng ký tài khoản thành công

4a Hệ thống phát hiện email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Extension point Người dùng nhấn Đăng nhập

Mật khẩu có độ dài tối thiểu là 8 ký tự

Tài khoản email đăng ký là tài khoản Gmail

Người dùng chỉ được đăng ký với vai trò sinh viên và giảng viên

Bảng 2.2: Đặc tả chức năng đăng nhập

Brief description Người dùng thực hiện đăng nhập vào hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã có tài khoản hợp lệ

Post-conditions Người dùng đăng nhập vào hệ thống thành công và thực hiện được

22 các chức năng theo phân quyền

1 Người dùng truy cập vào trang đăng nhập

2 Người dùng nhập email và mật khẩu

3 Người dùng nhấn Đăng nhập

4 Hệ thống xác thực thông tin đăng nhập

5 Người dùng đăng nhập thành công vào hệ thống

4a Hệ thống không thể xác thực thông tin đăng nhập

4a1 Hệ thống hiển thị thông báo lỗi thông tin đăng nhập chưa chính xác

4a2 Use case quay lại bước 2 của Basic flows

1 Người dùng nhấn Đăng ký

2 Người dùng nhấn Quên mật khẩu

Bảng 2.3: Đặc tả chức năng đăng xuất

Brief description Người dùng thực hiện đăng xuất ra khỏi hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đăng xuất thành công khỏi hệ thống

1 Người dùng nhấn nút Đăng xuất

2 Hệ thống hiển thị thông báo xác nhận việc đăng xuất của người dùng

4 Hệ thống kết thúc phiên người dùng và đưa người dùng quay lại trang đăng nhập

3a Người dùng huỷ bỏ đăng xuất

3a1 Người dùng chọn huỷ bỏ

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu

Name Lấy lại mật khẩu

Brief description Người dùng muốn lấy lại mật khẩu đã quên

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã có tài khoản hợp lệ trên hệ thống

Post-conditions Người dùng đổi được mật khẩu thành công

1 Người dùng nhấn Quên mật khẩu

2 Người dùng nhập email của tài khoản muốn lấy lại mật khẩu

3 Người dùng nhấn Lấy mã

4 Hệ thống kiểm tra email và tài khoản trong cơ sở dữ liệu

5 Hệ thống gửi mã xác nhận qua email

6 Người dùng nhập mã xác nhận

7 Người dùng nhấn Xác nhận

8 Hệ thống kiểm tra mã xác nhận

9 Hệ thống hiển thị ô nhập mật khẩu mới và mật khẩu xác nhận

10 Người dùng nhập mật khẩu mới và mật khẩu xác nhận

11 Người dùng nhấn Đổi mật khẩu

12.Hệ thống kiểm tra mật khẩu mới và mật khẩu xác nhận nhận được

13 Hệ thống thông báo đổi mật khẩu thành công

4a Hệ thống phát hiện email nhận được chưa được đăng ký 4a1 Hệ thống thông báo email chưa được đăng ký

4a2 Use case quay lại bước 2 của Basic flows 8a Hệ thống kiểm tra thấy mã xác nhận người dùng nhập vào không đúng

8a1 Hệ thống thông báo sai mã xác nhận

8a2 Use case quay lại bước 6 của Basic flows

Extension point Người dùng nhấn Đăng nhập

Bảng 2.5: Đặc tả chức năng đổi mật khẩu

Brief description Người dùng muốn đổi mật khẩu

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đăng nhập thành công vào hệ thống

Post-conditions Người dùng đổi mật khẩu thành công

1 Người dùng nhấn Trang cá nhân

2 Người dùng nhập mật khẩu hiện tại, mật khẩu mới, mật khẩu xác nhận

3 Người dùng nhấn Đổi mật khẩu

4 Hệ thống kiểm tra mật khẩu người dùng nhập vào

5 Hệ thống lưu mật khẩu mới và thông báo cập nhật mật khẩu thành công

4a Hệ thống kiểm tra thấy mật khẩu hiện tại không đúng 4a1 Hệ thống thông báo mật khẩu hiện tại không đúng 4a2 Use case quay lại bước 1 của Basic flows

2.2.6 Xem thông tin cá nhân

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân

Name Xem thông tin cá nhân

Brief description Người dùng xem thông tin cá nhân của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng xem được thông tin cá nhân

1 Người dùng nhấn Trang cá nhân

2 Hệ thống hiển thị thông tin cá nhân của người dùng Alternative flows

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

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân

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

Brief description Người dùng cập nhật thông tin cá nhân của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng cập nhật thành công thông tin cá nhân

1 Người dùng nhấn Trang cá nhân

2 Người dùng thay đổi các thông tin cần thiết

4 Hệ thống kiểm tra thông tin nhập vào

5 Hệ thống lưu thay đổi, thông báo cập nhật thông tin cá nhân thành công và hiển thị trang cá nhân mới

4a Hệ thống kiểm tra thấy email người dùng vừa chỉnh sửa đã được đăng ký

4a1 Hệ thống thông báo email đã được đăng ký trước đó

4a2 Use case quay lại bước 2 của Basic flows

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện

Name Đổi ảnh đại diện

Brief description Người dùng đổi ảnh đại diện cho tài khoản của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đổi ảnh đại diện thành công

1 Người dùng nhấn Trang cá nhân

2 Người dùng nhấn Chọn ảnh

3 Người dùng chọn ảnh từ thiết bị

5 Hệ thống tải và lưu ảnh đại diện, thông báo cập nhật thành công và hiển thị ảnh đại diện mới mới

Bảng 2.9: Đặc tả chức năng đọc tài liệu

Brief description Người dùng đọc tài liệu

Actor Người dùng khách, sinh viên

Post- conditions Người dùng đọc được tài liệu mà mình muốn

1 Người dùng truy cập danh sách tài liệu

2 Người dùng nhấp vào một tài liệu mà mình muốn đọc

3 Hệ thống hiển thị chi tiết tài liệu, trong đó nội dung tài liệu được hiển thị bằng trình xem PDF

Business rules Sinh viên chỉ đọc được những tài liệu công khai và tài liệu nội bộ của trường

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu

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

Brief description Người dùng tìm kiếm tài liệu

Actor Sinh viên, quản lý, admin

Post-conditions Người dùng tìm được các tài liệu mong muốn

1 Người dùng nhập từ khoá vào ô tìm kiếm trên trang web

2 Người dùng nhấn phím Enter hoặc biểu tượng tìm kiếm

3 Hệ thống tìm kiếm và hiển thị các tài liệu liên quan đến từ khoá nhận được

3a Hệ thống không thể tìm thấy được tài liệu nào phù hợp

3a1 Hệ thống hiển thị thông báo không tìm thấy tài liệu phù hợp 3a2 Use case kết thúc

Bảng 2.11: Đặc tả chức năng lọc tài liệu

Brief description Người dùng lọc tài liệu theo tiêu chí

Actor Người dùng khách, sinh viên

Post-conditions Người dùng thực hiện thao tác lọc để tìm ra các tài liệu thoả tiêu chí

1 Người dùng truy cập danh sách tài liệu

2 Người dùng chọn các tiêu chí lọc

3 Hệ thống tìm kiếm và hiển thị các tài liệu phù hợp với các tiêu chí lọc

3a Hệ thống không thể tìm thấy được tài liệu nào phù hợp

3a1 Hệ thống hiển thị thông báo không tìm thấy tài liệu phù hợp 3a2 Use case kết thúc

Bảng 2.12: Đặc tả chức năng thích tài liệu

Brief description Người dùng thêm tài liệu vào danh sách yêu thích

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa thích tài liệu dự định sẽ thích

Post-conditions Người dùng thêm tài liệu vào danh sách yêu thích thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng nhấn vào biểu tượng thích

3 Hệ thống thông báo đã thích tài liệu và tăng lượt thích lên

2a Người dùng muốn bỏ thích tài liệu

2a1 Người dùng nhấn vào biểu tượng thích

2a2 Hệ thống thông báo đã bỏ thích tài liệu và giảm lượt thích xuống

Bảng 2.13: Đặc tả chức năng lưu tài liệu

Brief description Người dùng thêm tài liệu vào danh sách đã lưu

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa lưu tài liệu dự định sẽ lưu

Post- conditions Người dùng thêm tài liệu vào danh sách đã lưu thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng nhấn vào biểu tượng lưu

3 Hệ thống thông báo đã lưu tài liệu

2a Người dùng muốn bỏ lưu tài liệu

2a1 Người dùng nhấn vào biểu tượng lưu

2a2 Hệ thống thông báo đã bỏ lưu tài liệu

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu

Name Đánh giá tài liệu

Brief description Người dùng đánh giá tài liệu

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa đánh giá tài liệu dự định sẽ đánh giá

Post-conditions Người dùng đánh giá tài liệu thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng chọn số sao và nhập lời đánh giá

4 Hệ thống kiểm tra thông tin nhận được

5 Hệ thống lưu lại đánh giá, cập nhật danh sách đánh giá và hiển thị thông báo đánh giá thành công

Bảng 2.15: Đặc tả chức năng đăng tài liệu

Brief description Người dùng đăng tải một tài liệu mới lên hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đăng tải thành công tài liệu lên hệ thống

1 Người dùng nhấn Tải lên/Thêm tài liệu

2 Người dùng nhập các thông tin được yêu cầu, chọn danh mục, lĩnh vực, chọn tệp tài liệu

3 Người dùng nhấn Tải lên

4 Hệ thống kiểm tra thông tin về tài liệu

5 Hệ thống lưu tài liệu và thông báo đã thêm tài liệu thành công

2a Người dùng có vai trò là admin

2a1 Người dùng nhập các thông tin được yêu cầu, chọn danh mục, lĩnh vực, chọn tệp tài liệu

2a2 Use case tiếp tục ở bước 3 của Basic flows

5a Người dùng có vai trò sinh viên

5a1 Hệ thống lưu tài liệu, thông báo đã thêm tài liệu thành công và đang đợi duyệt, chuyển tài liệu đang đợi đến quản lý và admin 5a2 Use case kết thúc

1 Sinh viên, quản lý sẽ tải tài liệu lên trường của mình

2 Quản lý và admin phê duyệt tài liệu do sinh viên tải lên

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu

Name Chỉnh sửa tài liệu

Brief description Người dùng chỉnh sửa tài liệu

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng chỉnh sửa tài liệu thành công

1 Người dùng truy cập vào danh sách tài liệu

2 Người dùng nhấn Chỉnh sửa bên cạnh tài liệu

3 Người dùng chỉnh sửa các thông tin cần thiết cũng như tệp tài liệu

4 Hệ thống kiểm tra thông tin về tài liệu

5 Hệ thống lưu tài liệu và thông báo đã chỉnh sửa tài liệu thành công

5a Người dùng có vai trò sinh viên

5a1 Hệ thống lưu lại tài liệu, thông báo đã chỉnh sửa tài liệu thành công và đang đợi duyệt, chuyển tài liệu đang đợi đến quản lý và admin

1 Sinh viên chỉnh sửa tài liệu thì tài liệu sẽ đưa về trạng thái chờ duyệt

2 Quản lý thực hiện chỉnh sửa các tài liệu thuộc trường mà mình quản lý

Bảng 2.17: Đặc tả chức năng xoá tài liệu

Brief description Người dùng muốn xoá một tài liệu

Pre-conditions Người dùng đăng nhập thành công vào hệ thống

Post-conditions Người dùng xoá tài liệu thành công

1 Người dùng truy cập danh sách tài liệu

2 Người dùng nhấn Xoá bên cạnh tài liệu

3 Hệ thống hiển thị xác nhận xoá tài liệu

5 Hệ thống xoá tài liệu, hiển thị thông báo xoá thành công và cập nhật lại danh sách tài liệu

4a Người dùng huỷ bỏ xoá tài liệu

4a1 Người dùng chọn Huỷ bỏ

Bảng 2.18: Đặc tả chức năng thêm người dùng

Brief description Người dùng thêm người dùng mới trên hệ thống

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng thêm người dùng mới thành công

1 Người dùng nhấn Thêm người dùng

2 Người dùng nhập các thông tin được yêu cầu cho người dùng mới

4 Hệ thống kiểm tra thông tin nhận vào

5 Hệ thống lưu người dùng mới, sau đó hiển thị thông báo thêm người dùng thành công

2a Người dùng có vai trò admin

2a1 Người dùng nhập các thông tin được yêu cầu và chọn trường cho người dùng mới

2a2 Use case tiếp tục ở bước 3 của Basic flows

4a Hệ thống kiểm tra thấy email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Mật khẩu có độ dài tối thiểu là 8 ký tự

Quản lý thực hiện thêm người dùng thuộc trường của mình

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng

Use case Chỉnh sửa người dùng

Brief description Người dùng chỉnh sửa thông tin của người dùng khác trên hệ thống

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người chỉnh sửa thành công thông tin thông tin của người dùng khác

1 Người dùng truy cập vào danh sách người dùng do mình quản lý

2 Người dùng nhấn Chỉnh sửa bên cạnh tài khoản của người dùng muốn chỉnh sửa

3 Người dùng chỉnh sửa các thông tin cần thiết của người dùng

5 Hệ thống lưu lại thay đổi và hiển thị thông báo chỉnh sửa người dùng thành công

Alternative flows 2a Người dùng có vai trò admin

2a1 Người dùng chỉnh sửa các thông tin của người dùng và chọn trường cho người dùng (nếu muốn)

2a2 Use case tiếp tục ở bước 3 của Basic flows

4a Hệ thống kiểm tra thấy email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Mật khẩu có độ dài tối thiểu là 8 ký tự

Quản lý thực hiện chỉnh sửa người dùng thuộc trường của mình

Bảng 2.20: Đặc tả chức năng xoá người dùng

Người dùng xoá một người dùng khác

Pre-conditions Người đã đăng nhập thành công vào hệ thống

Người dùng xoá thành công một người dùng khác

1 Người dùng truy cập vào danh sách người dùng mà mình quản lý

2 Người dùng nhấn Xoá bên cạnh tài khoản của người dùng muốn xoá

3 Hệ thống hiển thị cảnh báo xác nhận xoá người dùng

5 Hệ thống xoá người dùng, hiển thị thông báo xoá người dùng thành công và cập nhật lại danh sách người dùng

4a Người dùng huỷ bỏ việc xoá người dùng khác

4a1 Người dùng chọn Huỷ bỏ

4a2 Use case kết thúc 5a: Hệ thống kiểm tra thấy người dùng đã đăng tải tài liệu lên

5a1 Hệ thống vô hiệu hoá tài khoản người dùng, hiển thị thông báo vô hiệu hoá tài khoản người dùng và cập nhật lại danh sách người dùng

Business rules Quản lý thực hiện xoá người dùng thuộc trường mà mình quản lý

Bảng 2.21: Đặc tả chức năng xoá đánh giá

Brief description Người dùng xoá đánh giá vi phạm của tài liệu

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng xoá đánh giá thành công

1 Người dùng truy cập vào danh sách đánh giá của các tài liệu thuộc trường mà mình quản lý

2 Người dùng nhấn Xoá bên cạnh đánh giá

3 Hệ thống hiển thị cảnh báo xác nhận xoá đánh giá

5 Hệ thống xoá đánh giá, hiển thị thông báo xoá đánh giá thành công và cập nhật lại danh sách đánh giá

4a Người dùng huỷ bỏ việc xoá đánh giá

4a1 Người dùng chọn Huỷ bỏ

Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu

Name Phê duyệt tài liệu

Brief description Người dùng phê duyệt tài liệu do sinh viên tải lên

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng phê duyệt tài liệu thành công

1 Người dùng truy cập vào danh sách tài liệu đang chờ phê duyệt do mình quản lý

2 Người dùng nhấn Phê duyệt

3 Hệ thống hiển thị thông báo yêu cầu chọn hành động

4 Người dùng chọn Chấp nhận

KIẾN TRÚC HỆ THỐNG

Kiến trúc tổng quan

4.2 Các công nghệ được sử dụng

5 Chương 5: Thiết kế giao diện và xử lý

5.1 Sinh viên và người dùng khách

6 Chương 6: Cài đặt và kiểm thử

STT Thời gian Công việc Ghi chú

1 28/2/2024-6/3/2024 Tham khảo, xác định đề tài

2 6/3/2024-13/4/2024 Khảo sát, phân tích và xác định các yêu cầu của đề tài

3 13/3/2024-20/3/2024 Xây dựng lược đồ chức năng, đặc tả chức năng

4 20/3/2024- 27/3/2024 Xây dựng lược đồ tuần tự

5 27/3/2024- 3/4/2024 Thiết kế giao diện phần sinh viên và người dùng khách

6 3/4/2024 – 10/4/2024 Thiết kế và xây dựng cơ sở dữ liệu

8 17/4/2024-24/4/2024 Kết nối giao diện và back-end cho sinh viên và người dùng khách

9 24/4/2024-1/5/2024 Thiết kế giao diện phần quản lý và admin

10 1/5/2024 – 8/5/2024 Kết nối giao diện và back-end cho quản lý và admin

11 8/5/2024 -15/5/2024 Hoàn thiện các chức năng và bổ sung các chức năng bị thiếu

12 15/5/2024 – 22/5/2024 Kiểm thử lại trang web, sửa chữa lỗi

15 5/6/2024 – 28/6/2024 Chỉnh sửa báo cáo và làm

Vu Hoang Anh Ý kiến của giáo viên hướng dẫn

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC ĐÍCH CỦA ĐỀ TÀI 1

CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 3

1.2 Khảo sát một số phần mềm 3

1.3 Phân tích yêu cầu của dự án 8

1.4 Yêu cầu chức năng nghiệp vụ 10

1.5 Danh sách yêu cầu chức năng nghiệp vụ 11

1.6 Danh sách yêu cầu chức năng hệ thống 14

1.7 Danh sách yêu cầu phi chức năng 15

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU 17

2.1.1 Lược đồ chức năng tổng quan 17

2.2.6 Xem thông tin cá nhân 26

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

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 59

3.1.6 Xem thông tin cá nhân 63

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

CHƯƠNG 4: KIẾN TRÚC HỆ THỐNG 90

4.1.2 Tương tác và giao tiếp giữa các thành phần 91

4.2 Các công nghệ và thư viện được sử dụng 91

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 117

5.1 Sinh viên và người dùng khách 117

5.1.9 Danh sách tài liệu chính 126

5.1.10 Danh sách tài liệu đã thích 128

5.1.11 Danh sách tài liệu đã lưu 129

5.1.12 Danh sách tài liệu đã tải lên đã được duyệt 130

5.1.13 Danh sách tài liệu đã tải lên đang đợi duyệt 131

5.1.14 Danh sách tài liệu đã tải lên bị từ chối 131

5.1.17 Danh sách tài liệu của một người 135

5.2.27 Danh sách tài liệu đang chờ 175

CHƯƠNG 6 CÀI ĐẶT, DEPLOY VÀ KIỂM THỬ 180

6.1.2 Cài đặt với docker compose 180

DANH MỤC TÀI LIỆU THAM KHẢO 188

Hình 1.1: Trang chủ Studocu 4

Hình 1.2: Danh sách tài liệu theo trường học 4

Hình 1.3: Xem chi tiết tài liệu 5

Hình 1.4: Tải tài liệu lên 5

Hình 1.5: Trang chủ thư viện số HCMUTE 6

Hình 1.6: Chi tiết tài liệu 7

Hình 1.7: Tải tài liệu 7

Hình 2.1: Lược đồ chức năng 17

Hình 2.2: Chức năng quản lý thông tin cá nhân 17

Hình 2.3: Chức năng quản lý tài liệu 18

Hình 2.4: Chức năng quản lý người dùng 18

Hình 2.5: Chức năng quản lý danh mục 19

Hình 2.6: Chức năng quản lý lĩnh vực 19

Hình 2.7: Chức năng quản lý trường 20

Hình 3.1: Lược đồ tuần tự chức năng đăng ký 59

Hình 3.2: Lược đồ tuần tự chức năng đăng nhập 60

Hình 3.3: Lược đồ tuần tự chức năng đăng xuất 60

Hình 3.4: Lược đồ tuần tự chức năng lấy lại mật khẩu 61

Hình 3.5: Lược đồ tuần tự chức năng đổi mật khẩu 62

Hình 3.6: Lược đồ tuần tự chức năng xem thông tin cá nhân 63

Hình 3.7: Lược đồ tuần tự chức năng cập nhật thông tin cá nhân 64

Hình 3.8: Lược đồ tuần tự chức năng đổi ảnh đại diện 65

Hình 3.9: Lược đồ tuần tự chức năng đọc tài liệu 65

Hình 3.10: Lược đồ tuần tự chức năng tìm kiếm tài liệu 66

Hình 3.11: Lược đồ tuần tự chức năng lọc tài liệu 66

Hình 3.12: Lược đồ tuần tự chức năng thích tài liệu 67

Hình 3.13: Lược đồ tuần tự chức năng lưu tài liệu 67

Hình 3.14: Lược đồ tuần tự chức năng đánh giá tài liệu 68

Hình 3.15: Lược đồ tuần tự chức năng đăng tài liệu 69

Hình 3.16: Lược đồ tuần tự chức năng chỉnh sửa tài liệu 70

Hình 3.17: Lược đồ tuần tự chức năng xoá tài liệu 71

Hình 3.18: Lược đồ tuần tự chức năng thêm người dùng 72

Hình 3.19: Lược đồ tuần tự chức năng chỉnh sửa người dùng 73

Hình 3.20: Lược đồ tuần tự chức năng xoá người dùng 74

Hình 3.21: Lược đồ tuần tự chức năng xoá đánh giá 75

Hình 3.22: Lược đồ tuần tự chức năng phê duyệt tài liệu 76

Hình 3.23: Lược đồ tuần tự chức năng thêm trường 77

Hình 3.24: Lược đồ tuần tự chức năng chỉnh sửa trường 78

Hình 3.25: Lược đồ tuần tự chức năng xoá trường 79

Hình 3.26: Lược đồ tuần tự chức năng kích hoạt trường 80

Hình 3.27: Lược đồ tuần tự chức năng thêm danh mục 81

Hình 3.28: Lược đồ tuần tự chức năng chỉnh sửa danh mục 82

Hình 3.29: Lược đồ tuần tự chức năng xoá danh mục 83

Hình 3.30: Lược đồ tuần tự chức năng kích hoạt danh mục 84

Hình 3.31: Lược đồ tuần tự chức năng thêm lĩnh vực 85

Hình 3.32: Lược đồ tuần tự chức năng chỉnh sửa lĩnh vực 86

Hình 3.33: Lược đồ tuần tự chức năng xoá lĩnh vực 87

Hình 3.34: Lược đồ tuần tự chức năng kích hoạt lĩnh vực 88

Hình 3.35: Lược đồ tuần tự chức năng thống kê 88

Hình 3.36: Lược đồ lớp của hệ thống 89

Hình 4.1: Kiến trúc tổng quan của hệ thống 90

Hình 4.2: Cấu trúc dự án Spring Boot đơn giản 92

Hình 4.3: Tạo dự án Spring Boot với Maven 93

Hình 4.4: Khai báo dependency trong pom.xml 94

Hình 4.5: Controller trong Spring Boot 94

Hình 4.6: Spring Boot và Tomcat 95

Hình 4.7: Thêm dependency Spring Security vào dự án 96

Hình 4.8: Cấu hình Filter Chain 97

Hình 4.9: Cấu hình xác thực 97

Hình 4.10: Thêm JWT Filter vào SecurityFilterChain 98

Hình 4.12: Tạo và trả JWT khi login 99

Hình 4.13: Repository interface trong Spring Data JPA 100

Hình 4.14: Truy vấn query tuỳ chỉnh 100

Hình 4.15: Thêm dependency của Spring Data JPA 101

Hình 4.16: Cấu hình kết nối MySQL trong application.yml 101

Hình 4.17: Tạo các entity classes 102

Hình 4.18: Kiến trúc ReactJS 103

Hình 4.19: Cấu trúc thư mục ReactJS 103

Hình 4.22: Minh hoạ tệp JSX 106

Hình 4.23: Ví dụ về useState 106

Hình 4.24: Ví dụ về useEffect 107

Hình 4.25: Chuyển hướng với useNavigate 107

Hình 4.26: Lấy đường dẫn hiện tại bằng useLocation 108

Hình 4.27: Truy xuất tham số từ URL với useParams 108

Hình 4.28: Minh hoạ props 108

Hình 4.29: Axios trong package.json 109

Hình 4.30: Sử dụng axios để gửi yêu cầu GET lấy tất cả danh mục 109

Hình 4.31: Tạo dự án Google Cloud 110

Hình 4.32: Giao diện APIs & Services 111

Hình 4.33: Kích hoạt Google Drive API 111

Hình 4.34: Giao diện Credentials để tạo service account 112

Hình 4.35: Tạo service account 112

Hình 4.37: Google Drive API dependency 113

Hình 4.38: Cấu hình Bean cho Google Drive API 114

Hình 4.39: Xoá tệp bằng Google Drive API 114

Hình 4.40: Tải lên tệp bằng Google Drive API 114

Hình 4.41: Kiến trúc của MySQL 115

Hình 4.42: Sử dụng MySQL thiết kế cơ sở dữ liệu 116

Hình 5.1: Giao diện trang chủ 117

Hình 5.2: Giao diện đăng nhập 118

Hình 5.3: Giao diện đăng ký 119

Hình 5.4: Giao diện quên mật khẩu 120

Hình 5.5: Giao diện thanh trên 121

Hình 5.6: Giao diện thanh bên 122

Hình 5.7: Giao diện thông tin cá nhân 123

Hình 5.8: Giao diện chi tiết tài liệu 125

Hình 5.9: Giao diện danh sách tài liệu chính 127

Hình 5.10: Giao diện danh sách tài liệu đã thích 128

Hình 5.11: Giao diện danh sách tài liệu đã lưu 129

Hình 5.12: Giao diện danh sách tài liệu tải lên đã được duyệt 130

Hình 5.13: Giao diện danh sách tài liệu tải lên đang đợi duyệt 131

Hình 5.14: Giao diện danh sách tài liệu tải lên bị từ chối 132

Hình 5.15: Giao diện đăng tài liệu 133

Hình 5.16: Giao diện chỉnh sửa tài liệu 134

Hình 5.17: Giao diện danh sách tài liệu của một người 136

Hình 5.18: Giao diện đăng nhập 137

Hình 5.19: Giao diện quên mật khẩu 138

Hình 5.20: Giao diện thông tin cá nhân 140

Hình 5.21: Giao diện trang chủ quản trị 143

Hình 5.22: Giao diện danh sách tài liệu 144

Hình 5.23: Giao diện chi tiết tài liệu 146

Hình 5.24: Giao diện thêm tài liệu 147

Hình 5.25: Giao diện chỉnh sửa tài liệu 149

Hình 5.26: Giao diện xoá tài liệu 150

Hình 5.27: Giao diện danh sách danh mục 151

Hình 5.28: Giao diện thêm danh mục 153

Hình 5.29: Giao diện chỉnh sửa danh mục 154

Hình 5.30: Giao diện xoá danh mục 155

Hình 5.31: Giao diện danh sách lĩnh vực 156

Hình 5.32: Giao diện thêm lĩnh vực 158

Hình 5.33: Giao diện chỉnh sửa lĩnh vực 159

Hình 5.34: Giao diện xoá lĩnh vực 160

Hình 5.35: Giao diện danh sách trường 161

Hình 5.36: Giao diện thêm trường 163

Hình 5.37: Giao diện chỉnh sửa trường 164

Hình 5.38: Giao diện chỉnh sửa trường 165

Hình 5.39: Giao diện danh sách người dùng 166

Hình 5.40: Giao diện chi tiết người dùng 168

Hình 5.41: Giao diện thêm người dùng 170

Hình 5.42: Giao diện chỉnh sửa người dùng 172

Hình 5.43: Giao diện xoá người dùng 174

Hình 5.44: Giao diện danh sách tài liệu đang chờ 175

Hình 5.45: Giao diện phê duyệt tài liệu 176

Hình 5.46: Giao diện từ chối tài liệu 177

Hình 5.47: Giao diện danh sách đánh giá 178

Hình 5.48: Giao diện xoá đánh giá 179

Bảng 1.1: Nhận xét trang web Studocu 5

Bảng 1.2: Nhận xét thư viện số HCMUTE 7

Bảng 1.3: Danh sách chức năng chính 8

Bảng 1.4: Yêu cầu chức năng quản lý thông tin cá nhân 11

Bảng 1.5: Yêu cầu chức năng quản lý người dùng 12

Bảng 1.6: Yêu cầu chức năng quản lý tài liệu 12

Bảng 1.7: Yêu cầu chức năng quản lý danh mục 13

Bảng 1.8: Yêu cầu chức năng quản lý lĩnh vực 13

Bảng 1.9: Yêu cầu chức năng quản lý trường 14

Bảng 1.10: Yêu cầu chức năng quản lý đánh giá 14

Bảng 1.11: Danh sách yêu cầu chức năng hệ thống 14

Bảng 1.12: Danh sách yêu cầu phi chức năng 15

Bảng 2.1: Đặc tả chức năng đăng ký 20

Bảng 2.2: Đặc tả chức năng đăng nhập 21

Bảng 2.3: Đặc tả chức năng đăng xuất 22

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu 23

Bảng 2.5: Đặc tả chức năng đổi mật khẩu 25

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân 26

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân 27

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện 28

Bảng 2.9: Đặc tả chức năng đọc tài liệu 29

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu 30

Bảng 2.11: Đặc tả chức năng lọc tài liệu 31

Bảng 2.12: Đặc tả chức năng thích tài liệu 32

Bảng 2.13: Đặc tả chức năng lưu tài liệu 33

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu 34

Bảng 2.15: Đặc tả chức năng đăng tài liệu 35

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu 36

Bảng 2.17: Đặc tả chức năng xoá tài liệu 37

Bảng 2.18: Đặc tả chức năng thêm người dùng 38

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng 40Bảng 2.20: Đặc tả chức năng xoá người dùng 41Bảng 2.21: Đặc tả chức năng xoá đánh giá 43Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu 44Bảng 2.23: Đặc tả chức năng thêm trường 45Bảng 2.24: Đặc tả chức năng chỉnh sửa trường 46Bảng 2.25: Đặc tả chức năng xoá trường 47Bảng 2.26: Đặc tả chức năng kích hoạt trường 48Bảng 2.27: Đặc tả chức năng thêm danh mục 49Bảng 2.28: Đặc tả chức năng chỉnh sửa danh mục 50Bảng 2.29: Đặc tả chức năng xoá danh mục 51Bảng 2.30: Đặc tả chức năng kích hoạt lĩnh vực 53Bảng 2.31: Đặc tả chức năng thêm lĩnh vực 54Bảng 2.32: Đặc tả chức năng chỉnh sửa lĩnh vực 55Bảng 2.33: Đặc tả chức năng xoá lĩnh vực 56Bảng 2.34: Đặc tả chức năng kích hoạt lĩnh vực 57Bảng 2.35: Đặc tả chức năng thống kê 58Bảng 5.1: Bảng mô tả giao diện trang chủ 117Bảng 5.2: Bảng mô tả giao diện đăng nhập 118Bảng 5.3: Bảng mô tả giao diện đăng ký 119Bảng 5.4: Bảng mô tả giao diện quên mật khẩu 120Bảng 5.5: Bảng mô tả giao diện thanh trên 121Bảng 5.6: Bảng mô tả giao diện thanh bên 122Bảng 5.7: Bảng mô tả giao diện thông tin cá nhân 123Bảng 5.8: Bảng mô tả giao diện chi tiết tài liệu 125Bảng 5.9: Bảng mô tả giao diện danh sách tài liệu chính 127Bảng 5.10: Bảng mô tả giao diện danh sách tài liệu đã thích 128Bảng 5.11: Bảng mô tả giao diện danh sách tài liệu đã lưu 129Bảng 5.12: Bảng mô tả giao diện danh sách tài liệu tải lên đã được duyệt 130Bảng 5.13: Bảng mô tả giao diện danh sách tài liệu tải lên đang đợi duyệt 131Bảng 5.14: Bảng mô tả giao diện danh sách tài liệu tải lên bị từ chối 132Bảng 5.15: Bảng mô tả giao diện đăng tài liệu 133

Bảng 5.16: Bảng mô tả giao diện chỉnh sửa tài liệu 135Bảng 5.17: Bảng mô tả giao diện danh sách tài liệu của một người 136Bảng 5.18: Bảng mô tả giao diện đăng nhập 137Bảng 5.19: Bảng mô tả giao diện quên mật khẩu 138Bảng 5.20: Bảng mô tả giao diện thông tin cá nhân 141Bảng 5.21: Bảng mô tả giao diện trang chủ quản trị 143Bảng 5.22: Bảng mô tả giao diện danh sách tài liệu 145Bảng 5.23: Bảng mô tả giao diện chi tiết tài liệu 146Bảng 5.24: Bảng mô tả giao diện thêm tài liệu 148Bảng 5.25: Bảng mô tả giao diện chỉnh sửa tài liệu 149Bảng 5.26: Bảng mô tả giao diện xoá tài liệu 150Bảng 5.27: Bảng mô tả giao diện danh sách danh mục 151Bảng 5.28: Bảng mô tả giao diện thêm danh mục 153Bảng 5.29: Bảng mô tả giao diện chỉnh sửa danh mục 154Bảng 5.30: Bảng mô tả giao diện xoá danh mục 155Bảng 5.31: Bảng mô tả giao diện danh sách lĩnh vực 156Bảng 5.32: Bảng mô tả giao diện thêm lĩnh vực 158Bảng 5.33: Bảng mô tả giao diện chỉnh sửa lĩnh vực 159Bảng 5.34: Bảng mô tả giao diện xoá lĩnh vực 160Bảng 5.35: Bảng mô tả giao diện danh sách trường 161Bảng 5.36: Bảng mô tả giao diện thêm trường 163Bảng 5.37: Bảng mô tả giao diện chỉnh sửa trường 164Bảng 5.38: Bảng mô tả giao diện xoá trường 165Bảng 5.39: Bảng mô tả giao diện danh sách người dùng 166Bảng 5.40: Bảng mô tả giao diện chi tiết người dùng 168Bảng 5.41: Bảng mô tả giao diện thêm người dùng 171Bảng 5.42: Bảng mô tả giao diện chỉnh sửa người dùng 173Bảng 5.43: Bảng mô tả giao diện xoá người dùng 174Bảng 5.44: Bảng mô tả giao diện danh sách tài liệu đang chờ 175Bảng 5.45: Bảng mô tả giao diện phê duyệt tài liệu 176Bảng 5.46: Bảng mô tả giao diện từ chối tài liệu 177Bảng 5.47: Bảng mô tả giao diện danh sách đánh giá 178

Bảng 5.48: Bảng mô tả giao diện xoá đánh giá 179Bảng 6.1: Sản phẩm deploy 180Bảng 6.2: Lịch trình công việc 181Bảng 6.3: Chiến lược kiểm thử 182Bảng 6.4: Kết quả kiểm thử 183

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại ngày nay, công nghệ thông tin đã và đang phát triển nhanh chóng, mạnh mẽ trong tất cả các lĩnh vực đời sống Từ những bước tiến vượt bậc trong lĩnh vực máy tính, mạng lưới, đến sự bùng nổ của Internet và sự xuất hiện của trí tuệ nhân tạo, công nghệ thông tin dần chuyển đổi cách con người sống, làm việc và tương tác với nhau Đặc biệt, nó đã mở ra nhiều cơ hội mới trong việc chia sẻ và truy cập thông tin Giờ đây, con người có thể tiếp cận và sử dụng nguồn tài nguyên trên mạng từ xa, không giới hạn thời gian và địa điểm Điều này cũng mở ra tương lai cho các dịch vụ lưu trữ và cung cấp tài nguyên đến cho người dùng trực tuyến

Lĩnh vực giáo dục cũng chứng kiến sự thay đổi mạnh mẽ dưới tác động của công nghệ Các mô hình giảng dạy và học tập truyền thống dần dần chuyển đổi sang môi trường máy tính và trực tuyến Kèm theo đó là nhu cầu cho việc sử dụng các nguồn tài nguyên học tập tăng lên một cách mạnh mẽ Nếu như trước kia, khi muốn tìm hiểu và học tập về một nội dung, lĩnh vực nào đó, sinh viên sẽ cần phải có một bản tài liệu hoặc một cuốn sách bằng giấy Tuy nhiên, ngày nay, sinh viên hầu như có thể truy cập mạng Internet để tìm và sử dụng các tài liệu đó Điều này vừa tạo sự tiện lợi cho người học cũng như cung cấp khả năng tiếp cận kho tài liệu phong phú Tuy nhiên, việc học tập là không giới hạn ở chỉ mỗi một trường đại học Mỗi trường đại học sẽ có một nguồn tài liệu bổ ích và quý giá khác nhau Do đó, em nghĩ đến ý tưởng tạo một trang web tổng hợp và phân loại tài liệu theo các trường đại học, cao đẳng nhằm cung cấp một nguồn tài nguyên phong phú và bổ ích đến các sinh viên

Xuất phát từ ý tưởng đó, em xin thực hiện đề tài Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài này là tạo nên một trang web diễn đàn cung cấp một kho tài liệu bổ ích và phong phú đến cho sinh viên, giúp cho sinh viên tiếp cận tài liệu học tập một cách tiện lợi và hiệu quả

- Đối tượng nghiên cứu Đề tài tập trung nghiên cứu những vấn đề sau:

 Các kỹ thuật phân tích thiết kế hệ thống

 Tìm hiểu về Spring Boot trên nền tảng Java để xây dựng API cho hệ thống

 Tìm hiểu về React để xây dựng giao diện người dùng

 Tìm hiểu về Google Drive API để lưu trữ tài liệu

Trong phạm vi của đề tài, nhóm chúng em tập trung nghiên cứu các chức năng cơ bản của một hệ thống quản lý tài liệu như truy cập tài liệu, tải lên, chỉnh sửa, xoá bỏ, phân loại

PHẦN NỘI DUNG CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 1.1 Phân tích hiện trạng

Ngày nay, Internet đã và đang phát triển một cách chóng mặt và trở nên rất phổ biến Sự tiện lợi mà Internet mang lại trong các lĩnh vực đời sống và xã hội là điều không thể phủ nhận Trong đó, nhu cầu sử dụng và truy cập nguồn tài liệu học tập trên Internet là rất là lớn Internet cung cấp một lượng tài liệu khổng lồ và cực kỳ đa dạng cho học sinh, sinh viên sử dụng Trong số đó, có hàng nghìn, hàng chục nghìn trang web chuyên về cung cấp tài liệu đến cho người học

Nhìn chung, các trang web cung cấp lượng tài liệu đa dạng ở nhiều lĩnh vực và thể loại khác nhau Tuy nhiên, điều này cũng đặt ra một số thách thức và vấn đề:

- Không phải tất cả các nguồn tài liệu trên Internet đều đảm bảo về chất lượng và tính tin cậy Có rất nhiều tài liệu không chính xác hoặc không được kiểm chứng một cách đầy đủ

- Một số trang web yêu cầu người sử dụng trả phí để có quyền truy cập đầy đủ nội dung

- Một số trang web chứa quảng cáo gây làm phiền và ảnh hưởng đến trải nghiệm người dùng

- Người học cần phải có kỹ năng tìm kiếm trên Internet để có thể tận dụng tối đa nguồn tài liệu

1.2 Khảo sát một số phần mềm

 Đường dẫn trang web: https://www.studocu.com/

Hình 0.1: Trang chủ Studocu

Hình 0.1.: Danh sách tài liệu theo trường học

Hình 0.3: Xem chi tiết tài liệu

Hình 0.4: Tải tài liệu lên

Bảng 0.1: Nhận xét trang web Studocu

- Tìm kiếm khoá học, sách, tài liệu

- Nguồn tài liệu chưa được kiểm soát chặt chẽ

- Tải lên và chia sẻ tài liệu

- Thích, bỏ thích, bình luận, lưu, chia sẻ lên mạng xã hội

- Đăng ký Premium để truy cập các tính năng như tài liệu nâng cao, tải, in tài liệu

 Đường dẫn trang web: https://thuvienso.hcmute.edu.vn/

Hình 0.5: Trang chủ thư viện số HCMUTE

Hình 0.7: Chi tiết tài liệu

Hình 0.8: Tải tài liệu

Bảng 0.1: Nhận xét thư viện số HCMUTE

- Tìm kiếm sách, tài liệu

- Chủ yếu là tài liệu liên quan đến Trường Đại học Sư phạm Kỹ thuật

- Tải lên và chia sẻ tài liệu

- Thích, bình chọn, bình luận, chia sẻ lên mạng xã hội

1.3 Phân tích yêu cầu của dự án

Xây dựng một trang web để chia sẻ tài liệu học tập cho sinh viên giữa các trường đại học, cao đẳng Người dùng có thể tìm đọc và chia sẻ tài liệu của mình với những người khác Ngoài ra, hệ thống còn được quản lý bởi admin và người quản lý nhằm kiểm soát nguồn tài liệu được chia sẻ Các chức năng chính của chương trình bao gồm:

Bảng 0.2.3.: Danh sách chức năng chính Đối tượng sử dụng Các chức năng thực hiện

Sinh viên Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đọc tài liệu

Tìm kiếm tài liệu Thích tài liệu Lưu tài liệu Đánh giá tài liệu

9 Đăng tài liệu Cập nhật tài liệu Xoá tài liệu

Quản lý Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu cho trường Cập nhật tài liệu của trường Xoá tài liệu của trường Thêm người dùng cho trường Cập nhật người dùng của trường Xoá người dùng của trường Xoá đánh giá của trường Phê duyệt tài liệu của trường

Admin Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu

Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu

Cập nhật tài liệu Xoá tài liệu Thêm người dùng Cập nhật người dùng Xoá người dùng Thêm trường Cập nhật trường Xoá trường Kích hoạt trường Thêm danh mục Cập nhật danh mục Xoá danh mục Kích hoạt danh mục Thêm lĩnh vực Cập nhật lĩnh vực Xoá lĩnh vực Kích hoạt lĩnh vực Phê duyệt tài liệu Thống kê

1.4 Yêu cầu chức năng nghiệp vụ

1.5 Danh sách yêu cầu chức năng nghiệp vụ

 Quản lý thông tin cá nhân

Bảng 0.2: Yêu cầu chức năng quản lý thông tin cá nhân

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin cá nhân Tra cứu

2 Cập nhật thông tin cá nhân Lưu trữ

Bảng 0.3: Yêu cầu chức năng quản lý người dùng

Bảng 0.4: Yêu cầu chức năng quản lý tài liệu

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin người dùng Tra cứu

2 Cập nhật thông tin người dùng Lưu trữ

3 Xoá người dùng Lưu trữ

4 Số lượng người dùng Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem tài liệu Tra cứu

2 Tìm kiếm tài liệu Tra cứu

3 Đăng tài liệu Lưu trữ

4 Cập nhật tài liệu Lưu trữ

5 Xoá tài liệu Lưu trữ

6 Thích tài liệu Lưu trữ

Bảng 0.5: Yêu cầu chức năng quản lý danh mục

Bảng 0.6: Yêu cầu chức năng quản lý lĩnh vực

7 Lưu tài liệu Lưu trữ

8 Đánh giá tài liệu Lưu trữ

9 Phê duyệt tài liệu Lưu trữ

10 Số lượng tài liệu Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem danh mục Tra cứu

2 Cập nhật danh mục Lưu trữ

3 Xoá danh mục Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem lĩnh vực Tra cứu

2 Cập nhật lĩnh vực Lưu trữ

3 Xoá lĩnh vực Lưu trữ

Bảng 0.7: Yêu cầu chức năng quản lý trường

Bảng 0.8: Yêu cầu chức năng quản lý đánh giá

1.6 Danh sách yêu cầu chức năng hệ thống

Bảng 0.9: Danh sách yêu cầu chức năng hệ thống

STT Nội dung Mô tả chi tiết Ghi chú

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

2 Cập nhật trường Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem đánh giá Tra cứu

2 Xoá đánh giá Lưu trữ

3 Đánh giá trung bình Tính toán

- Sinh viên: tìm kiếm, đọc tài liệu; thích, lưu, đánh giá tài liệu; đăng, cập nhật, xoá tài liệu

- Quản lý: đăng, cập nhật, xoá tài liệu của trường; thêm, cập nhật, xoá người dùng của trường; phê duyệt tài liệu của trường; xoá đánh giá của tài liệu thuộc trường

- Admin: đăng, cập nhật, xoá tài liệu; thêm, cập nhật, xoá người dùng; thêm, cập nhật, xoá, kích hoạt danh mục; thêm, cập nhật, xoá, kích hoạt lĩnh vực; thêm, cập nhật, xoá, kích hoạt trường; phê duyệt tài liệu; thống kê

Hệ thống đảm bảo tài nguyên và dịch vụ chỉ được truy cập được bởi những tác nhân và người dùng nhất định

Cơ sở dữ liệu được sao lưu định kỳ, mã nguồn có khả năng khôi phục sao lưu nhanh

4 Thông báo Thông báo cho người dùng khi cần thiết: hoạt động thành công, thất bại,…

1.7 Danh sách yêu cầu phi chức năng

Bảng 0.10: Danh sách yêu cầu phi chức năng

STT Nội dung Tiêu chuẩn Mô tả chi tiết

1 Tốc độ xử lý quá trình tương tác của người dùng Hiệu quả Có thể truy cập trực tuyến nhiều người cùng một lúc

2 Tốc độ tìm kiếm nhanh và chính xác Hiệu quả Tối đa 5s có kết quả tìm kiếm

Tiết kiệm thời gian, tối ưu được cơ sở dữ liệu, thu hẹp không gian, tránh mất dữ liệu

Tiết kiệm thời gian so với quản lý thủ công Dữ liệu được sao lưu trên máy, có thể phục hồi

4 Dễ dàng bảo trì, nâng cấp và phát triển Cải tiến

Có khả năng mở rộng và thêm các tính năng mới dễ dàng mà không làm phá vỡ cấu trúc hệ thống

5 Giao diện thân thiện, màu sắc đa dạng và rõ nét Tiện dụng

Giao diện dễ dàng cho người dùng sử dụng và tạo cảm giác hiện đại

6 Thao tác dễ dùng Tiện dụng Các thao tác đơn giản, gần gũi với người dùng

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU

2.1.1 Lược đồ chức năng tổng quan

Hình 2.1: Lược đồ chức năng

2.1.2.1 Chức năng quản lý thông tin cá nhân

Hình 2.2: Chức năng quản lý thông tin cá nhân

2.1.2.2 Chức năng quản lý tài liệu

Hình 2.3: Chức năng quản lý tài liệu

2.1.2.3 Chức năng quản lý người dùng

Hình 2.4: Chức năng quản lý người dùng

2.1.2.4 Chức năng quản lý danh mục

Hình 2.5: Chức năng quản lý danh mục

2.1.2.5 Chức năng quản lý lĩnh vực

Hình 2.6: Chức năng quản lý lĩnh vực

2.1.2.6 Chức năng quản lý trường

Hình 2.7: Chức năng quản lý trường

Bảng 2.1: Đặc tả chức năng đăng ký

Brief description Người dùng khách thực hiện đăng ký tài khoản mới

Pre-conditions Người dùng khách chưa có tài khoản và muốn tạo tài khoản mới

Post-conditions Người dùng khách tạo thành công tài khoản mới

1 Người dùng truy cập vào trang đăng ký

2 Người dùng nhập các thông tin yêu cầu

3 Người dùng nhấn nút Đăng ký

4 Hệ thống kiểm tra thông tin nhận vào

5 Hệ thống tạo tài khoản người dùng và thông báo đăng ký tài khoản thành công

4a Hệ thống phát hiện email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Extension point Người dùng nhấn Đăng nhập

Mật khẩu có độ dài tối thiểu là 8 ký tự

Tài khoản email đăng ký là tài khoản Gmail

Người dùng chỉ được đăng ký với vai trò sinh viên và giảng viên

Bảng 2.2: Đặc tả chức năng đăng nhập

Brief description Người dùng thực hiện đăng nhập vào hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã có tài khoản hợp lệ

Post-conditions Người dùng đăng nhập vào hệ thống thành công và thực hiện được

22 các chức năng theo phân quyền

1 Người dùng truy cập vào trang đăng nhập

2 Người dùng nhập email và mật khẩu

3 Người dùng nhấn Đăng nhập

4 Hệ thống xác thực thông tin đăng nhập

5 Người dùng đăng nhập thành công vào hệ thống

4a Hệ thống không thể xác thực thông tin đăng nhập

4a1 Hệ thống hiển thị thông báo lỗi thông tin đăng nhập chưa chính xác

4a2 Use case quay lại bước 2 của Basic flows

1 Người dùng nhấn Đăng ký

2 Người dùng nhấn Quên mật khẩu

Bảng 2.3: Đặc tả chức năng đăng xuất

Brief description Người dùng thực hiện đăng xuất ra khỏi hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đăng xuất thành công khỏi hệ thống

1 Người dùng nhấn nút Đăng xuất

2 Hệ thống hiển thị thông báo xác nhận việc đăng xuất của người dùng

4 Hệ thống kết thúc phiên người dùng và đưa người dùng quay lại trang đăng nhập

3a Người dùng huỷ bỏ đăng xuất

3a1 Người dùng chọn huỷ bỏ

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu

Name Lấy lại mật khẩu

Brief description Người dùng muốn lấy lại mật khẩu đã quên

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã có tài khoản hợp lệ trên hệ thống

Post-conditions Người dùng đổi được mật khẩu thành công

1 Người dùng nhấn Quên mật khẩu

2 Người dùng nhập email của tài khoản muốn lấy lại mật khẩu

3 Người dùng nhấn Lấy mã

4 Hệ thống kiểm tra email và tài khoản trong cơ sở dữ liệu

5 Hệ thống gửi mã xác nhận qua email

6 Người dùng nhập mã xác nhận

7 Người dùng nhấn Xác nhận

8 Hệ thống kiểm tra mã xác nhận

9 Hệ thống hiển thị ô nhập mật khẩu mới và mật khẩu xác nhận

10 Người dùng nhập mật khẩu mới và mật khẩu xác nhận

11 Người dùng nhấn Đổi mật khẩu

12.Hệ thống kiểm tra mật khẩu mới và mật khẩu xác nhận nhận được

13 Hệ thống thông báo đổi mật khẩu thành công

4a Hệ thống phát hiện email nhận được chưa được đăng ký 4a1 Hệ thống thông báo email chưa được đăng ký

4a2 Use case quay lại bước 2 của Basic flows 8a Hệ thống kiểm tra thấy mã xác nhận người dùng nhập vào không đúng

8a1 Hệ thống thông báo sai mã xác nhận

8a2 Use case quay lại bước 6 của Basic flows

Extension point Người dùng nhấn Đăng nhập

Bảng 2.5: Đặc tả chức năng đổi mật khẩu

Brief description Người dùng muốn đổi mật khẩu

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đăng nhập thành công vào hệ thống

Post-conditions Người dùng đổi mật khẩu thành công

1 Người dùng nhấn Trang cá nhân

2 Người dùng nhập mật khẩu hiện tại, mật khẩu mới, mật khẩu xác nhận

3 Người dùng nhấn Đổi mật khẩu

4 Hệ thống kiểm tra mật khẩu người dùng nhập vào

5 Hệ thống lưu mật khẩu mới và thông báo cập nhật mật khẩu thành công

4a Hệ thống kiểm tra thấy mật khẩu hiện tại không đúng 4a1 Hệ thống thông báo mật khẩu hiện tại không đúng 4a2 Use case quay lại bước 1 của Basic flows

2.2.6 Xem thông tin cá nhân

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân

Name Xem thông tin cá nhân

Brief description Người dùng xem thông tin cá nhân của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng xem được thông tin cá nhân

1 Người dùng nhấn Trang cá nhân

2 Hệ thống hiển thị thông tin cá nhân của người dùng Alternative flows

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

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân

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

Brief description Người dùng cập nhật thông tin cá nhân của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng cập nhật thành công thông tin cá nhân

1 Người dùng nhấn Trang cá nhân

2 Người dùng thay đổi các thông tin cần thiết

4 Hệ thống kiểm tra thông tin nhập vào

5 Hệ thống lưu thay đổi, thông báo cập nhật thông tin cá nhân thành công và hiển thị trang cá nhân mới

4a Hệ thống kiểm tra thấy email người dùng vừa chỉnh sửa đã được đăng ký

4a1 Hệ thống thông báo email đã được đăng ký trước đó

4a2 Use case quay lại bước 2 của Basic flows

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện

Name Đổi ảnh đại diện

Brief description Người dùng đổi ảnh đại diện cho tài khoản của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đổi ảnh đại diện thành công

1 Người dùng nhấn Trang cá nhân

2 Người dùng nhấn Chọn ảnh

3 Người dùng chọn ảnh từ thiết bị

5 Hệ thống tải và lưu ảnh đại diện, thông báo cập nhật thành công và hiển thị ảnh đại diện mới mới

Bảng 2.9: Đặc tả chức năng đọc tài liệu

Brief description Người dùng đọc tài liệu

Actor Người dùng khách, sinh viên

Post- conditions Người dùng đọc được tài liệu mà mình muốn

1 Người dùng truy cập danh sách tài liệu

2 Người dùng nhấp vào một tài liệu mà mình muốn đọc

3 Hệ thống hiển thị chi tiết tài liệu, trong đó nội dung tài liệu được hiển thị bằng trình xem PDF

Business rules Sinh viên chỉ đọc được những tài liệu công khai và tài liệu nội bộ của trường

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu

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

Brief description Người dùng tìm kiếm tài liệu

Actor Sinh viên, quản lý, admin

Post-conditions Người dùng tìm được các tài liệu mong muốn

1 Người dùng nhập từ khoá vào ô tìm kiếm trên trang web

2 Người dùng nhấn phím Enter hoặc biểu tượng tìm kiếm

3 Hệ thống tìm kiếm và hiển thị các tài liệu liên quan đến từ khoá nhận được

3a Hệ thống không thể tìm thấy được tài liệu nào phù hợp

3a1 Hệ thống hiển thị thông báo không tìm thấy tài liệu phù hợp 3a2 Use case kết thúc

Bảng 2.11: Đặc tả chức năng lọc tài liệu

Brief description Người dùng lọc tài liệu theo tiêu chí

Actor Người dùng khách, sinh viên

Post-conditions Người dùng thực hiện thao tác lọc để tìm ra các tài liệu thoả tiêu chí

1 Người dùng truy cập danh sách tài liệu

2 Người dùng chọn các tiêu chí lọc

3 Hệ thống tìm kiếm và hiển thị các tài liệu phù hợp với các tiêu chí lọc

3a Hệ thống không thể tìm thấy được tài liệu nào phù hợp

3a1 Hệ thống hiển thị thông báo không tìm thấy tài liệu phù hợp 3a2 Use case kết thúc

Bảng 2.12: Đặc tả chức năng thích tài liệu

Brief description Người dùng thêm tài liệu vào danh sách yêu thích

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa thích tài liệu dự định sẽ thích

Post-conditions Người dùng thêm tài liệu vào danh sách yêu thích thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng nhấn vào biểu tượng thích

3 Hệ thống thông báo đã thích tài liệu và tăng lượt thích lên

2a Người dùng muốn bỏ thích tài liệu

2a1 Người dùng nhấn vào biểu tượng thích

2a2 Hệ thống thông báo đã bỏ thích tài liệu và giảm lượt thích xuống

Bảng 2.13: Đặc tả chức năng lưu tài liệu

Brief description Người dùng thêm tài liệu vào danh sách đã lưu

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa lưu tài liệu dự định sẽ lưu

Post- conditions Người dùng thêm tài liệu vào danh sách đã lưu thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng nhấn vào biểu tượng lưu

3 Hệ thống thông báo đã lưu tài liệu

2a Người dùng muốn bỏ lưu tài liệu

2a1 Người dùng nhấn vào biểu tượng lưu

2a2 Hệ thống thông báo đã bỏ lưu tài liệu

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu

Name Đánh giá tài liệu

Brief description Người dùng đánh giá tài liệu

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa đánh giá tài liệu dự định sẽ đánh giá

Post-conditions Người dùng đánh giá tài liệu thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng chọn số sao và nhập lời đánh giá

4 Hệ thống kiểm tra thông tin nhận được

5 Hệ thống lưu lại đánh giá, cập nhật danh sách đánh giá và hiển thị thông báo đánh giá thành công

Bảng 2.15: Đặc tả chức năng đăng tài liệu

Brief description Người dùng đăng tải một tài liệu mới lên hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đăng tải thành công tài liệu lên hệ thống

1 Người dùng nhấn Tải lên/Thêm tài liệu

2 Người dùng nhập các thông tin được yêu cầu, chọn danh mục, lĩnh vực, chọn tệp tài liệu

3 Người dùng nhấn Tải lên

4 Hệ thống kiểm tra thông tin về tài liệu

5 Hệ thống lưu tài liệu và thông báo đã thêm tài liệu thành công

2a Người dùng có vai trò là admin

2a1 Người dùng nhập các thông tin được yêu cầu, chọn danh mục, lĩnh vực, chọn tệp tài liệu

2a2 Use case tiếp tục ở bước 3 của Basic flows

5a Người dùng có vai trò sinh viên

5a1 Hệ thống lưu tài liệu, thông báo đã thêm tài liệu thành công và đang đợi duyệt, chuyển tài liệu đang đợi đến quản lý và admin 5a2 Use case kết thúc

1 Sinh viên, quản lý sẽ tải tài liệu lên trường của mình

2 Quản lý và admin phê duyệt tài liệu do sinh viên tải lên

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu

Name Chỉnh sửa tài liệu

Brief description Người dùng chỉnh sửa tài liệu

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng chỉnh sửa tài liệu thành công

1 Người dùng truy cập vào danh sách tài liệu

2 Người dùng nhấn Chỉnh sửa bên cạnh tài liệu

3 Người dùng chỉnh sửa các thông tin cần thiết cũng như tệp tài liệu

4 Hệ thống kiểm tra thông tin về tài liệu

5 Hệ thống lưu tài liệu và thông báo đã chỉnh sửa tài liệu thành công

5a Người dùng có vai trò sinh viên

5a1 Hệ thống lưu lại tài liệu, thông báo đã chỉnh sửa tài liệu thành công và đang đợi duyệt, chuyển tài liệu đang đợi đến quản lý và admin

1 Sinh viên chỉnh sửa tài liệu thì tài liệu sẽ đưa về trạng thái chờ duyệt

2 Quản lý thực hiện chỉnh sửa các tài liệu thuộc trường mà mình quản lý

Bảng 2.17: Đặc tả chức năng xoá tài liệu

Brief description Người dùng muốn xoá một tài liệu

Pre-conditions Người dùng đăng nhập thành công vào hệ thống

Post-conditions Người dùng xoá tài liệu thành công

1 Người dùng truy cập danh sách tài liệu

2 Người dùng nhấn Xoá bên cạnh tài liệu

3 Hệ thống hiển thị xác nhận xoá tài liệu

5 Hệ thống xoá tài liệu, hiển thị thông báo xoá thành công và cập nhật lại danh sách tài liệu

4a Người dùng huỷ bỏ xoá tài liệu

4a1 Người dùng chọn Huỷ bỏ

Bảng 2.18: Đặc tả chức năng thêm người dùng

Brief description Người dùng thêm người dùng mới trên hệ thống

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng thêm người dùng mới thành công

1 Người dùng nhấn Thêm người dùng

2 Người dùng nhập các thông tin được yêu cầu cho người dùng mới

4 Hệ thống kiểm tra thông tin nhận vào

5 Hệ thống lưu người dùng mới, sau đó hiển thị thông báo thêm người dùng thành công

2a Người dùng có vai trò admin

2a1 Người dùng nhập các thông tin được yêu cầu và chọn trường cho người dùng mới

2a2 Use case tiếp tục ở bước 3 của Basic flows

4a Hệ thống kiểm tra thấy email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Mật khẩu có độ dài tối thiểu là 8 ký tự

Quản lý thực hiện thêm người dùng thuộc trường của mình

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng

Use case Chỉnh sửa người dùng

Brief description Người dùng chỉnh sửa thông tin của người dùng khác trên hệ thống

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người chỉnh sửa thành công thông tin thông tin của người dùng khác

1 Người dùng truy cập vào danh sách người dùng do mình quản lý

2 Người dùng nhấn Chỉnh sửa bên cạnh tài khoản của người dùng muốn chỉnh sửa

3 Người dùng chỉnh sửa các thông tin cần thiết của người dùng

5 Hệ thống lưu lại thay đổi và hiển thị thông báo chỉnh sửa người dùng thành công

Alternative flows 2a Người dùng có vai trò admin

2a1 Người dùng chỉnh sửa các thông tin của người dùng và chọn trường cho người dùng (nếu muốn)

2a2 Use case tiếp tục ở bước 3 của Basic flows

4a Hệ thống kiểm tra thấy email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Mật khẩu có độ dài tối thiểu là 8 ký tự

Quản lý thực hiện chỉnh sửa người dùng thuộc trường của mình

Bảng 2.20: Đặc tả chức năng xoá người dùng

Người dùng xoá một người dùng khác

Pre-conditions Người đã đăng nhập thành công vào hệ thống

Người dùng xoá thành công một người dùng khác

1 Người dùng truy cập vào danh sách người dùng mà mình quản lý

2 Người dùng nhấn Xoá bên cạnh tài khoản của người dùng muốn xoá

3 Hệ thống hiển thị cảnh báo xác nhận xoá người dùng

5 Hệ thống xoá người dùng, hiển thị thông báo xoá người dùng thành công và cập nhật lại danh sách người dùng

4a Người dùng huỷ bỏ việc xoá người dùng khác

4a1 Người dùng chọn Huỷ bỏ

4a2 Use case kết thúc 5a: Hệ thống kiểm tra thấy người dùng đã đăng tải tài liệu lên

5a1 Hệ thống vô hiệu hoá tài khoản người dùng, hiển thị thông báo vô hiệu hoá tài khoản người dùng và cập nhật lại danh sách người dùng

Business rules Quản lý thực hiện xoá người dùng thuộc trường mà mình quản lý

Bảng 2.21: Đặc tả chức năng xoá đánh giá

Brief description Người dùng xoá đánh giá vi phạm của tài liệu

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng xoá đánh giá thành công

1 Người dùng truy cập vào danh sách đánh giá của các tài liệu thuộc trường mà mình quản lý

2 Người dùng nhấn Xoá bên cạnh đánh giá

3 Hệ thống hiển thị cảnh báo xác nhận xoá đánh giá

5 Hệ thống xoá đánh giá, hiển thị thông báo xoá đánh giá thành công và cập nhật lại danh sách đánh giá

4a Người dùng huỷ bỏ việc xoá đánh giá

4a1 Người dùng chọn Huỷ bỏ

Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu

Name Phê duyệt tài liệu

Brief description Người dùng phê duyệt tài liệu do sinh viên tải lên

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng phê duyệt tài liệu thành công

1 Người dùng truy cập vào danh sách tài liệu đang chờ phê duyệt do mình quản lý

2 Người dùng nhấn Phê duyệt

3 Hệ thống hiển thị thông báo yêu cầu chọn hành động

4 Người dùng chọn Chấp nhận

Các công nghệ và thư viện được sử dụng

4.1.2 Tương tác và giao tiếp giữa các thành phần

Giao tiếp giữa client và server được thực hiện thông qua RESTful API

Client (ReactJS) sử dụng Axios – một thư viện HTTP của NodeJS để gửi các yêu cầu HTTP đến server Server (Spring Boot) định nghĩa và cung cấp các API endpoints để xử lý các yêu cầu nhận được từ phía client Nó sẽ bắt các yêu cầu, thực hiện xử lý cũng như trả về dữ liệu dưới dạng JSON

Server có tầng Controller chịu trách nhiệm điều khiển luồng xử lý của ứng dụng khi nhận được yêu cầu HTTP từ ReactJS cũng như là trả về các phản hồi HTTP Nó gọi các phương thức trong tầng Service để xử lý các logic nghiệp vụ cho hệ thống Tầng Service lại gọi các phương thức trong lớp Repository để tương tác với dữ liệu Repository sẽ giao tiếp với MySQL thông qua Spring Data JPA và nó cung cấp các phương thức để thao tác trên dữ liệu Kết quả sau khi thao tác sẽ được trả ngược lại theo luồng vừa rồi đến client

4.2 Các công nghệ và thư viện được sử dụng

Spring Boot là một dự án phát triển bởi JAV (ngôn ngữ Java) trong hệ sinh thái Spring Framework Nó giúp cho các lập trình viên đơn giản hóa quá trình lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển nghiệp vụ cho ứng dụng

Tính năng của Spring Boot:

- Tự động cấu hình: Spring Boot tự động cấu hình ứng dụng dựa trên thư viện có sẵn trong classpath, giảm bớt nhu cầu phải chỉ định các bean trong tệp cấu hình một cách thủ công

- Tính độc lập: các ứng dụng Spring Boot có tính tự đóng gói, cho phép chúng chạy độc lập mà không cần máy chủ bên ngoài Điều này giúp giảm xung đột và tăng tính di động của ứng dụng

- Hỗ trợ sẵn sàng triển khai cho môi trường sản xuất: Spring Boot cung cấp các công cụ tích hợp để kiểm tra sức khỏe và hiệu suất của ứng dụng, làm cho quá trình giám sát và quản lý trở nên hiệu quả trong môi trường sản xuất

- Cấu hình mặc định: Spring Boot cung cấp cấu hình POM (Project Object Model) mặc định thông qua một tệp pom.xml Nó cung cấp các thiết lập sẵn sàng để sử dụng ngay và cho phép thêm thủ công các thành phần phụ thuộc mong muốn

- Hỗ trợ Microservices: Spring Boot là công cụ hàng đầu để xây dựng các microservices, tích hợp mượt mà với các framework mạnh mẽ của Spring Cloud và hỗ trợ nhúng máy chủ bên ngoài trực tiếp vào ứng dụng, cho phép mỗi microservice chạy độc lập

- Máy chủ nhúng: Spring Boot hỗ trợ các máy chủ web phổ biến như Tomcat, Jetty và Undertow được nhúng trực tiếp vào ứng dụng, giúp ứng dụng chạy trực tiếp như các ứng dụng Java độc lập

Hình 0.2: Cấu trúc dự án Spring Boot đơn giản

4.2.1.2 Cách cấu hình và sử dụng Spring Boot

- Tạo một project sử dụng Maven với các dependency cần thiết của Spring MVC và Servlet API

Hình 0.3: Tạo dự án Spring Boot với Maven

- Một tập tin pom.xml để khai báo các dependency

Hình 0.4: Khai báo dependency trong pom.xml

- Tạo controller để xử lý yêu cầu HTTP

Hình 0.5: Controller trong Spring Boot

- Cuối cùng là phải có một web server dùng để triển khai ứng dụng lên chạy Spring Boot hỗ trợ web server nhúng trực tiếp nên không cần cấu hình từ bên ngoài Có nhiều web server để chạy ứng dụng trên web server như Tomcat, Jetty, Undertow, Wildfly (JBoss), và nhiều lựa chọn khác tùy thuộc vào yêu cầu cụ thể của dự án

Hình 0.6: Spring Boot và Tomcat

Spring Security là một module mạnh mẽ của dự án Spring, được sử dụng để quản lý bảo mật trong ứng dụng Java Nó cung cấp các tính năng mạnh mẽ để xác thực người dùng, kiểm soát quyền truy cập và quản lý bảo mật trong các ứng dụng web và dịch vụ

Các chức năng chính của Spring Security:

 Spring Security hỗ trợ nhiều phương thức xác thực như xác thực bằng form login, xác thực bằng mã thông báo (token), xác thực LDAP, và nhiều phương thức khác

 Cung cấp tích hợp với Spring Framework và nhiều cơ sở dữ liệu người dùng khác nhau

- Quản lý quyền truy cập (Authorization):

 Spring Security cho phép đặt quyền truy cập (roles) cho các tài nguyên và phương thức trong ứng dụng

 Hỗ trợ cả phương thức đơn giản như hasRole đến phương thức phức tạp hơn như @PreAuthorize trong Spring Expression Language (SpEL)

- Bảo vệ chống CSRF (Cross-Site Request Forgery):

 Spring Security cung cấp bảo vệ chống CSRF mặc định bằng cách sử dụng token

 Ngăn chặn các cuộc tấn công gửi yêu cầu từ một trang web khác mà người dùng đã đăng nhập

- Xử lý phiên (Session Management):

 Hỗ trợ quản lý phiên người dùng, có thể cấu hình để sử dụng phiên thông thường hoặc phiên dựa trên token (stateless)

 Ngăn chặn tấn công hiệu quả như session fixation

 Sử dụng các filter để kiểm soát luồng xử lý request/response của ứng dụng

 Cho phép tùy chỉnh và mở rộng các filter để thực hiện các nhiệm vụ bảo mật tùy chỉnh

4.2.2.2 Sử dụng Spring Security trong Spring Boot

Trong file pom.xml, thêm dependency cho Spring Security

Hình 0.7: Thêm dependency Spring Security vào dự án

Tùy chỉnh cấu hình Spring Security trong ứng dụng, có thể sử dụng các cấu hình Java hoặc XML

Hình 0.8: Cấu hình Filter Chain

Hình 0.9: Cấu hình xác thực

JSON Web Token (JWT) là một tiêu chuẩn mở được thiết kế để truyền thông tin một cách an toàn giữa các bên trong một chuỗi JSON Trong Spring Boot, JWT thường được sử dụng để xác thực và ủy quyền người dùng

Trong Spring Boot, có nhiều thư viện hỗ trợ việc xử lý JWT Một số thư viện phổ biến là Spring Security và jjwt (Java JWT)

- Tạo JWT (JWT Signing): Server sẽ tạo một JWT khi người dùng đăng nhập hoặc yêu cầu một token JWT sẽ bao gồm thông tin về người dùng và một chữ ký được tạo từ thông tin này

- Gửi JWT đến client: JWT được gửi về client, nơi nó có thể được lưu trữ (thường là trong cookies hoặc localStorage) để được sử dụng trong các yêu cầu tiếp theo

THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ

Quản lý và admin

6 Chương 6: Cài đặt và kiểm thử

STT Thời gian Công việc Ghi chú

1 28/2/2024-6/3/2024 Tham khảo, xác định đề tài

2 6/3/2024-13/4/2024 Khảo sát, phân tích và xác định các yêu cầu của đề tài

3 13/3/2024-20/3/2024 Xây dựng lược đồ chức năng, đặc tả chức năng

4 20/3/2024- 27/3/2024 Xây dựng lược đồ tuần tự

5 27/3/2024- 3/4/2024 Thiết kế giao diện phần sinh viên và người dùng khách

6 3/4/2024 – 10/4/2024 Thiết kế và xây dựng cơ sở dữ liệu

8 17/4/2024-24/4/2024 Kết nối giao diện và back-end cho sinh viên và người dùng khách

9 24/4/2024-1/5/2024 Thiết kế giao diện phần quản lý và admin

10 1/5/2024 – 8/5/2024 Kết nối giao diện và back-end cho quản lý và admin

11 8/5/2024 -15/5/2024 Hoàn thiện các chức năng và bổ sung các chức năng bị thiếu

12 15/5/2024 – 22/5/2024 Kiểm thử lại trang web, sửa chữa lỗi

15 5/6/2024 – 28/6/2024 Chỉnh sửa báo cáo và làm

Vu Hoang Anh Ý kiến của giáo viên hướng dẫn

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC ĐÍCH CỦA ĐỀ TÀI 1

CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 3

1.2 Khảo sát một số phần mềm 3

1.3 Phân tích yêu cầu của dự án 8

1.4 Yêu cầu chức năng nghiệp vụ 10

1.5 Danh sách yêu cầu chức năng nghiệp vụ 11

1.6 Danh sách yêu cầu chức năng hệ thống 14

1.7 Danh sách yêu cầu phi chức năng 15

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU 17

2.1.1 Lược đồ chức năng tổng quan 17

2.2.6 Xem thông tin cá nhân 26

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

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 59

3.1.6 Xem thông tin cá nhân 63

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

CHƯƠNG 4: KIẾN TRÚC HỆ THỐNG 90

4.1.2 Tương tác và giao tiếp giữa các thành phần 91

4.2 Các công nghệ và thư viện được sử dụng 91

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 117

5.1 Sinh viên và người dùng khách 117

5.1.9 Danh sách tài liệu chính 126

5.1.10 Danh sách tài liệu đã thích 128

5.1.11 Danh sách tài liệu đã lưu 129

5.1.12 Danh sách tài liệu đã tải lên đã được duyệt 130

5.1.13 Danh sách tài liệu đã tải lên đang đợi duyệt 131

5.1.14 Danh sách tài liệu đã tải lên bị từ chối 131

5.1.17 Danh sách tài liệu của một người 135

5.2.27 Danh sách tài liệu đang chờ 175

CHƯƠNG 6 CÀI ĐẶT, DEPLOY VÀ KIỂM THỬ 180

6.1.2 Cài đặt với docker compose 180

DANH MỤC TÀI LIỆU THAM KHẢO 188

Hình 1.1: Trang chủ Studocu 4

Hình 1.2: Danh sách tài liệu theo trường học 4

Hình 1.3: Xem chi tiết tài liệu 5

Hình 1.4: Tải tài liệu lên 5

Hình 1.5: Trang chủ thư viện số HCMUTE 6

Hình 1.6: Chi tiết tài liệu 7

Hình 1.7: Tải tài liệu 7

Hình 2.1: Lược đồ chức năng 17

Hình 2.2: Chức năng quản lý thông tin cá nhân 17

Hình 2.3: Chức năng quản lý tài liệu 18

Hình 2.4: Chức năng quản lý người dùng 18

Hình 2.5: Chức năng quản lý danh mục 19

Hình 2.6: Chức năng quản lý lĩnh vực 19

Hình 2.7: Chức năng quản lý trường 20

Hình 3.1: Lược đồ tuần tự chức năng đăng ký 59

Hình 3.2: Lược đồ tuần tự chức năng đăng nhập 60

Hình 3.3: Lược đồ tuần tự chức năng đăng xuất 60

Hình 3.4: Lược đồ tuần tự chức năng lấy lại mật khẩu 61

Hình 3.5: Lược đồ tuần tự chức năng đổi mật khẩu 62

Hình 3.6: Lược đồ tuần tự chức năng xem thông tin cá nhân 63

Hình 3.7: Lược đồ tuần tự chức năng cập nhật thông tin cá nhân 64

Hình 3.8: Lược đồ tuần tự chức năng đổi ảnh đại diện 65

Hình 3.9: Lược đồ tuần tự chức năng đọc tài liệu 65

Hình 3.10: Lược đồ tuần tự chức năng tìm kiếm tài liệu 66

Hình 3.11: Lược đồ tuần tự chức năng lọc tài liệu 66

Hình 3.12: Lược đồ tuần tự chức năng thích tài liệu 67

Hình 3.13: Lược đồ tuần tự chức năng lưu tài liệu 67

Hình 3.14: Lược đồ tuần tự chức năng đánh giá tài liệu 68

Hình 3.15: Lược đồ tuần tự chức năng đăng tài liệu 69

Hình 3.16: Lược đồ tuần tự chức năng chỉnh sửa tài liệu 70

Hình 3.17: Lược đồ tuần tự chức năng xoá tài liệu 71

Hình 3.18: Lược đồ tuần tự chức năng thêm người dùng 72

Hình 3.19: Lược đồ tuần tự chức năng chỉnh sửa người dùng 73

Hình 3.20: Lược đồ tuần tự chức năng xoá người dùng 74

Hình 3.21: Lược đồ tuần tự chức năng xoá đánh giá 75

Hình 3.22: Lược đồ tuần tự chức năng phê duyệt tài liệu 76

Hình 3.23: Lược đồ tuần tự chức năng thêm trường 77

Hình 3.24: Lược đồ tuần tự chức năng chỉnh sửa trường 78

Hình 3.25: Lược đồ tuần tự chức năng xoá trường 79

Hình 3.26: Lược đồ tuần tự chức năng kích hoạt trường 80

Hình 3.27: Lược đồ tuần tự chức năng thêm danh mục 81

Hình 3.28: Lược đồ tuần tự chức năng chỉnh sửa danh mục 82

Hình 3.29: Lược đồ tuần tự chức năng xoá danh mục 83

Hình 3.30: Lược đồ tuần tự chức năng kích hoạt danh mục 84

Hình 3.31: Lược đồ tuần tự chức năng thêm lĩnh vực 85

Hình 3.32: Lược đồ tuần tự chức năng chỉnh sửa lĩnh vực 86

Hình 3.33: Lược đồ tuần tự chức năng xoá lĩnh vực 87

Hình 3.34: Lược đồ tuần tự chức năng kích hoạt lĩnh vực 88

Hình 3.35: Lược đồ tuần tự chức năng thống kê 88

Hình 3.36: Lược đồ lớp của hệ thống 89

Hình 4.1: Kiến trúc tổng quan của hệ thống 90

Hình 4.2: Cấu trúc dự án Spring Boot đơn giản 92

Hình 4.3: Tạo dự án Spring Boot với Maven 93

Hình 4.4: Khai báo dependency trong pom.xml 94

Hình 4.5: Controller trong Spring Boot 94

Hình 4.6: Spring Boot và Tomcat 95

Hình 4.7: Thêm dependency Spring Security vào dự án 96

Hình 4.8: Cấu hình Filter Chain 97

Hình 4.9: Cấu hình xác thực 97

Hình 4.10: Thêm JWT Filter vào SecurityFilterChain 98

Hình 4.12: Tạo và trả JWT khi login 99

Hình 4.13: Repository interface trong Spring Data JPA 100

Hình 4.14: Truy vấn query tuỳ chỉnh 100

Hình 4.15: Thêm dependency của Spring Data JPA 101

Hình 4.16: Cấu hình kết nối MySQL trong application.yml 101

Hình 4.17: Tạo các entity classes 102

Hình 4.18: Kiến trúc ReactJS 103

Hình 4.19: Cấu trúc thư mục ReactJS 103

Hình 4.22: Minh hoạ tệp JSX 106

Hình 4.23: Ví dụ về useState 106

Hình 4.24: Ví dụ về useEffect 107

Hình 4.25: Chuyển hướng với useNavigate 107

Hình 4.26: Lấy đường dẫn hiện tại bằng useLocation 108

Hình 4.27: Truy xuất tham số từ URL với useParams 108

Hình 4.28: Minh hoạ props 108

Hình 4.29: Axios trong package.json 109

Hình 4.30: Sử dụng axios để gửi yêu cầu GET lấy tất cả danh mục 109

Hình 4.31: Tạo dự án Google Cloud 110

Hình 4.32: Giao diện APIs & Services 111

Hình 4.33: Kích hoạt Google Drive API 111

Hình 4.34: Giao diện Credentials để tạo service account 112

Hình 4.35: Tạo service account 112

Hình 4.37: Google Drive API dependency 113

Hình 4.38: Cấu hình Bean cho Google Drive API 114

Hình 4.39: Xoá tệp bằng Google Drive API 114

Hình 4.40: Tải lên tệp bằng Google Drive API 114

Hình 4.41: Kiến trúc của MySQL 115

Hình 4.42: Sử dụng MySQL thiết kế cơ sở dữ liệu 116

Hình 5.1: Giao diện trang chủ 117

Hình 5.2: Giao diện đăng nhập 118

Hình 5.3: Giao diện đăng ký 119

Hình 5.4: Giao diện quên mật khẩu 120

Hình 5.5: Giao diện thanh trên 121

Hình 5.6: Giao diện thanh bên 122

Hình 5.7: Giao diện thông tin cá nhân 123

Hình 5.8: Giao diện chi tiết tài liệu 125

Hình 5.9: Giao diện danh sách tài liệu chính 127

Hình 5.10: Giao diện danh sách tài liệu đã thích 128

Hình 5.11: Giao diện danh sách tài liệu đã lưu 129

Hình 5.12: Giao diện danh sách tài liệu tải lên đã được duyệt 130

Hình 5.13: Giao diện danh sách tài liệu tải lên đang đợi duyệt 131

Hình 5.14: Giao diện danh sách tài liệu tải lên bị từ chối 132

Hình 5.15: Giao diện đăng tài liệu 133

Hình 5.16: Giao diện chỉnh sửa tài liệu 134

Hình 5.17: Giao diện danh sách tài liệu của một người 136

Hình 5.18: Giao diện đăng nhập 137

Hình 5.19: Giao diện quên mật khẩu 138

Hình 5.20: Giao diện thông tin cá nhân 140

Hình 5.21: Giao diện trang chủ quản trị 143

Hình 5.22: Giao diện danh sách tài liệu 144

Hình 5.23: Giao diện chi tiết tài liệu 146

Hình 5.24: Giao diện thêm tài liệu 147

Hình 5.25: Giao diện chỉnh sửa tài liệu 149

Hình 5.26: Giao diện xoá tài liệu 150

Hình 5.27: Giao diện danh sách danh mục 151

Hình 5.28: Giao diện thêm danh mục 153

Hình 5.29: Giao diện chỉnh sửa danh mục 154

Hình 5.30: Giao diện xoá danh mục 155

Hình 5.31: Giao diện danh sách lĩnh vực 156

Hình 5.32: Giao diện thêm lĩnh vực 158

Hình 5.33: Giao diện chỉnh sửa lĩnh vực 159

Hình 5.34: Giao diện xoá lĩnh vực 160

Hình 5.35: Giao diện danh sách trường 161

Hình 5.36: Giao diện thêm trường 163

Hình 5.37: Giao diện chỉnh sửa trường 164

Hình 5.38: Giao diện chỉnh sửa trường 165

Hình 5.39: Giao diện danh sách người dùng 166

Hình 5.40: Giao diện chi tiết người dùng 168

Hình 5.41: Giao diện thêm người dùng 170

Hình 5.42: Giao diện chỉnh sửa người dùng 172

Hình 5.43: Giao diện xoá người dùng 174

Hình 5.44: Giao diện danh sách tài liệu đang chờ 175

Hình 5.45: Giao diện phê duyệt tài liệu 176

Hình 5.46: Giao diện từ chối tài liệu 177

Hình 5.47: Giao diện danh sách đánh giá 178

Hình 5.48: Giao diện xoá đánh giá 179

Bảng 1.1: Nhận xét trang web Studocu 5

Bảng 1.2: Nhận xét thư viện số HCMUTE 7

Bảng 1.3: Danh sách chức năng chính 8

Bảng 1.4: Yêu cầu chức năng quản lý thông tin cá nhân 11

Bảng 1.5: Yêu cầu chức năng quản lý người dùng 12

Bảng 1.6: Yêu cầu chức năng quản lý tài liệu 12

Bảng 1.7: Yêu cầu chức năng quản lý danh mục 13

Bảng 1.8: Yêu cầu chức năng quản lý lĩnh vực 13

Bảng 1.9: Yêu cầu chức năng quản lý trường 14

Bảng 1.10: Yêu cầu chức năng quản lý đánh giá 14

Bảng 1.11: Danh sách yêu cầu chức năng hệ thống 14

Bảng 1.12: Danh sách yêu cầu phi chức năng 15

Bảng 2.1: Đặc tả chức năng đăng ký 20

Bảng 2.2: Đặc tả chức năng đăng nhập 21

Bảng 2.3: Đặc tả chức năng đăng xuất 22

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu 23

Bảng 2.5: Đặc tả chức năng đổi mật khẩu 25

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân 26

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân 27

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện 28

Bảng 2.9: Đặc tả chức năng đọc tài liệu 29

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu 30

Bảng 2.11: Đặc tả chức năng lọc tài liệu 31

Bảng 2.12: Đặc tả chức năng thích tài liệu 32

Bảng 2.13: Đặc tả chức năng lưu tài liệu 33

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu 34

Bảng 2.15: Đặc tả chức năng đăng tài liệu 35

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu 36

Bảng 2.17: Đặc tả chức năng xoá tài liệu 37

Bảng 2.18: Đặc tả chức năng thêm người dùng 38

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng 40Bảng 2.20: Đặc tả chức năng xoá người dùng 41Bảng 2.21: Đặc tả chức năng xoá đánh giá 43Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu 44Bảng 2.23: Đặc tả chức năng thêm trường 45Bảng 2.24: Đặc tả chức năng chỉnh sửa trường 46Bảng 2.25: Đặc tả chức năng xoá trường 47Bảng 2.26: Đặc tả chức năng kích hoạt trường 48Bảng 2.27: Đặc tả chức năng thêm danh mục 49Bảng 2.28: Đặc tả chức năng chỉnh sửa danh mục 50Bảng 2.29: Đặc tả chức năng xoá danh mục 51Bảng 2.30: Đặc tả chức năng kích hoạt lĩnh vực 53Bảng 2.31: Đặc tả chức năng thêm lĩnh vực 54Bảng 2.32: Đặc tả chức năng chỉnh sửa lĩnh vực 55Bảng 2.33: Đặc tả chức năng xoá lĩnh vực 56Bảng 2.34: Đặc tả chức năng kích hoạt lĩnh vực 57Bảng 2.35: Đặc tả chức năng thống kê 58Bảng 5.1: Bảng mô tả giao diện trang chủ 117Bảng 5.2: Bảng mô tả giao diện đăng nhập 118Bảng 5.3: Bảng mô tả giao diện đăng ký 119Bảng 5.4: Bảng mô tả giao diện quên mật khẩu 120Bảng 5.5: Bảng mô tả giao diện thanh trên 121Bảng 5.6: Bảng mô tả giao diện thanh bên 122Bảng 5.7: Bảng mô tả giao diện thông tin cá nhân 123Bảng 5.8: Bảng mô tả giao diện chi tiết tài liệu 125Bảng 5.9: Bảng mô tả giao diện danh sách tài liệu chính 127Bảng 5.10: Bảng mô tả giao diện danh sách tài liệu đã thích 128Bảng 5.11: Bảng mô tả giao diện danh sách tài liệu đã lưu 129Bảng 5.12: Bảng mô tả giao diện danh sách tài liệu tải lên đã được duyệt 130Bảng 5.13: Bảng mô tả giao diện danh sách tài liệu tải lên đang đợi duyệt 131Bảng 5.14: Bảng mô tả giao diện danh sách tài liệu tải lên bị từ chối 132Bảng 5.15: Bảng mô tả giao diện đăng tài liệu 133

Bảng 5.16: Bảng mô tả giao diện chỉnh sửa tài liệu 135Bảng 5.17: Bảng mô tả giao diện danh sách tài liệu của một người 136Bảng 5.18: Bảng mô tả giao diện đăng nhập 137Bảng 5.19: Bảng mô tả giao diện quên mật khẩu 138Bảng 5.20: Bảng mô tả giao diện thông tin cá nhân 141Bảng 5.21: Bảng mô tả giao diện trang chủ quản trị 143Bảng 5.22: Bảng mô tả giao diện danh sách tài liệu 145Bảng 5.23: Bảng mô tả giao diện chi tiết tài liệu 146Bảng 5.24: Bảng mô tả giao diện thêm tài liệu 148Bảng 5.25: Bảng mô tả giao diện chỉnh sửa tài liệu 149Bảng 5.26: Bảng mô tả giao diện xoá tài liệu 150Bảng 5.27: Bảng mô tả giao diện danh sách danh mục 151Bảng 5.28: Bảng mô tả giao diện thêm danh mục 153Bảng 5.29: Bảng mô tả giao diện chỉnh sửa danh mục 154Bảng 5.30: Bảng mô tả giao diện xoá danh mục 155Bảng 5.31: Bảng mô tả giao diện danh sách lĩnh vực 156Bảng 5.32: Bảng mô tả giao diện thêm lĩnh vực 158Bảng 5.33: Bảng mô tả giao diện chỉnh sửa lĩnh vực 159Bảng 5.34: Bảng mô tả giao diện xoá lĩnh vực 160Bảng 5.35: Bảng mô tả giao diện danh sách trường 161Bảng 5.36: Bảng mô tả giao diện thêm trường 163Bảng 5.37: Bảng mô tả giao diện chỉnh sửa trường 164Bảng 5.38: Bảng mô tả giao diện xoá trường 165Bảng 5.39: Bảng mô tả giao diện danh sách người dùng 166Bảng 5.40: Bảng mô tả giao diện chi tiết người dùng 168Bảng 5.41: Bảng mô tả giao diện thêm người dùng 171Bảng 5.42: Bảng mô tả giao diện chỉnh sửa người dùng 173Bảng 5.43: Bảng mô tả giao diện xoá người dùng 174Bảng 5.44: Bảng mô tả giao diện danh sách tài liệu đang chờ 175Bảng 5.45: Bảng mô tả giao diện phê duyệt tài liệu 176Bảng 5.46: Bảng mô tả giao diện từ chối tài liệu 177Bảng 5.47: Bảng mô tả giao diện danh sách đánh giá 178

Bảng 5.48: Bảng mô tả giao diện xoá đánh giá 179Bảng 6.1: Sản phẩm deploy 180Bảng 6.2: Lịch trình công việc 181Bảng 6.3: Chiến lược kiểm thử 182Bảng 6.4: Kết quả kiểm thử 183

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại ngày nay, công nghệ thông tin đã và đang phát triển nhanh chóng, mạnh mẽ trong tất cả các lĩnh vực đời sống Từ những bước tiến vượt bậc trong lĩnh vực máy tính, mạng lưới, đến sự bùng nổ của Internet và sự xuất hiện của trí tuệ nhân tạo, công nghệ thông tin dần chuyển đổi cách con người sống, làm việc và tương tác với nhau Đặc biệt, nó đã mở ra nhiều cơ hội mới trong việc chia sẻ và truy cập thông tin Giờ đây, con người có thể tiếp cận và sử dụng nguồn tài nguyên trên mạng từ xa, không giới hạn thời gian và địa điểm Điều này cũng mở ra tương lai cho các dịch vụ lưu trữ và cung cấp tài nguyên đến cho người dùng trực tuyến

Lĩnh vực giáo dục cũng chứng kiến sự thay đổi mạnh mẽ dưới tác động của công nghệ Các mô hình giảng dạy và học tập truyền thống dần dần chuyển đổi sang môi trường máy tính và trực tuyến Kèm theo đó là nhu cầu cho việc sử dụng các nguồn tài nguyên học tập tăng lên một cách mạnh mẽ Nếu như trước kia, khi muốn tìm hiểu và học tập về một nội dung, lĩnh vực nào đó, sinh viên sẽ cần phải có một bản tài liệu hoặc một cuốn sách bằng giấy Tuy nhiên, ngày nay, sinh viên hầu như có thể truy cập mạng Internet để tìm và sử dụng các tài liệu đó Điều này vừa tạo sự tiện lợi cho người học cũng như cung cấp khả năng tiếp cận kho tài liệu phong phú Tuy nhiên, việc học tập là không giới hạn ở chỉ mỗi một trường đại học Mỗi trường đại học sẽ có một nguồn tài liệu bổ ích và quý giá khác nhau Do đó, em nghĩ đến ý tưởng tạo một trang web tổng hợp và phân loại tài liệu theo các trường đại học, cao đẳng nhằm cung cấp một nguồn tài nguyên phong phú và bổ ích đến các sinh viên

Xuất phát từ ý tưởng đó, em xin thực hiện đề tài Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài này là tạo nên một trang web diễn đàn cung cấp một kho tài liệu bổ ích và phong phú đến cho sinh viên, giúp cho sinh viên tiếp cận tài liệu học tập một cách tiện lợi và hiệu quả

- Đối tượng nghiên cứu Đề tài tập trung nghiên cứu những vấn đề sau:

 Các kỹ thuật phân tích thiết kế hệ thống

 Tìm hiểu về Spring Boot trên nền tảng Java để xây dựng API cho hệ thống

 Tìm hiểu về React để xây dựng giao diện người dùng

 Tìm hiểu về Google Drive API để lưu trữ tài liệu

Trong phạm vi của đề tài, nhóm chúng em tập trung nghiên cứu các chức năng cơ bản của một hệ thống quản lý tài liệu như truy cập tài liệu, tải lên, chỉnh sửa, xoá bỏ, phân loại

PHẦN NỘI DUNG CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 1.1 Phân tích hiện trạng

Ngày nay, Internet đã và đang phát triển một cách chóng mặt và trở nên rất phổ biến Sự tiện lợi mà Internet mang lại trong các lĩnh vực đời sống và xã hội là điều không thể phủ nhận Trong đó, nhu cầu sử dụng và truy cập nguồn tài liệu học tập trên Internet là rất là lớn Internet cung cấp một lượng tài liệu khổng lồ và cực kỳ đa dạng cho học sinh, sinh viên sử dụng Trong số đó, có hàng nghìn, hàng chục nghìn trang web chuyên về cung cấp tài liệu đến cho người học

Nhìn chung, các trang web cung cấp lượng tài liệu đa dạng ở nhiều lĩnh vực và thể loại khác nhau Tuy nhiên, điều này cũng đặt ra một số thách thức và vấn đề:

- Không phải tất cả các nguồn tài liệu trên Internet đều đảm bảo về chất lượng và tính tin cậy Có rất nhiều tài liệu không chính xác hoặc không được kiểm chứng một cách đầy đủ

- Một số trang web yêu cầu người sử dụng trả phí để có quyền truy cập đầy đủ nội dung

- Một số trang web chứa quảng cáo gây làm phiền và ảnh hưởng đến trải nghiệm người dùng

- Người học cần phải có kỹ năng tìm kiếm trên Internet để có thể tận dụng tối đa nguồn tài liệu

1.2 Khảo sát một số phần mềm

 Đường dẫn trang web: https://www.studocu.com/

Hình 0.1: Trang chủ Studocu

Hình 0.1.: Danh sách tài liệu theo trường học

Hình 0.3: Xem chi tiết tài liệu

Hình 0.4: Tải tài liệu lên

Bảng 0.1: Nhận xét trang web Studocu

- Tìm kiếm khoá học, sách, tài liệu

- Nguồn tài liệu chưa được kiểm soát chặt chẽ

- Tải lên và chia sẻ tài liệu

- Thích, bỏ thích, bình luận, lưu, chia sẻ lên mạng xã hội

- Đăng ký Premium để truy cập các tính năng như tài liệu nâng cao, tải, in tài liệu

 Đường dẫn trang web: https://thuvienso.hcmute.edu.vn/

Hình 0.5: Trang chủ thư viện số HCMUTE

Hình 0.7: Chi tiết tài liệu

Hình 0.8: Tải tài liệu

Bảng 0.1: Nhận xét thư viện số HCMUTE

- Tìm kiếm sách, tài liệu

- Chủ yếu là tài liệu liên quan đến Trường Đại học Sư phạm Kỹ thuật

- Tải lên và chia sẻ tài liệu

- Thích, bình chọn, bình luận, chia sẻ lên mạng xã hội

1.3 Phân tích yêu cầu của dự án

Xây dựng một trang web để chia sẻ tài liệu học tập cho sinh viên giữa các trường đại học, cao đẳng Người dùng có thể tìm đọc và chia sẻ tài liệu của mình với những người khác Ngoài ra, hệ thống còn được quản lý bởi admin và người quản lý nhằm kiểm soát nguồn tài liệu được chia sẻ Các chức năng chính của chương trình bao gồm:

Bảng 0.2.3.: Danh sách chức năng chính Đối tượng sử dụng Các chức năng thực hiện

Sinh viên Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đọc tài liệu

Tìm kiếm tài liệu Thích tài liệu Lưu tài liệu Đánh giá tài liệu

9 Đăng tài liệu Cập nhật tài liệu Xoá tài liệu

Quản lý Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu cho trường Cập nhật tài liệu của trường Xoá tài liệu của trường Thêm người dùng cho trường Cập nhật người dùng của trường Xoá người dùng của trường Xoá đánh giá của trường Phê duyệt tài liệu của trường

Admin Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu

Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu

Cập nhật tài liệu Xoá tài liệu Thêm người dùng Cập nhật người dùng Xoá người dùng Thêm trường Cập nhật trường Xoá trường Kích hoạt trường Thêm danh mục Cập nhật danh mục Xoá danh mục Kích hoạt danh mục Thêm lĩnh vực Cập nhật lĩnh vực Xoá lĩnh vực Kích hoạt lĩnh vực Phê duyệt tài liệu Thống kê

1.4 Yêu cầu chức năng nghiệp vụ

1.5 Danh sách yêu cầu chức năng nghiệp vụ

 Quản lý thông tin cá nhân

Bảng 0.2: Yêu cầu chức năng quản lý thông tin cá nhân

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin cá nhân Tra cứu

2 Cập nhật thông tin cá nhân Lưu trữ

Bảng 0.3: Yêu cầu chức năng quản lý người dùng

Bảng 0.4: Yêu cầu chức năng quản lý tài liệu

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin người dùng Tra cứu

2 Cập nhật thông tin người dùng Lưu trữ

3 Xoá người dùng Lưu trữ

4 Số lượng người dùng Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem tài liệu Tra cứu

2 Tìm kiếm tài liệu Tra cứu

3 Đăng tài liệu Lưu trữ

4 Cập nhật tài liệu Lưu trữ

5 Xoá tài liệu Lưu trữ

6 Thích tài liệu Lưu trữ

Bảng 0.5: Yêu cầu chức năng quản lý danh mục

Bảng 0.6: Yêu cầu chức năng quản lý lĩnh vực

7 Lưu tài liệu Lưu trữ

8 Đánh giá tài liệu Lưu trữ

9 Phê duyệt tài liệu Lưu trữ

10 Số lượng tài liệu Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem danh mục Tra cứu

2 Cập nhật danh mục Lưu trữ

3 Xoá danh mục Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem lĩnh vực Tra cứu

2 Cập nhật lĩnh vực Lưu trữ

3 Xoá lĩnh vực Lưu trữ

Bảng 0.7: Yêu cầu chức năng quản lý trường

Bảng 0.8: Yêu cầu chức năng quản lý đánh giá

1.6 Danh sách yêu cầu chức năng hệ thống

Bảng 0.9: Danh sách yêu cầu chức năng hệ thống

STT Nội dung Mô tả chi tiết Ghi chú

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

2 Cập nhật trường Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem đánh giá Tra cứu

2 Xoá đánh giá Lưu trữ

3 Đánh giá trung bình Tính toán

- Sinh viên: tìm kiếm, đọc tài liệu; thích, lưu, đánh giá tài liệu; đăng, cập nhật, xoá tài liệu

- Quản lý: đăng, cập nhật, xoá tài liệu của trường; thêm, cập nhật, xoá người dùng của trường; phê duyệt tài liệu của trường; xoá đánh giá của tài liệu thuộc trường

- Admin: đăng, cập nhật, xoá tài liệu; thêm, cập nhật, xoá người dùng; thêm, cập nhật, xoá, kích hoạt danh mục; thêm, cập nhật, xoá, kích hoạt lĩnh vực; thêm, cập nhật, xoá, kích hoạt trường; phê duyệt tài liệu; thống kê

Hệ thống đảm bảo tài nguyên và dịch vụ chỉ được truy cập được bởi những tác nhân và người dùng nhất định

Cơ sở dữ liệu được sao lưu định kỳ, mã nguồn có khả năng khôi phục sao lưu nhanh

4 Thông báo Thông báo cho người dùng khi cần thiết: hoạt động thành công, thất bại,…

1.7 Danh sách yêu cầu phi chức năng

Bảng 0.10: Danh sách yêu cầu phi chức năng

STT Nội dung Tiêu chuẩn Mô tả chi tiết

1 Tốc độ xử lý quá trình tương tác của người dùng Hiệu quả Có thể truy cập trực tuyến nhiều người cùng một lúc

2 Tốc độ tìm kiếm nhanh và chính xác Hiệu quả Tối đa 5s có kết quả tìm kiếm

Tiết kiệm thời gian, tối ưu được cơ sở dữ liệu, thu hẹp không gian, tránh mất dữ liệu

Tiết kiệm thời gian so với quản lý thủ công Dữ liệu được sao lưu trên máy, có thể phục hồi

4 Dễ dàng bảo trì, nâng cấp và phát triển Cải tiến

Có khả năng mở rộng và thêm các tính năng mới dễ dàng mà không làm phá vỡ cấu trúc hệ thống

5 Giao diện thân thiện, màu sắc đa dạng và rõ nét Tiện dụng

Giao diện dễ dàng cho người dùng sử dụng và tạo cảm giác hiện đại

6 Thao tác dễ dùng Tiện dụng Các thao tác đơn giản, gần gũi với người dùng

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU

2.1.1 Lược đồ chức năng tổng quan

Hình 2.1: Lược đồ chức năng

2.1.2.1 Chức năng quản lý thông tin cá nhân

Hình 2.2: Chức năng quản lý thông tin cá nhân

2.1.2.2 Chức năng quản lý tài liệu

Hình 2.3: Chức năng quản lý tài liệu

2.1.2.3 Chức năng quản lý người dùng

Hình 2.4: Chức năng quản lý người dùng

2.1.2.4 Chức năng quản lý danh mục

Hình 2.5: Chức năng quản lý danh mục

2.1.2.5 Chức năng quản lý lĩnh vực

Hình 2.6: Chức năng quản lý lĩnh vực

2.1.2.6 Chức năng quản lý trường

Hình 2.7: Chức năng quản lý trường

Bảng 2.1: Đặc tả chức năng đăng ký

Brief description Người dùng khách thực hiện đăng ký tài khoản mới

Pre-conditions Người dùng khách chưa có tài khoản và muốn tạo tài khoản mới

Post-conditions Người dùng khách tạo thành công tài khoản mới

1 Người dùng truy cập vào trang đăng ký

2 Người dùng nhập các thông tin yêu cầu

3 Người dùng nhấn nút Đăng ký

4 Hệ thống kiểm tra thông tin nhận vào

5 Hệ thống tạo tài khoản người dùng và thông báo đăng ký tài khoản thành công

4a Hệ thống phát hiện email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Extension point Người dùng nhấn Đăng nhập

Mật khẩu có độ dài tối thiểu là 8 ký tự

Tài khoản email đăng ký là tài khoản Gmail

Người dùng chỉ được đăng ký với vai trò sinh viên và giảng viên

Bảng 2.2: Đặc tả chức năng đăng nhập

Brief description Người dùng thực hiện đăng nhập vào hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã có tài khoản hợp lệ

Post-conditions Người dùng đăng nhập vào hệ thống thành công và thực hiện được

22 các chức năng theo phân quyền

1 Người dùng truy cập vào trang đăng nhập

2 Người dùng nhập email và mật khẩu

3 Người dùng nhấn Đăng nhập

4 Hệ thống xác thực thông tin đăng nhập

5 Người dùng đăng nhập thành công vào hệ thống

4a Hệ thống không thể xác thực thông tin đăng nhập

4a1 Hệ thống hiển thị thông báo lỗi thông tin đăng nhập chưa chính xác

4a2 Use case quay lại bước 2 của Basic flows

1 Người dùng nhấn Đăng ký

2 Người dùng nhấn Quên mật khẩu

Bảng 2.3: Đặc tả chức năng đăng xuất

Brief description Người dùng thực hiện đăng xuất ra khỏi hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đăng xuất thành công khỏi hệ thống

1 Người dùng nhấn nút Đăng xuất

2 Hệ thống hiển thị thông báo xác nhận việc đăng xuất của người dùng

4 Hệ thống kết thúc phiên người dùng và đưa người dùng quay lại trang đăng nhập

3a Người dùng huỷ bỏ đăng xuất

3a1 Người dùng chọn huỷ bỏ

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu

Name Lấy lại mật khẩu

Brief description Người dùng muốn lấy lại mật khẩu đã quên

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã có tài khoản hợp lệ trên hệ thống

Post-conditions Người dùng đổi được mật khẩu thành công

1 Người dùng nhấn Quên mật khẩu

2 Người dùng nhập email của tài khoản muốn lấy lại mật khẩu

3 Người dùng nhấn Lấy mã

4 Hệ thống kiểm tra email và tài khoản trong cơ sở dữ liệu

5 Hệ thống gửi mã xác nhận qua email

6 Người dùng nhập mã xác nhận

7 Người dùng nhấn Xác nhận

8 Hệ thống kiểm tra mã xác nhận

9 Hệ thống hiển thị ô nhập mật khẩu mới và mật khẩu xác nhận

10 Người dùng nhập mật khẩu mới và mật khẩu xác nhận

11 Người dùng nhấn Đổi mật khẩu

12.Hệ thống kiểm tra mật khẩu mới và mật khẩu xác nhận nhận được

13 Hệ thống thông báo đổi mật khẩu thành công

4a Hệ thống phát hiện email nhận được chưa được đăng ký 4a1 Hệ thống thông báo email chưa được đăng ký

4a2 Use case quay lại bước 2 của Basic flows 8a Hệ thống kiểm tra thấy mã xác nhận người dùng nhập vào không đúng

8a1 Hệ thống thông báo sai mã xác nhận

8a2 Use case quay lại bước 6 của Basic flows

Extension point Người dùng nhấn Đăng nhập

Bảng 2.5: Đặc tả chức năng đổi mật khẩu

Brief description Người dùng muốn đổi mật khẩu

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đăng nhập thành công vào hệ thống

Post-conditions Người dùng đổi mật khẩu thành công

1 Người dùng nhấn Trang cá nhân

2 Người dùng nhập mật khẩu hiện tại, mật khẩu mới, mật khẩu xác nhận

3 Người dùng nhấn Đổi mật khẩu

4 Hệ thống kiểm tra mật khẩu người dùng nhập vào

5 Hệ thống lưu mật khẩu mới và thông báo cập nhật mật khẩu thành công

4a Hệ thống kiểm tra thấy mật khẩu hiện tại không đúng 4a1 Hệ thống thông báo mật khẩu hiện tại không đúng 4a2 Use case quay lại bước 1 của Basic flows

2.2.6 Xem thông tin cá nhân

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân

Name Xem thông tin cá nhân

Brief description Người dùng xem thông tin cá nhân của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng xem được thông tin cá nhân

1 Người dùng nhấn Trang cá nhân

2 Hệ thống hiển thị thông tin cá nhân của người dùng Alternative flows

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

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân

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

Brief description Người dùng cập nhật thông tin cá nhân của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng cập nhật thành công thông tin cá nhân

1 Người dùng nhấn Trang cá nhân

2 Người dùng thay đổi các thông tin cần thiết

4 Hệ thống kiểm tra thông tin nhập vào

5 Hệ thống lưu thay đổi, thông báo cập nhật thông tin cá nhân thành công và hiển thị trang cá nhân mới

4a Hệ thống kiểm tra thấy email người dùng vừa chỉnh sửa đã được đăng ký

4a1 Hệ thống thông báo email đã được đăng ký trước đó

4a2 Use case quay lại bước 2 của Basic flows

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện

Name Đổi ảnh đại diện

Brief description Người dùng đổi ảnh đại diện cho tài khoản của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đổi ảnh đại diện thành công

1 Người dùng nhấn Trang cá nhân

2 Người dùng nhấn Chọn ảnh

3 Người dùng chọn ảnh từ thiết bị

5 Hệ thống tải và lưu ảnh đại diện, thông báo cập nhật thành công và hiển thị ảnh đại diện mới mới

Bảng 2.9: Đặc tả chức năng đọc tài liệu

Brief description Người dùng đọc tài liệu

Actor Người dùng khách, sinh viên

Post- conditions Người dùng đọc được tài liệu mà mình muốn

1 Người dùng truy cập danh sách tài liệu

2 Người dùng nhấp vào một tài liệu mà mình muốn đọc

3 Hệ thống hiển thị chi tiết tài liệu, trong đó nội dung tài liệu được hiển thị bằng trình xem PDF

Business rules Sinh viên chỉ đọc được những tài liệu công khai và tài liệu nội bộ của trường

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu

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

Brief description Người dùng tìm kiếm tài liệu

Actor Sinh viên, quản lý, admin

Post-conditions Người dùng tìm được các tài liệu mong muốn

1 Người dùng nhập từ khoá vào ô tìm kiếm trên trang web

2 Người dùng nhấn phím Enter hoặc biểu tượng tìm kiếm

3 Hệ thống tìm kiếm và hiển thị các tài liệu liên quan đến từ khoá nhận được

3a Hệ thống không thể tìm thấy được tài liệu nào phù hợp

3a1 Hệ thống hiển thị thông báo không tìm thấy tài liệu phù hợp 3a2 Use case kết thúc

Bảng 2.11: Đặc tả chức năng lọc tài liệu

Brief description Người dùng lọc tài liệu theo tiêu chí

Actor Người dùng khách, sinh viên

Post-conditions Người dùng thực hiện thao tác lọc để tìm ra các tài liệu thoả tiêu chí

1 Người dùng truy cập danh sách tài liệu

2 Người dùng chọn các tiêu chí lọc

3 Hệ thống tìm kiếm và hiển thị các tài liệu phù hợp với các tiêu chí lọc

3a Hệ thống không thể tìm thấy được tài liệu nào phù hợp

3a1 Hệ thống hiển thị thông báo không tìm thấy tài liệu phù hợp 3a2 Use case kết thúc

Bảng 2.12: Đặc tả chức năng thích tài liệu

Brief description Người dùng thêm tài liệu vào danh sách yêu thích

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa thích tài liệu dự định sẽ thích

Post-conditions Người dùng thêm tài liệu vào danh sách yêu thích thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng nhấn vào biểu tượng thích

3 Hệ thống thông báo đã thích tài liệu và tăng lượt thích lên

2a Người dùng muốn bỏ thích tài liệu

2a1 Người dùng nhấn vào biểu tượng thích

2a2 Hệ thống thông báo đã bỏ thích tài liệu và giảm lượt thích xuống

Bảng 2.13: Đặc tả chức năng lưu tài liệu

Brief description Người dùng thêm tài liệu vào danh sách đã lưu

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa lưu tài liệu dự định sẽ lưu

Post- conditions Người dùng thêm tài liệu vào danh sách đã lưu thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng nhấn vào biểu tượng lưu

3 Hệ thống thông báo đã lưu tài liệu

2a Người dùng muốn bỏ lưu tài liệu

2a1 Người dùng nhấn vào biểu tượng lưu

2a2 Hệ thống thông báo đã bỏ lưu tài liệu

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu

Name Đánh giá tài liệu

Brief description Người dùng đánh giá tài liệu

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa đánh giá tài liệu dự định sẽ đánh giá

Post-conditions Người dùng đánh giá tài liệu thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng chọn số sao và nhập lời đánh giá

4 Hệ thống kiểm tra thông tin nhận được

5 Hệ thống lưu lại đánh giá, cập nhật danh sách đánh giá và hiển thị thông báo đánh giá thành công

Bảng 2.15: Đặc tả chức năng đăng tài liệu

Brief description Người dùng đăng tải một tài liệu mới lên hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đăng tải thành công tài liệu lên hệ thống

1 Người dùng nhấn Tải lên/Thêm tài liệu

2 Người dùng nhập các thông tin được yêu cầu, chọn danh mục, lĩnh vực, chọn tệp tài liệu

3 Người dùng nhấn Tải lên

4 Hệ thống kiểm tra thông tin về tài liệu

5 Hệ thống lưu tài liệu và thông báo đã thêm tài liệu thành công

2a Người dùng có vai trò là admin

2a1 Người dùng nhập các thông tin được yêu cầu, chọn danh mục, lĩnh vực, chọn tệp tài liệu

2a2 Use case tiếp tục ở bước 3 của Basic flows

5a Người dùng có vai trò sinh viên

5a1 Hệ thống lưu tài liệu, thông báo đã thêm tài liệu thành công và đang đợi duyệt, chuyển tài liệu đang đợi đến quản lý và admin 5a2 Use case kết thúc

1 Sinh viên, quản lý sẽ tải tài liệu lên trường của mình

2 Quản lý và admin phê duyệt tài liệu do sinh viên tải lên

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu

Name Chỉnh sửa tài liệu

Brief description Người dùng chỉnh sửa tài liệu

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng chỉnh sửa tài liệu thành công

1 Người dùng truy cập vào danh sách tài liệu

2 Người dùng nhấn Chỉnh sửa bên cạnh tài liệu

3 Người dùng chỉnh sửa các thông tin cần thiết cũng như tệp tài liệu

4 Hệ thống kiểm tra thông tin về tài liệu

5 Hệ thống lưu tài liệu và thông báo đã chỉnh sửa tài liệu thành công

5a Người dùng có vai trò sinh viên

5a1 Hệ thống lưu lại tài liệu, thông báo đã chỉnh sửa tài liệu thành công và đang đợi duyệt, chuyển tài liệu đang đợi đến quản lý và admin

1 Sinh viên chỉnh sửa tài liệu thì tài liệu sẽ đưa về trạng thái chờ duyệt

2 Quản lý thực hiện chỉnh sửa các tài liệu thuộc trường mà mình quản lý

Bảng 2.17: Đặc tả chức năng xoá tài liệu

Brief description Người dùng muốn xoá một tài liệu

Pre-conditions Người dùng đăng nhập thành công vào hệ thống

Post-conditions Người dùng xoá tài liệu thành công

1 Người dùng truy cập danh sách tài liệu

2 Người dùng nhấn Xoá bên cạnh tài liệu

3 Hệ thống hiển thị xác nhận xoá tài liệu

5 Hệ thống xoá tài liệu, hiển thị thông báo xoá thành công và cập nhật lại danh sách tài liệu

4a Người dùng huỷ bỏ xoá tài liệu

4a1 Người dùng chọn Huỷ bỏ

Bảng 2.18: Đặc tả chức năng thêm người dùng

Brief description Người dùng thêm người dùng mới trên hệ thống

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng thêm người dùng mới thành công

1 Người dùng nhấn Thêm người dùng

2 Người dùng nhập các thông tin được yêu cầu cho người dùng mới

4 Hệ thống kiểm tra thông tin nhận vào

5 Hệ thống lưu người dùng mới, sau đó hiển thị thông báo thêm người dùng thành công

2a Người dùng có vai trò admin

2a1 Người dùng nhập các thông tin được yêu cầu và chọn trường cho người dùng mới

2a2 Use case tiếp tục ở bước 3 của Basic flows

4a Hệ thống kiểm tra thấy email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Mật khẩu có độ dài tối thiểu là 8 ký tự

Quản lý thực hiện thêm người dùng thuộc trường của mình

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng

Use case Chỉnh sửa người dùng

Brief description Người dùng chỉnh sửa thông tin của người dùng khác trên hệ thống

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người chỉnh sửa thành công thông tin thông tin của người dùng khác

1 Người dùng truy cập vào danh sách người dùng do mình quản lý

2 Người dùng nhấn Chỉnh sửa bên cạnh tài khoản của người dùng muốn chỉnh sửa

3 Người dùng chỉnh sửa các thông tin cần thiết của người dùng

5 Hệ thống lưu lại thay đổi và hiển thị thông báo chỉnh sửa người dùng thành công

Alternative flows 2a Người dùng có vai trò admin

2a1 Người dùng chỉnh sửa các thông tin của người dùng và chọn trường cho người dùng (nếu muốn)

2a2 Use case tiếp tục ở bước 3 của Basic flows

4a Hệ thống kiểm tra thấy email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Mật khẩu có độ dài tối thiểu là 8 ký tự

Quản lý thực hiện chỉnh sửa người dùng thuộc trường của mình

Bảng 2.20: Đặc tả chức năng xoá người dùng

Người dùng xoá một người dùng khác

Pre-conditions Người đã đăng nhập thành công vào hệ thống

Người dùng xoá thành công một người dùng khác

1 Người dùng truy cập vào danh sách người dùng mà mình quản lý

2 Người dùng nhấn Xoá bên cạnh tài khoản của người dùng muốn xoá

3 Hệ thống hiển thị cảnh báo xác nhận xoá người dùng

5 Hệ thống xoá người dùng, hiển thị thông báo xoá người dùng thành công và cập nhật lại danh sách người dùng

4a Người dùng huỷ bỏ việc xoá người dùng khác

4a1 Người dùng chọn Huỷ bỏ

4a2 Use case kết thúc 5a: Hệ thống kiểm tra thấy người dùng đã đăng tải tài liệu lên

5a1 Hệ thống vô hiệu hoá tài khoản người dùng, hiển thị thông báo vô hiệu hoá tài khoản người dùng và cập nhật lại danh sách người dùng

Business rules Quản lý thực hiện xoá người dùng thuộc trường mà mình quản lý

Bảng 2.21: Đặc tả chức năng xoá đánh giá

Brief description Người dùng xoá đánh giá vi phạm của tài liệu

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng xoá đánh giá thành công

1 Người dùng truy cập vào danh sách đánh giá của các tài liệu thuộc trường mà mình quản lý

2 Người dùng nhấn Xoá bên cạnh đánh giá

3 Hệ thống hiển thị cảnh báo xác nhận xoá đánh giá

5 Hệ thống xoá đánh giá, hiển thị thông báo xoá đánh giá thành công và cập nhật lại danh sách đánh giá

4a Người dùng huỷ bỏ việc xoá đánh giá

4a1 Người dùng chọn Huỷ bỏ

Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu

Name Phê duyệt tài liệu

Brief description Người dùng phê duyệt tài liệu do sinh viên tải lên

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng phê duyệt tài liệu thành công

1 Người dùng truy cập vào danh sách tài liệu đang chờ phê duyệt do mình quản lý

2 Người dùng nhấn Phê duyệt

3 Hệ thống hiển thị thông báo yêu cầu chọn hành động

4 Người dùng chọn Chấp nhận

CÀI ĐẶT, DEPLOY VÀ KIỂM THỬ

Cài đặt

STT Thời gian Công việc Ghi chú

1 28/2/2024-6/3/2024 Tham khảo, xác định đề tài

2 6/3/2024-13/4/2024 Khảo sát, phân tích và xác định các yêu cầu của đề tài

3 13/3/2024-20/3/2024 Xây dựng lược đồ chức năng, đặc tả chức năng

4 20/3/2024- 27/3/2024 Xây dựng lược đồ tuần tự

5 27/3/2024- 3/4/2024 Thiết kế giao diện phần sinh viên và người dùng khách

6 3/4/2024 – 10/4/2024 Thiết kế và xây dựng cơ sở dữ liệu

8 17/4/2024-24/4/2024 Kết nối giao diện và back-end cho sinh viên và người dùng khách

9 24/4/2024-1/5/2024 Thiết kế giao diện phần quản lý và admin

10 1/5/2024 – 8/5/2024 Kết nối giao diện và back-end cho quản lý và admin

11 8/5/2024 -15/5/2024 Hoàn thiện các chức năng và bổ sung các chức năng bị thiếu

12 15/5/2024 – 22/5/2024 Kiểm thử lại trang web, sửa chữa lỗi

15 5/6/2024 – 28/6/2024 Chỉnh sửa báo cáo và làm

Vu Hoang Anh Ý kiến của giáo viên hướng dẫn

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1

2 MỤC ĐÍCH CỦA ĐỀ TÀI 1

CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 3

1.2 Khảo sát một số phần mềm 3

1.3 Phân tích yêu cầu của dự án 8

1.4 Yêu cầu chức năng nghiệp vụ 10

1.5 Danh sách yêu cầu chức năng nghiệp vụ 11

1.6 Danh sách yêu cầu chức năng hệ thống 14

1.7 Danh sách yêu cầu phi chức năng 15

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU 17

2.1.1 Lược đồ chức năng tổng quan 17

2.2.6 Xem thông tin cá nhân 26

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

CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 59

3.1.6 Xem thông tin cá nhân 63

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

CHƯƠNG 4: KIẾN TRÚC HỆ THỐNG 90

4.1.2 Tương tác và giao tiếp giữa các thành phần 91

4.2 Các công nghệ và thư viện được sử dụng 91

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN VÀ XỬ LÝ 117

5.1 Sinh viên và người dùng khách 117

5.1.9 Danh sách tài liệu chính 126

5.1.10 Danh sách tài liệu đã thích 128

5.1.11 Danh sách tài liệu đã lưu 129

5.1.12 Danh sách tài liệu đã tải lên đã được duyệt 130

5.1.13 Danh sách tài liệu đã tải lên đang đợi duyệt 131

5.1.14 Danh sách tài liệu đã tải lên bị từ chối 131

5.1.17 Danh sách tài liệu của một người 135

5.2.27 Danh sách tài liệu đang chờ 175

CHƯƠNG 6 CÀI ĐẶT, DEPLOY VÀ KIỂM THỬ 180

6.1.2 Cài đặt với docker compose 180

DANH MỤC TÀI LIỆU THAM KHẢO 188

Hình 1.1: Trang chủ Studocu 4

Hình 1.2: Danh sách tài liệu theo trường học 4

Hình 1.3: Xem chi tiết tài liệu 5

Hình 1.4: Tải tài liệu lên 5

Hình 1.5: Trang chủ thư viện số HCMUTE 6

Hình 1.6: Chi tiết tài liệu 7

Hình 1.7: Tải tài liệu 7

Hình 2.1: Lược đồ chức năng 17

Hình 2.2: Chức năng quản lý thông tin cá nhân 17

Hình 2.3: Chức năng quản lý tài liệu 18

Hình 2.4: Chức năng quản lý người dùng 18

Hình 2.5: Chức năng quản lý danh mục 19

Hình 2.6: Chức năng quản lý lĩnh vực 19

Hình 2.7: Chức năng quản lý trường 20

Hình 3.1: Lược đồ tuần tự chức năng đăng ký 59

Hình 3.2: Lược đồ tuần tự chức năng đăng nhập 60

Hình 3.3: Lược đồ tuần tự chức năng đăng xuất 60

Hình 3.4: Lược đồ tuần tự chức năng lấy lại mật khẩu 61

Hình 3.5: Lược đồ tuần tự chức năng đổi mật khẩu 62

Hình 3.6: Lược đồ tuần tự chức năng xem thông tin cá nhân 63

Hình 3.7: Lược đồ tuần tự chức năng cập nhật thông tin cá nhân 64

Hình 3.8: Lược đồ tuần tự chức năng đổi ảnh đại diện 65

Hình 3.9: Lược đồ tuần tự chức năng đọc tài liệu 65

Hình 3.10: Lược đồ tuần tự chức năng tìm kiếm tài liệu 66

Hình 3.11: Lược đồ tuần tự chức năng lọc tài liệu 66

Hình 3.12: Lược đồ tuần tự chức năng thích tài liệu 67

Hình 3.13: Lược đồ tuần tự chức năng lưu tài liệu 67

Hình 3.14: Lược đồ tuần tự chức năng đánh giá tài liệu 68

Hình 3.15: Lược đồ tuần tự chức năng đăng tài liệu 69

Hình 3.16: Lược đồ tuần tự chức năng chỉnh sửa tài liệu 70

Hình 3.17: Lược đồ tuần tự chức năng xoá tài liệu 71

Hình 3.18: Lược đồ tuần tự chức năng thêm người dùng 72

Hình 3.19: Lược đồ tuần tự chức năng chỉnh sửa người dùng 73

Hình 3.20: Lược đồ tuần tự chức năng xoá người dùng 74

Hình 3.21: Lược đồ tuần tự chức năng xoá đánh giá 75

Hình 3.22: Lược đồ tuần tự chức năng phê duyệt tài liệu 76

Hình 3.23: Lược đồ tuần tự chức năng thêm trường 77

Hình 3.24: Lược đồ tuần tự chức năng chỉnh sửa trường 78

Hình 3.25: Lược đồ tuần tự chức năng xoá trường 79

Hình 3.26: Lược đồ tuần tự chức năng kích hoạt trường 80

Hình 3.27: Lược đồ tuần tự chức năng thêm danh mục 81

Hình 3.28: Lược đồ tuần tự chức năng chỉnh sửa danh mục 82

Hình 3.29: Lược đồ tuần tự chức năng xoá danh mục 83

Hình 3.30: Lược đồ tuần tự chức năng kích hoạt danh mục 84

Hình 3.31: Lược đồ tuần tự chức năng thêm lĩnh vực 85

Hình 3.32: Lược đồ tuần tự chức năng chỉnh sửa lĩnh vực 86

Hình 3.33: Lược đồ tuần tự chức năng xoá lĩnh vực 87

Hình 3.34: Lược đồ tuần tự chức năng kích hoạt lĩnh vực 88

Hình 3.35: Lược đồ tuần tự chức năng thống kê 88

Hình 3.36: Lược đồ lớp của hệ thống 89

Hình 4.1: Kiến trúc tổng quan của hệ thống 90

Hình 4.2: Cấu trúc dự án Spring Boot đơn giản 92

Hình 4.3: Tạo dự án Spring Boot với Maven 93

Hình 4.4: Khai báo dependency trong pom.xml 94

Hình 4.5: Controller trong Spring Boot 94

Hình 4.6: Spring Boot và Tomcat 95

Hình 4.7: Thêm dependency Spring Security vào dự án 96

Hình 4.8: Cấu hình Filter Chain 97

Hình 4.9: Cấu hình xác thực 97

Hình 4.10: Thêm JWT Filter vào SecurityFilterChain 98

Hình 4.12: Tạo và trả JWT khi login 99

Hình 4.13: Repository interface trong Spring Data JPA 100

Hình 4.14: Truy vấn query tuỳ chỉnh 100

Hình 4.15: Thêm dependency của Spring Data JPA 101

Hình 4.16: Cấu hình kết nối MySQL trong application.yml 101

Hình 4.17: Tạo các entity classes 102

Hình 4.18: Kiến trúc ReactJS 103

Hình 4.19: Cấu trúc thư mục ReactJS 103

Hình 4.22: Minh hoạ tệp JSX 106

Hình 4.23: Ví dụ về useState 106

Hình 4.24: Ví dụ về useEffect 107

Hình 4.25: Chuyển hướng với useNavigate 107

Hình 4.26: Lấy đường dẫn hiện tại bằng useLocation 108

Hình 4.27: Truy xuất tham số từ URL với useParams 108

Hình 4.28: Minh hoạ props 108

Hình 4.29: Axios trong package.json 109

Hình 4.30: Sử dụng axios để gửi yêu cầu GET lấy tất cả danh mục 109

Hình 4.31: Tạo dự án Google Cloud 110

Hình 4.32: Giao diện APIs & Services 111

Hình 4.33: Kích hoạt Google Drive API 111

Hình 4.34: Giao diện Credentials để tạo service account 112

Hình 4.35: Tạo service account 112

Hình 4.37: Google Drive API dependency 113

Hình 4.38: Cấu hình Bean cho Google Drive API 114

Hình 4.39: Xoá tệp bằng Google Drive API 114

Hình 4.40: Tải lên tệp bằng Google Drive API 114

Hình 4.41: Kiến trúc của MySQL 115

Hình 4.42: Sử dụng MySQL thiết kế cơ sở dữ liệu 116

Hình 5.1: Giao diện trang chủ 117

Hình 5.2: Giao diện đăng nhập 118

Hình 5.3: Giao diện đăng ký 119

Hình 5.4: Giao diện quên mật khẩu 120

Hình 5.5: Giao diện thanh trên 121

Hình 5.6: Giao diện thanh bên 122

Hình 5.7: Giao diện thông tin cá nhân 123

Hình 5.8: Giao diện chi tiết tài liệu 125

Hình 5.9: Giao diện danh sách tài liệu chính 127

Hình 5.10: Giao diện danh sách tài liệu đã thích 128

Hình 5.11: Giao diện danh sách tài liệu đã lưu 129

Hình 5.12: Giao diện danh sách tài liệu tải lên đã được duyệt 130

Hình 5.13: Giao diện danh sách tài liệu tải lên đang đợi duyệt 131

Hình 5.14: Giao diện danh sách tài liệu tải lên bị từ chối 132

Hình 5.15: Giao diện đăng tài liệu 133

Hình 5.16: Giao diện chỉnh sửa tài liệu 134

Hình 5.17: Giao diện danh sách tài liệu của một người 136

Hình 5.18: Giao diện đăng nhập 137

Hình 5.19: Giao diện quên mật khẩu 138

Hình 5.20: Giao diện thông tin cá nhân 140

Hình 5.21: Giao diện trang chủ quản trị 143

Hình 5.22: Giao diện danh sách tài liệu 144

Hình 5.23: Giao diện chi tiết tài liệu 146

Hình 5.24: Giao diện thêm tài liệu 147

Hình 5.25: Giao diện chỉnh sửa tài liệu 149

Hình 5.26: Giao diện xoá tài liệu 150

Hình 5.27: Giao diện danh sách danh mục 151

Hình 5.28: Giao diện thêm danh mục 153

Hình 5.29: Giao diện chỉnh sửa danh mục 154

Hình 5.30: Giao diện xoá danh mục 155

Hình 5.31: Giao diện danh sách lĩnh vực 156

Hình 5.32: Giao diện thêm lĩnh vực 158

Hình 5.33: Giao diện chỉnh sửa lĩnh vực 159

Hình 5.34: Giao diện xoá lĩnh vực 160

Hình 5.35: Giao diện danh sách trường 161

Hình 5.36: Giao diện thêm trường 163

Hình 5.37: Giao diện chỉnh sửa trường 164

Hình 5.38: Giao diện chỉnh sửa trường 165

Hình 5.39: Giao diện danh sách người dùng 166

Hình 5.40: Giao diện chi tiết người dùng 168

Hình 5.41: Giao diện thêm người dùng 170

Hình 5.42: Giao diện chỉnh sửa người dùng 172

Hình 5.43: Giao diện xoá người dùng 174

Hình 5.44: Giao diện danh sách tài liệu đang chờ 175

Hình 5.45: Giao diện phê duyệt tài liệu 176

Hình 5.46: Giao diện từ chối tài liệu 177

Hình 5.47: Giao diện danh sách đánh giá 178

Hình 5.48: Giao diện xoá đánh giá 179

Bảng 1.1: Nhận xét trang web Studocu 5

Bảng 1.2: Nhận xét thư viện số HCMUTE 7

Bảng 1.3: Danh sách chức năng chính 8

Bảng 1.4: Yêu cầu chức năng quản lý thông tin cá nhân 11

Bảng 1.5: Yêu cầu chức năng quản lý người dùng 12

Bảng 1.6: Yêu cầu chức năng quản lý tài liệu 12

Bảng 1.7: Yêu cầu chức năng quản lý danh mục 13

Bảng 1.8: Yêu cầu chức năng quản lý lĩnh vực 13

Bảng 1.9: Yêu cầu chức năng quản lý trường 14

Bảng 1.10: Yêu cầu chức năng quản lý đánh giá 14

Bảng 1.11: Danh sách yêu cầu chức năng hệ thống 14

Bảng 1.12: Danh sách yêu cầu phi chức năng 15

Bảng 2.1: Đặc tả chức năng đăng ký 20

Bảng 2.2: Đặc tả chức năng đăng nhập 21

Bảng 2.3: Đặc tả chức năng đăng xuất 22

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu 23

Bảng 2.5: Đặc tả chức năng đổi mật khẩu 25

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân 26

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân 27

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện 28

Bảng 2.9: Đặc tả chức năng đọc tài liệu 29

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu 30

Bảng 2.11: Đặc tả chức năng lọc tài liệu 31

Bảng 2.12: Đặc tả chức năng thích tài liệu 32

Bảng 2.13: Đặc tả chức năng lưu tài liệu 33

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu 34

Bảng 2.15: Đặc tả chức năng đăng tài liệu 35

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu 36

Bảng 2.17: Đặc tả chức năng xoá tài liệu 37

Bảng 2.18: Đặc tả chức năng thêm người dùng 38

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng 40Bảng 2.20: Đặc tả chức năng xoá người dùng 41Bảng 2.21: Đặc tả chức năng xoá đánh giá 43Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu 44Bảng 2.23: Đặc tả chức năng thêm trường 45Bảng 2.24: Đặc tả chức năng chỉnh sửa trường 46Bảng 2.25: Đặc tả chức năng xoá trường 47Bảng 2.26: Đặc tả chức năng kích hoạt trường 48Bảng 2.27: Đặc tả chức năng thêm danh mục 49Bảng 2.28: Đặc tả chức năng chỉnh sửa danh mục 50Bảng 2.29: Đặc tả chức năng xoá danh mục 51Bảng 2.30: Đặc tả chức năng kích hoạt lĩnh vực 53Bảng 2.31: Đặc tả chức năng thêm lĩnh vực 54Bảng 2.32: Đặc tả chức năng chỉnh sửa lĩnh vực 55Bảng 2.33: Đặc tả chức năng xoá lĩnh vực 56Bảng 2.34: Đặc tả chức năng kích hoạt lĩnh vực 57Bảng 2.35: Đặc tả chức năng thống kê 58Bảng 5.1: Bảng mô tả giao diện trang chủ 117Bảng 5.2: Bảng mô tả giao diện đăng nhập 118Bảng 5.3: Bảng mô tả giao diện đăng ký 119Bảng 5.4: Bảng mô tả giao diện quên mật khẩu 120Bảng 5.5: Bảng mô tả giao diện thanh trên 121Bảng 5.6: Bảng mô tả giao diện thanh bên 122Bảng 5.7: Bảng mô tả giao diện thông tin cá nhân 123Bảng 5.8: Bảng mô tả giao diện chi tiết tài liệu 125Bảng 5.9: Bảng mô tả giao diện danh sách tài liệu chính 127Bảng 5.10: Bảng mô tả giao diện danh sách tài liệu đã thích 128Bảng 5.11: Bảng mô tả giao diện danh sách tài liệu đã lưu 129Bảng 5.12: Bảng mô tả giao diện danh sách tài liệu tải lên đã được duyệt 130Bảng 5.13: Bảng mô tả giao diện danh sách tài liệu tải lên đang đợi duyệt 131Bảng 5.14: Bảng mô tả giao diện danh sách tài liệu tải lên bị từ chối 132Bảng 5.15: Bảng mô tả giao diện đăng tài liệu 133

Bảng 5.16: Bảng mô tả giao diện chỉnh sửa tài liệu 135Bảng 5.17: Bảng mô tả giao diện danh sách tài liệu của một người 136Bảng 5.18: Bảng mô tả giao diện đăng nhập 137Bảng 5.19: Bảng mô tả giao diện quên mật khẩu 138Bảng 5.20: Bảng mô tả giao diện thông tin cá nhân 141Bảng 5.21: Bảng mô tả giao diện trang chủ quản trị 143Bảng 5.22: Bảng mô tả giao diện danh sách tài liệu 145Bảng 5.23: Bảng mô tả giao diện chi tiết tài liệu 146Bảng 5.24: Bảng mô tả giao diện thêm tài liệu 148Bảng 5.25: Bảng mô tả giao diện chỉnh sửa tài liệu 149Bảng 5.26: Bảng mô tả giao diện xoá tài liệu 150Bảng 5.27: Bảng mô tả giao diện danh sách danh mục 151Bảng 5.28: Bảng mô tả giao diện thêm danh mục 153Bảng 5.29: Bảng mô tả giao diện chỉnh sửa danh mục 154Bảng 5.30: Bảng mô tả giao diện xoá danh mục 155Bảng 5.31: Bảng mô tả giao diện danh sách lĩnh vực 156Bảng 5.32: Bảng mô tả giao diện thêm lĩnh vực 158Bảng 5.33: Bảng mô tả giao diện chỉnh sửa lĩnh vực 159Bảng 5.34: Bảng mô tả giao diện xoá lĩnh vực 160Bảng 5.35: Bảng mô tả giao diện danh sách trường 161Bảng 5.36: Bảng mô tả giao diện thêm trường 163Bảng 5.37: Bảng mô tả giao diện chỉnh sửa trường 164Bảng 5.38: Bảng mô tả giao diện xoá trường 165Bảng 5.39: Bảng mô tả giao diện danh sách người dùng 166Bảng 5.40: Bảng mô tả giao diện chi tiết người dùng 168Bảng 5.41: Bảng mô tả giao diện thêm người dùng 171Bảng 5.42: Bảng mô tả giao diện chỉnh sửa người dùng 173Bảng 5.43: Bảng mô tả giao diện xoá người dùng 174Bảng 5.44: Bảng mô tả giao diện danh sách tài liệu đang chờ 175Bảng 5.45: Bảng mô tả giao diện phê duyệt tài liệu 176Bảng 5.46: Bảng mô tả giao diện từ chối tài liệu 177Bảng 5.47: Bảng mô tả giao diện danh sách đánh giá 178

Bảng 5.48: Bảng mô tả giao diện xoá đánh giá 179Bảng 6.1: Sản phẩm deploy 180Bảng 6.2: Lịch trình công việc 181Bảng 6.3: Chiến lược kiểm thử 182Bảng 6.4: Kết quả kiểm thử 183

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại ngày nay, công nghệ thông tin đã và đang phát triển nhanh chóng, mạnh mẽ trong tất cả các lĩnh vực đời sống Từ những bước tiến vượt bậc trong lĩnh vực máy tính, mạng lưới, đến sự bùng nổ của Internet và sự xuất hiện của trí tuệ nhân tạo, công nghệ thông tin dần chuyển đổi cách con người sống, làm việc và tương tác với nhau Đặc biệt, nó đã mở ra nhiều cơ hội mới trong việc chia sẻ và truy cập thông tin Giờ đây, con người có thể tiếp cận và sử dụng nguồn tài nguyên trên mạng từ xa, không giới hạn thời gian và địa điểm Điều này cũng mở ra tương lai cho các dịch vụ lưu trữ và cung cấp tài nguyên đến cho người dùng trực tuyến

Lĩnh vực giáo dục cũng chứng kiến sự thay đổi mạnh mẽ dưới tác động của công nghệ Các mô hình giảng dạy và học tập truyền thống dần dần chuyển đổi sang môi trường máy tính và trực tuyến Kèm theo đó là nhu cầu cho việc sử dụng các nguồn tài nguyên học tập tăng lên một cách mạnh mẽ Nếu như trước kia, khi muốn tìm hiểu và học tập về một nội dung, lĩnh vực nào đó, sinh viên sẽ cần phải có một bản tài liệu hoặc một cuốn sách bằng giấy Tuy nhiên, ngày nay, sinh viên hầu như có thể truy cập mạng Internet để tìm và sử dụng các tài liệu đó Điều này vừa tạo sự tiện lợi cho người học cũng như cung cấp khả năng tiếp cận kho tài liệu phong phú Tuy nhiên, việc học tập là không giới hạn ở chỉ mỗi một trường đại học Mỗi trường đại học sẽ có một nguồn tài liệu bổ ích và quý giá khác nhau Do đó, em nghĩ đến ý tưởng tạo một trang web tổng hợp và phân loại tài liệu theo các trường đại học, cao đẳng nhằm cung cấp một nguồn tài nguyên phong phú và bổ ích đến các sinh viên

Xuất phát từ ý tưởng đó, em xin thực hiện đề tài Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài này là tạo nên một trang web diễn đàn cung cấp một kho tài liệu bổ ích và phong phú đến cho sinh viên, giúp cho sinh viên tiếp cận tài liệu học tập một cách tiện lợi và hiệu quả

- Đối tượng nghiên cứu Đề tài tập trung nghiên cứu những vấn đề sau:

 Các kỹ thuật phân tích thiết kế hệ thống

 Tìm hiểu về Spring Boot trên nền tảng Java để xây dựng API cho hệ thống

 Tìm hiểu về React để xây dựng giao diện người dùng

 Tìm hiểu về Google Drive API để lưu trữ tài liệu

Trong phạm vi của đề tài, nhóm chúng em tập trung nghiên cứu các chức năng cơ bản của một hệ thống quản lý tài liệu như truy cập tài liệu, tải lên, chỉnh sửa, xoá bỏ, phân loại

PHẦN NỘI DUNG CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 1.1 Phân tích hiện trạng

Ngày nay, Internet đã và đang phát triển một cách chóng mặt và trở nên rất phổ biến Sự tiện lợi mà Internet mang lại trong các lĩnh vực đời sống và xã hội là điều không thể phủ nhận Trong đó, nhu cầu sử dụng và truy cập nguồn tài liệu học tập trên Internet là rất là lớn Internet cung cấp một lượng tài liệu khổng lồ và cực kỳ đa dạng cho học sinh, sinh viên sử dụng Trong số đó, có hàng nghìn, hàng chục nghìn trang web chuyên về cung cấp tài liệu đến cho người học

Nhìn chung, các trang web cung cấp lượng tài liệu đa dạng ở nhiều lĩnh vực và thể loại khác nhau Tuy nhiên, điều này cũng đặt ra một số thách thức và vấn đề:

- Không phải tất cả các nguồn tài liệu trên Internet đều đảm bảo về chất lượng và tính tin cậy Có rất nhiều tài liệu không chính xác hoặc không được kiểm chứng một cách đầy đủ

- Một số trang web yêu cầu người sử dụng trả phí để có quyền truy cập đầy đủ nội dung

- Một số trang web chứa quảng cáo gây làm phiền và ảnh hưởng đến trải nghiệm người dùng

- Người học cần phải có kỹ năng tìm kiếm trên Internet để có thể tận dụng tối đa nguồn tài liệu

1.2 Khảo sát một số phần mềm

 Đường dẫn trang web: https://www.studocu.com/

Hình 0.1: Trang chủ Studocu

Hình 0.1.: Danh sách tài liệu theo trường học

Hình 0.3: Xem chi tiết tài liệu

Hình 0.4: Tải tài liệu lên

Bảng 0.1: Nhận xét trang web Studocu

- Tìm kiếm khoá học, sách, tài liệu

- Nguồn tài liệu chưa được kiểm soát chặt chẽ

- Tải lên và chia sẻ tài liệu

- Thích, bỏ thích, bình luận, lưu, chia sẻ lên mạng xã hội

- Đăng ký Premium để truy cập các tính năng như tài liệu nâng cao, tải, in tài liệu

 Đường dẫn trang web: https://thuvienso.hcmute.edu.vn/

Hình 0.5: Trang chủ thư viện số HCMUTE

Hình 0.7: Chi tiết tài liệu

Hình 0.8: Tải tài liệu

Bảng 0.1: Nhận xét thư viện số HCMUTE

- Tìm kiếm sách, tài liệu

- Chủ yếu là tài liệu liên quan đến Trường Đại học Sư phạm Kỹ thuật

- Tải lên và chia sẻ tài liệu

- Thích, bình chọn, bình luận, chia sẻ lên mạng xã hội

1.3 Phân tích yêu cầu của dự án

Xây dựng một trang web để chia sẻ tài liệu học tập cho sinh viên giữa các trường đại học, cao đẳng Người dùng có thể tìm đọc và chia sẻ tài liệu của mình với những người khác Ngoài ra, hệ thống còn được quản lý bởi admin và người quản lý nhằm kiểm soát nguồn tài liệu được chia sẻ Các chức năng chính của chương trình bao gồm:

Bảng 0.2.3.: Danh sách chức năng chính Đối tượng sử dụng Các chức năng thực hiện

Sinh viên Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đọc tài liệu

Tìm kiếm tài liệu Thích tài liệu Lưu tài liệu Đánh giá tài liệu

9 Đăng tài liệu Cập nhật tài liệu Xoá tài liệu

Quản lý Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu cho trường Cập nhật tài liệu của trường Xoá tài liệu của trường Thêm người dùng cho trường Cập nhật người dùng của trường Xoá người dùng của trường Xoá đánh giá của trường Phê duyệt tài liệu của trường

Admin Đăng ký Đăng nhập Đăng xuất Lấy lại mật khẩu Đổi mật khẩu

Xem thông tin cá nhân Cập nhật thông tin cá nhân Đăng tài liệu

Cập nhật tài liệu Xoá tài liệu Thêm người dùng Cập nhật người dùng Xoá người dùng Thêm trường Cập nhật trường Xoá trường Kích hoạt trường Thêm danh mục Cập nhật danh mục Xoá danh mục Kích hoạt danh mục Thêm lĩnh vực Cập nhật lĩnh vực Xoá lĩnh vực Kích hoạt lĩnh vực Phê duyệt tài liệu Thống kê

1.4 Yêu cầu chức năng nghiệp vụ

1.5 Danh sách yêu cầu chức năng nghiệp vụ

 Quản lý thông tin cá nhân

Bảng 0.2: Yêu cầu chức năng quản lý thông tin cá nhân

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin cá nhân Tra cứu

2 Cập nhật thông tin cá nhân Lưu trữ

Bảng 0.3: Yêu cầu chức năng quản lý người dùng

Bảng 0.4: Yêu cầu chức năng quản lý tài liệu

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem thông tin người dùng Tra cứu

2 Cập nhật thông tin người dùng Lưu trữ

3 Xoá người dùng Lưu trữ

4 Số lượng người dùng Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem tài liệu Tra cứu

2 Tìm kiếm tài liệu Tra cứu

3 Đăng tài liệu Lưu trữ

4 Cập nhật tài liệu Lưu trữ

5 Xoá tài liệu Lưu trữ

6 Thích tài liệu Lưu trữ

Bảng 0.5: Yêu cầu chức năng quản lý danh mục

Bảng 0.6: Yêu cầu chức năng quản lý lĩnh vực

7 Lưu tài liệu Lưu trữ

8 Đánh giá tài liệu Lưu trữ

9 Phê duyệt tài liệu Lưu trữ

10 Số lượng tài liệu Tính toán

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem danh mục Tra cứu

2 Cập nhật danh mục Lưu trữ

3 Xoá danh mục Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem lĩnh vực Tra cứu

2 Cập nhật lĩnh vực Lưu trữ

3 Xoá lĩnh vực Lưu trữ

Bảng 0.7: Yêu cầu chức năng quản lý trường

Bảng 0.8: Yêu cầu chức năng quản lý đánh giá

1.6 Danh sách yêu cầu chức năng hệ thống

Bảng 0.9: Danh sách yêu cầu chức năng hệ thống

STT Nội dung Mô tả chi tiết Ghi chú

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

2 Cập nhật trường Lưu trữ

STT Công việc Loại công việc

Quy định/ công thức liên quan

Biểu mẫu liên quan Ghi chú

1 Xem đánh giá Tra cứu

2 Xoá đánh giá Lưu trữ

3 Đánh giá trung bình Tính toán

- Sinh viên: tìm kiếm, đọc tài liệu; thích, lưu, đánh giá tài liệu; đăng, cập nhật, xoá tài liệu

- Quản lý: đăng, cập nhật, xoá tài liệu của trường; thêm, cập nhật, xoá người dùng của trường; phê duyệt tài liệu của trường; xoá đánh giá của tài liệu thuộc trường

- Admin: đăng, cập nhật, xoá tài liệu; thêm, cập nhật, xoá người dùng; thêm, cập nhật, xoá, kích hoạt danh mục; thêm, cập nhật, xoá, kích hoạt lĩnh vực; thêm, cập nhật, xoá, kích hoạt trường; phê duyệt tài liệu; thống kê

Hệ thống đảm bảo tài nguyên và dịch vụ chỉ được truy cập được bởi những tác nhân và người dùng nhất định

Cơ sở dữ liệu được sao lưu định kỳ, mã nguồn có khả năng khôi phục sao lưu nhanh

4 Thông báo Thông báo cho người dùng khi cần thiết: hoạt động thành công, thất bại,…

1.7 Danh sách yêu cầu phi chức năng

Bảng 0.10: Danh sách yêu cầu phi chức năng

STT Nội dung Tiêu chuẩn Mô tả chi tiết

1 Tốc độ xử lý quá trình tương tác của người dùng Hiệu quả Có thể truy cập trực tuyến nhiều người cùng một lúc

2 Tốc độ tìm kiếm nhanh và chính xác Hiệu quả Tối đa 5s có kết quả tìm kiếm

Tiết kiệm thời gian, tối ưu được cơ sở dữ liệu, thu hẹp không gian, tránh mất dữ liệu

Tiết kiệm thời gian so với quản lý thủ công Dữ liệu được sao lưu trên máy, có thể phục hồi

4 Dễ dàng bảo trì, nâng cấp và phát triển Cải tiến

Có khả năng mở rộng và thêm các tính năng mới dễ dàng mà không làm phá vỡ cấu trúc hệ thống

5 Giao diện thân thiện, màu sắc đa dạng và rõ nét Tiện dụng

Giao diện dễ dàng cho người dùng sử dụng và tạo cảm giác hiện đại

6 Thao tác dễ dùng Tiện dụng Các thao tác đơn giản, gần gũi với người dùng

CHƯƠNG 2: MÔ HÌNH HOÁ YÊU CẦU

2.1.1 Lược đồ chức năng tổng quan

Hình 2.1: Lược đồ chức năng

2.1.2.1 Chức năng quản lý thông tin cá nhân

Hình 2.2: Chức năng quản lý thông tin cá nhân

2.1.2.2 Chức năng quản lý tài liệu

Hình 2.3: Chức năng quản lý tài liệu

2.1.2.3 Chức năng quản lý người dùng

Hình 2.4: Chức năng quản lý người dùng

2.1.2.4 Chức năng quản lý danh mục

Hình 2.5: Chức năng quản lý danh mục

2.1.2.5 Chức năng quản lý lĩnh vực

Hình 2.6: Chức năng quản lý lĩnh vực

2.1.2.6 Chức năng quản lý trường

Hình 2.7: Chức năng quản lý trường

Bảng 2.1: Đặc tả chức năng đăng ký

Brief description Người dùng khách thực hiện đăng ký tài khoản mới

Pre-conditions Người dùng khách chưa có tài khoản và muốn tạo tài khoản mới

Post-conditions Người dùng khách tạo thành công tài khoản mới

1 Người dùng truy cập vào trang đăng ký

2 Người dùng nhập các thông tin yêu cầu

3 Người dùng nhấn nút Đăng ký

4 Hệ thống kiểm tra thông tin nhận vào

5 Hệ thống tạo tài khoản người dùng và thông báo đăng ký tài khoản thành công

4a Hệ thống phát hiện email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Extension point Người dùng nhấn Đăng nhập

Mật khẩu có độ dài tối thiểu là 8 ký tự

Tài khoản email đăng ký là tài khoản Gmail

Người dùng chỉ được đăng ký với vai trò sinh viên và giảng viên

Bảng 2.2: Đặc tả chức năng đăng nhập

Brief description Người dùng thực hiện đăng nhập vào hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã có tài khoản hợp lệ

Post-conditions Người dùng đăng nhập vào hệ thống thành công và thực hiện được

22 các chức năng theo phân quyền

1 Người dùng truy cập vào trang đăng nhập

2 Người dùng nhập email và mật khẩu

3 Người dùng nhấn Đăng nhập

4 Hệ thống xác thực thông tin đăng nhập

5 Người dùng đăng nhập thành công vào hệ thống

4a Hệ thống không thể xác thực thông tin đăng nhập

4a1 Hệ thống hiển thị thông báo lỗi thông tin đăng nhập chưa chính xác

4a2 Use case quay lại bước 2 của Basic flows

1 Người dùng nhấn Đăng ký

2 Người dùng nhấn Quên mật khẩu

Bảng 2.3: Đặc tả chức năng đăng xuất

Brief description Người dùng thực hiện đăng xuất ra khỏi hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đăng xuất thành công khỏi hệ thống

1 Người dùng nhấn nút Đăng xuất

2 Hệ thống hiển thị thông báo xác nhận việc đăng xuất của người dùng

4 Hệ thống kết thúc phiên người dùng và đưa người dùng quay lại trang đăng nhập

3a Người dùng huỷ bỏ đăng xuất

3a1 Người dùng chọn huỷ bỏ

Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu

Name Lấy lại mật khẩu

Brief description Người dùng muốn lấy lại mật khẩu đã quên

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã có tài khoản hợp lệ trên hệ thống

Post-conditions Người dùng đổi được mật khẩu thành công

1 Người dùng nhấn Quên mật khẩu

2 Người dùng nhập email của tài khoản muốn lấy lại mật khẩu

3 Người dùng nhấn Lấy mã

4 Hệ thống kiểm tra email và tài khoản trong cơ sở dữ liệu

5 Hệ thống gửi mã xác nhận qua email

6 Người dùng nhập mã xác nhận

7 Người dùng nhấn Xác nhận

8 Hệ thống kiểm tra mã xác nhận

9 Hệ thống hiển thị ô nhập mật khẩu mới và mật khẩu xác nhận

10 Người dùng nhập mật khẩu mới và mật khẩu xác nhận

11 Người dùng nhấn Đổi mật khẩu

12.Hệ thống kiểm tra mật khẩu mới và mật khẩu xác nhận nhận được

13 Hệ thống thông báo đổi mật khẩu thành công

4a Hệ thống phát hiện email nhận được chưa được đăng ký 4a1 Hệ thống thông báo email chưa được đăng ký

4a2 Use case quay lại bước 2 của Basic flows 8a Hệ thống kiểm tra thấy mã xác nhận người dùng nhập vào không đúng

8a1 Hệ thống thông báo sai mã xác nhận

8a2 Use case quay lại bước 6 của Basic flows

Extension point Người dùng nhấn Đăng nhập

Bảng 2.5: Đặc tả chức năng đổi mật khẩu

Brief description Người dùng muốn đổi mật khẩu

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đăng nhập thành công vào hệ thống

Post-conditions Người dùng đổi mật khẩu thành công

1 Người dùng nhấn Trang cá nhân

2 Người dùng nhập mật khẩu hiện tại, mật khẩu mới, mật khẩu xác nhận

3 Người dùng nhấn Đổi mật khẩu

4 Hệ thống kiểm tra mật khẩu người dùng nhập vào

5 Hệ thống lưu mật khẩu mới và thông báo cập nhật mật khẩu thành công

4a Hệ thống kiểm tra thấy mật khẩu hiện tại không đúng 4a1 Hệ thống thông báo mật khẩu hiện tại không đúng 4a2 Use case quay lại bước 1 của Basic flows

2.2.6 Xem thông tin cá nhân

Bảng 2.6: Đặc tả chức năng xem thông tin cá nhân

Name Xem thông tin cá nhân

Brief description Người dùng xem thông tin cá nhân của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng xem được thông tin cá nhân

1 Người dùng nhấn Trang cá nhân

2 Hệ thống hiển thị thông tin cá nhân của người dùng Alternative flows

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

Bảng 2.7: Đặc tả chức năng cập nhật thông tin cá nhân

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

Brief description Người dùng cập nhật thông tin cá nhân của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng cập nhật thành công thông tin cá nhân

1 Người dùng nhấn Trang cá nhân

2 Người dùng thay đổi các thông tin cần thiết

4 Hệ thống kiểm tra thông tin nhập vào

5 Hệ thống lưu thay đổi, thông báo cập nhật thông tin cá nhân thành công và hiển thị trang cá nhân mới

4a Hệ thống kiểm tra thấy email người dùng vừa chỉnh sửa đã được đăng ký

4a1 Hệ thống thông báo email đã được đăng ký trước đó

4a2 Use case quay lại bước 2 của Basic flows

Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện

Name Đổi ảnh đại diện

Brief description Người dùng đổi ảnh đại diện cho tài khoản của mình

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đổi ảnh đại diện thành công

1 Người dùng nhấn Trang cá nhân

2 Người dùng nhấn Chọn ảnh

3 Người dùng chọn ảnh từ thiết bị

5 Hệ thống tải và lưu ảnh đại diện, thông báo cập nhật thành công và hiển thị ảnh đại diện mới mới

Bảng 2.9: Đặc tả chức năng đọc tài liệu

Brief description Người dùng đọc tài liệu

Actor Người dùng khách, sinh viên

Post- conditions Người dùng đọc được tài liệu mà mình muốn

1 Người dùng truy cập danh sách tài liệu

2 Người dùng nhấp vào một tài liệu mà mình muốn đọc

3 Hệ thống hiển thị chi tiết tài liệu, trong đó nội dung tài liệu được hiển thị bằng trình xem PDF

Business rules Sinh viên chỉ đọc được những tài liệu công khai và tài liệu nội bộ của trường

Bảng 2.10: Đặc tả chức năng tìm kiếm tài liệu

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

Brief description Người dùng tìm kiếm tài liệu

Actor Sinh viên, quản lý, admin

Post-conditions Người dùng tìm được các tài liệu mong muốn

1 Người dùng nhập từ khoá vào ô tìm kiếm trên trang web

2 Người dùng nhấn phím Enter hoặc biểu tượng tìm kiếm

3 Hệ thống tìm kiếm và hiển thị các tài liệu liên quan đến từ khoá nhận được

3a Hệ thống không thể tìm thấy được tài liệu nào phù hợp

3a1 Hệ thống hiển thị thông báo không tìm thấy tài liệu phù hợp 3a2 Use case kết thúc

Bảng 2.11: Đặc tả chức năng lọc tài liệu

Brief description Người dùng lọc tài liệu theo tiêu chí

Actor Người dùng khách, sinh viên

Post-conditions Người dùng thực hiện thao tác lọc để tìm ra các tài liệu thoả tiêu chí

1 Người dùng truy cập danh sách tài liệu

2 Người dùng chọn các tiêu chí lọc

3 Hệ thống tìm kiếm và hiển thị các tài liệu phù hợp với các tiêu chí lọc

3a Hệ thống không thể tìm thấy được tài liệu nào phù hợp

3a1 Hệ thống hiển thị thông báo không tìm thấy tài liệu phù hợp 3a2 Use case kết thúc

Bảng 2.12: Đặc tả chức năng thích tài liệu

Brief description Người dùng thêm tài liệu vào danh sách yêu thích

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa thích tài liệu dự định sẽ thích

Post-conditions Người dùng thêm tài liệu vào danh sách yêu thích thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng nhấn vào biểu tượng thích

3 Hệ thống thông báo đã thích tài liệu và tăng lượt thích lên

2a Người dùng muốn bỏ thích tài liệu

2a1 Người dùng nhấn vào biểu tượng thích

2a2 Hệ thống thông báo đã bỏ thích tài liệu và giảm lượt thích xuống

Bảng 2.13: Đặc tả chức năng lưu tài liệu

Brief description Người dùng thêm tài liệu vào danh sách đã lưu

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa lưu tài liệu dự định sẽ lưu

Post- conditions Người dùng thêm tài liệu vào danh sách đã lưu thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng nhấn vào biểu tượng lưu

3 Hệ thống thông báo đã lưu tài liệu

2a Người dùng muốn bỏ lưu tài liệu

2a1 Người dùng nhấn vào biểu tượng lưu

2a2 Hệ thống thông báo đã bỏ lưu tài liệu

Bảng 2.14: Đặc tả chức năng đánh giá tài liệu

Name Đánh giá tài liệu

Brief description Người dùng đánh giá tài liệu

Người dùng đăng nhập thành công vào hệ thống Người dùng chưa đánh giá tài liệu dự định sẽ đánh giá

Post-conditions Người dùng đánh giá tài liệu thành công

1 Người dùng nhấn vào xem một tài liệu

2 Người dùng chọn số sao và nhập lời đánh giá

4 Hệ thống kiểm tra thông tin nhận được

5 Hệ thống lưu lại đánh giá, cập nhật danh sách đánh giá và hiển thị thông báo đánh giá thành công

Bảng 2.15: Đặc tả chức năng đăng tài liệu

Brief description Người dùng đăng tải một tài liệu mới lên hệ thống

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng đăng tải thành công tài liệu lên hệ thống

1 Người dùng nhấn Tải lên/Thêm tài liệu

2 Người dùng nhập các thông tin được yêu cầu, chọn danh mục, lĩnh vực, chọn tệp tài liệu

3 Người dùng nhấn Tải lên

4 Hệ thống kiểm tra thông tin về tài liệu

5 Hệ thống lưu tài liệu và thông báo đã thêm tài liệu thành công

2a Người dùng có vai trò là admin

2a1 Người dùng nhập các thông tin được yêu cầu, chọn danh mục, lĩnh vực, chọn tệp tài liệu

2a2 Use case tiếp tục ở bước 3 của Basic flows

5a Người dùng có vai trò sinh viên

5a1 Hệ thống lưu tài liệu, thông báo đã thêm tài liệu thành công và đang đợi duyệt, chuyển tài liệu đang đợi đến quản lý và admin 5a2 Use case kết thúc

1 Sinh viên, quản lý sẽ tải tài liệu lên trường của mình

2 Quản lý và admin phê duyệt tài liệu do sinh viên tải lên

Bảng 2.16: Đặc tả chức năng chỉnh sửa tài liệu

Name Chỉnh sửa tài liệu

Brief description Người dùng chỉnh sửa tài liệu

Actor Sinh viên, quản lý, admin

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng chỉnh sửa tài liệu thành công

1 Người dùng truy cập vào danh sách tài liệu

2 Người dùng nhấn Chỉnh sửa bên cạnh tài liệu

3 Người dùng chỉnh sửa các thông tin cần thiết cũng như tệp tài liệu

4 Hệ thống kiểm tra thông tin về tài liệu

5 Hệ thống lưu tài liệu và thông báo đã chỉnh sửa tài liệu thành công

5a Người dùng có vai trò sinh viên

5a1 Hệ thống lưu lại tài liệu, thông báo đã chỉnh sửa tài liệu thành công và đang đợi duyệt, chuyển tài liệu đang đợi đến quản lý và admin

1 Sinh viên chỉnh sửa tài liệu thì tài liệu sẽ đưa về trạng thái chờ duyệt

2 Quản lý thực hiện chỉnh sửa các tài liệu thuộc trường mà mình quản lý

Bảng 2.17: Đặc tả chức năng xoá tài liệu

Brief description Người dùng muốn xoá một tài liệu

Pre-conditions Người dùng đăng nhập thành công vào hệ thống

Post-conditions Người dùng xoá tài liệu thành công

1 Người dùng truy cập danh sách tài liệu

2 Người dùng nhấn Xoá bên cạnh tài liệu

3 Hệ thống hiển thị xác nhận xoá tài liệu

5 Hệ thống xoá tài liệu, hiển thị thông báo xoá thành công và cập nhật lại danh sách tài liệu

4a Người dùng huỷ bỏ xoá tài liệu

4a1 Người dùng chọn Huỷ bỏ

Bảng 2.18: Đặc tả chức năng thêm người dùng

Brief description Người dùng thêm người dùng mới trên hệ thống

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng thêm người dùng mới thành công

1 Người dùng nhấn Thêm người dùng

2 Người dùng nhập các thông tin được yêu cầu cho người dùng mới

4 Hệ thống kiểm tra thông tin nhận vào

5 Hệ thống lưu người dùng mới, sau đó hiển thị thông báo thêm người dùng thành công

2a Người dùng có vai trò admin

2a1 Người dùng nhập các thông tin được yêu cầu và chọn trường cho người dùng mới

2a2 Use case tiếp tục ở bước 3 của Basic flows

4a Hệ thống kiểm tra thấy email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Mật khẩu có độ dài tối thiểu là 8 ký tự

Quản lý thực hiện thêm người dùng thuộc trường của mình

Bảng 2.19: Đặc tả chức năng chỉnh sửa người dùng

Use case Chỉnh sửa người dùng

Brief description Người dùng chỉnh sửa thông tin của người dùng khác trên hệ thống

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người chỉnh sửa thành công thông tin thông tin của người dùng khác

1 Người dùng truy cập vào danh sách người dùng do mình quản lý

2 Người dùng nhấn Chỉnh sửa bên cạnh tài khoản của người dùng muốn chỉnh sửa

3 Người dùng chỉnh sửa các thông tin cần thiết của người dùng

5 Hệ thống lưu lại thay đổi và hiển thị thông báo chỉnh sửa người dùng thành công

Alternative flows 2a Người dùng có vai trò admin

2a1 Người dùng chỉnh sửa các thông tin của người dùng và chọn trường cho người dùng (nếu muốn)

2a2 Use case tiếp tục ở bước 3 của Basic flows

4a Hệ thống kiểm tra thấy email đã được đăng ký trước đó

4a1 Hệ thống thông báo email đã được đăng ký

4a2 Use case quay lại bước 2 của Basic flows

Mật khẩu có độ dài tối thiểu là 8 ký tự

Quản lý thực hiện chỉnh sửa người dùng thuộc trường của mình

Bảng 2.20: Đặc tả chức năng xoá người dùng

Người dùng xoá một người dùng khác

Pre-conditions Người đã đăng nhập thành công vào hệ thống

Người dùng xoá thành công một người dùng khác

1 Người dùng truy cập vào danh sách người dùng mà mình quản lý

2 Người dùng nhấn Xoá bên cạnh tài khoản của người dùng muốn xoá

3 Hệ thống hiển thị cảnh báo xác nhận xoá người dùng

5 Hệ thống xoá người dùng, hiển thị thông báo xoá người dùng thành công và cập nhật lại danh sách người dùng

4a Người dùng huỷ bỏ việc xoá người dùng khác

4a1 Người dùng chọn Huỷ bỏ

4a2 Use case kết thúc 5a: Hệ thống kiểm tra thấy người dùng đã đăng tải tài liệu lên

5a1 Hệ thống vô hiệu hoá tài khoản người dùng, hiển thị thông báo vô hiệu hoá tài khoản người dùng và cập nhật lại danh sách người dùng

Business rules Quản lý thực hiện xoá người dùng thuộc trường mà mình quản lý

Bảng 2.21: Đặc tả chức năng xoá đánh giá

Brief description Người dùng xoá đánh giá vi phạm của tài liệu

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng xoá đánh giá thành công

1 Người dùng truy cập vào danh sách đánh giá của các tài liệu thuộc trường mà mình quản lý

2 Người dùng nhấn Xoá bên cạnh đánh giá

3 Hệ thống hiển thị cảnh báo xác nhận xoá đánh giá

5 Hệ thống xoá đánh giá, hiển thị thông báo xoá đánh giá thành công và cập nhật lại danh sách đánh giá

4a Người dùng huỷ bỏ việc xoá đánh giá

4a1 Người dùng chọn Huỷ bỏ

Bảng 2.22: Đặc tả chức năng phê duyệt tài liệu

Name Phê duyệt tài liệu

Brief description Người dùng phê duyệt tài liệu do sinh viên tải lên

Pre-conditions Người dùng đã đăng nhập thành công vào hệ thống

Post-conditions Người dùng phê duyệt tài liệu thành công

1 Người dùng truy cập vào danh sách tài liệu đang chờ phê duyệt do mình quản lý

2 Người dùng nhấn Phê duyệt

3 Hệ thống hiển thị thông báo yêu cầu chọn hành động

4 Người dùng chọn Chấp nhận

KẾT QUẢ ĐẠT ĐƯỢC

- Hiểu biết và học hỏi thêm nhiều về Spring Boot, ReactJS và các công nghệ liên quan được sử dụng trong dự án

- Nâng cao kiến thức về cách thiết kế RESTful API, cách thiết kế giao diện

- Hiểu biết về cách tích hợp hai hệ thống back-end và front-end lại với nhau

- Nắm rõ được quy trình phát triển phần mềm

- Kỹ năng thiết kế, xây dựng và phát triển phần mềm

- Kỹ năng quản lý tiến độ dự án phần mềm

- Kỹ năng gỡ lỗi và giải quyết lỗi hiệu quả

- Kỹ năng làm việc nhóm và cộng tác

- Kỹ năng quản lý thời gian

- Kỹ năng tự tìm hiểu, nghiên cứu và học hỏi

- Kỹ năng tư duy logic

- Cẩn thận, chỉn chu trong thực hiện công việc

- Thái độ cầu tiến, học hỏi công nghệ mới trong xây website

- Tinh thần làm việc nhóm hiệu quả, sẵn sàng học hỏi, chia sẻ kiến thức lẫn nhau

- Xây dựng thành công website thư viện số dành cho sinh viên

- Xây dựng thành công website quản lý thư viện số dành cho quản lý và admin

- Hoàn thành tài liệu phân tích, thiết kế hệ thống thư viện số.

ƯU NHƯỢC ĐIỂM

- Hoàn thành đầy đủ chức năng theo thiết kế

- Các chức năng tương đối đầy đủ cho người dùng cơ bản

- Giao diện trang web thân thiện, trực quan và dễ dàng sử dụng

- Hệ thống hoạt động ổn định

- Hệ thống có khả năng mở rộng và nâng cấp dễ dàng

- Chưa xem xét đến tối ưu hiệu năng và bảo mật

- Một số chức năng hiện thực chưa được tốt do hạn chế về kỹ năng lẫn kiến thức

- Chưa xem xét đến những tính năng nâng cao khác để tăng trải nghiệm người dùng.

HƯỚNG PHÁT TRIỂN

- Khắc phục những nhược điểm ở trên

- Xây dựng một trang diễn đàn chia sẻ tài liệu và tương tác trực tiếp cho sinh viên

- Phát triển tính năng tạo danh sách tài liệu để lưu và chia sẻ cho người dùng khác

- Phát triển bộ lọc tìm kiếm tài liệu hiệu quả hơn và gợi ý tài liệu liên quan

DANH MỤC TÀI LIỆU THAM KHẢO

[1] baeldung (2023, September 17) Dockerizing a Spring Boot Application Retrieved

December 25, 2023, from Baeldung website: https://www.baeldung.com/dockerizing-spring-boot-application

[2] DinhTrieu (2019, November 23) Thao thác với Google drive API Retrieved December 25, 2023, from viblo.asia website: https://viblo.asia/p/thao-thac-voi- google-drive-api-gGJ59O4xZX2

[3] Google (2023, December 25) Tổng quan về API Google Drive Retrieved December 25, 2023, from Google for Developers website: https://developers.google.com/drive/api/guides/about- sdk?hl=vi#:~:text=The%20Google%20Drive%20API%20lets

[4] haphuong (2022, November 13) Spring Boot và những điều cần biết Retrieved December 25, 2023, from Cao Đẳng FPT Polytechnic xét tuyển website: https://caodang.fpt.edu.vn/tin-tuc-poly/blog/spring-boot-va-nhung-dieu-can- biet.html#:~:text=Spring%20Boot%20l%C3%A0%20g%C3%AC%3F

[5] ITNavi (2021, October 10) Use Case là gì? Quy trình vẽ sơ đồ Use Case hoàn chỉnh

- ITNavi Retrieved December 25, 2023, from itnavi.com.vn website: https://itnavi.com.vn/blog/use-case-la-gi

[6] Oracle (2021) What is MySQL? Retrieved December 25, 2023, from Oracle.com website: https://www.oracle.com/mysql/what-is-mysql

[7] React (2023) React – A JavaScript library for building user interfaces Retrieved December 25, 2023, from reactjs.org website: https://legacy.reactjs.org/

[8] Software Engineer Training (2021, June 25) ReactJS là gì? Những điều có thể bạn chưa biết về ReactJS Retrieved December 25, 2023, from viblo.asia website: https://viblo.asia/p/reactjs-la-gi-nhung-dieu-co-the-ban-chua-biet-ve-reactjs- eW65G4RRKDO

[9] Spring (2023) Spring Boot Retrieved December 25, 2023, from spring.io website: https://spring.io/projects/spring-boot/

Ngày đăng: 19/11/2024, 08:39

HÌNH ẢNH LIÊN QUAN

Bảng 0.1: Nhận xét trang web Studocu - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 0.1 Nhận xét trang web Studocu (Trang 29)
Bảng 0.3: Yêu cầu chức năng quản lý người dùng - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 0.3 Yêu cầu chức năng quản lý người dùng (Trang 36)
Bảng 0.10: Danh sách yêu cầu phi chức năng - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 0.10 Danh sách yêu cầu phi chức năng (Trang 39)
Bảng 2.1: Đặc tả chức năng đăng ký - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.1 Đặc tả chức năng đăng ký (Trang 44)
Bảng 2.3: Đặc tả chức năng đăng xuất - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.3 Đặc tả chức năng đăng xuất (Trang 46)
Bảng 2.4: Đặc tả chức năng lấy lại mật khẩu - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.4 Đặc tả chức năng lấy lại mật khẩu (Trang 47)
Bảng 2.8: Đặc tả chức năng đổi ảnh đại diện - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.8 Đặc tả chức năng đổi ảnh đại diện (Trang 52)
Bảng 2.13: Đặc tả chức năng lưu tài liệu - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.13 Đặc tả chức năng lưu tài liệu (Trang 57)
Bảng 2.18: Đặc tả chức năng thêm người dùng - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.18 Đặc tả chức năng thêm người dùng (Trang 62)
Bảng 2.24: Đặc tả chức năng chỉnh sửa trường - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.24 Đặc tả chức năng chỉnh sửa trường (Trang 70)
Bảng 2.26: Đặc tả chức năng kích hoạt trường - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.26 Đặc tả chức năng kích hoạt trường (Trang 72)
Bảng 2.27: Đặc tả chức năng thêm danh mục - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.27 Đặc tả chức năng thêm danh mục (Trang 73)
Bảng 2.28: Đặc tả chức năng chỉnh sửa danh mục - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.28 Đặc tả chức năng chỉnh sửa danh mục (Trang 74)
Bảng 2.29: Đặc tả chức năng xoá danh mục - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
Bảng 2.29 Đặc tả chức năng xoá danh mục (Trang 75)
6  Bảng  danh  sách  tài - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng diễn đàn chia sẻ tài liệu cho sinh viên
6 Bảng danh sách tài (Trang 168)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w