1. Trang chủ
  2. » Giáo Dục - Đào Tạo

xây dựng website quản lý đề tài khóa luận tốt nghiệp khoa cntt

159 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 Website Quản lý đề tài Khóa luận tốt nghiệp Khoa CNTT
Tác giả Ngô Đình Đại, Nguyễn Văn Truyền, Nguyễn Hồng Đức
Người hướng dẫn THS. Ngô Ngọc Đăng Khoa
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 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 159
Dung lượng 10,98 MB

Cấu trúc

  • PHẦN 1: MỞ ĐẦU (29)
  • CHƯƠNG 1: TỔNG QUAN (29)
    • 1.1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (7)
    • 1.2. ĐỐI TƯỢNG NGHIÊN CỨU (7)
    • 1.3. PHẠM VI NGHIÊN CỨU (7)
    • 1.4. KẾT QUẢ DỰ KIẾN (7)
    • 1.5. BẢNG PHÂN CÔNG CÔNG VIỆC (7)
  • PHẦN 2: NỘI DUNG (32)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (32)
    • 2.1. KIẾN TRÚC HỆ THỐNG (7)
      • 2.1.1. Khái niệm về MERN Stack (7)
      • 2.1.2. Các thành phần trong MERN Stack (7)
      • 2.1.3. Cách MERN Stack hoạt động (7)
      • 2.1.4. Lợi thế của MERN Stack (7)
    • 2.2. CÔNG NGHỆ BACK-END (7)
      • 2.2.1. Khái niệm NodeJS (8)
      • 2.2.2. Đặc điểm của NodeJS (8)
      • 2.2.3. Khái niệm NestJS (8)
      • 2.2.4. Đặc điểm của NestJS (8)
    • 2.3. CÔNG NGHỆ FRONT-END (8)
      • 2.3.1. Khái niệm ReactJS (8)
      • 2.3.2. Tại sao lại chọn ReactJS? (8)
    • 2.4. CƠ SỞ DỮ LIỆU MONGODB (8)
      • 2.4.1. Khái niệm MongoDB (8)
      • 2.4.2. Đặc điểm của MongoDB (8)
    • 2.5. POSTMAN (8)
    • 2.6. JSON WEB TOKEN (8)
      • 2.6.1. JWT – Định nghĩa và ứng dụng trong bảo mật Client-Server (8)
      • 2.6.2. Cấu trúc của JWT (8)
      • 2.6.3. Ưu điểm của JWT (8)
  • CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU (43)
    • 3.1. KHẢO SÁT HIỆN TRẠNG (8)
      • 3.1.1. Đặt vấn đề và Mục tiêu khảo sát (8)
      • 3.1.2. Phương pháp tiến hành (8)
      • 3.1.3. Kết quả khảo sát (8)
      • 3.1.4. Đề xuất cải tiến (8)
      • 3.1.5. Kết luận (8)
    • 3.2. XÁC ĐỊNH YÊU CẦU (8)
      • 3.2.1. Yêu cầu chức năng (8)
        • 3.2.1.1 Yêu cầu chức năng nghiệp vụ (8)
        • 3.2.1.2 Yêu cầu chức năng hệ thống (8)
      • 3.2.2. Yêu cầu phi chức năng (8)
    • 3.3. TÁC NHÂN HỆ THỐNG (8)
    • 3.4. LƯỢC ĐỒ USE CASE (8)
      • 3.4.1. Lược đồ Use case Sinh viên (8)
      • 3.4.2. Lược đồ Use case Giảng viên (9)
      • 3.4.3. Lược đồ Use case Giáo vụ (9)
    • 3.5. ĐẶC TẢ USE CASE (9)
      • 3.5.1. Use case chung (9)
        • 3.5.1.1 Đăng nhập (9)
        • 3.5.1.2 Xem thông tin cá nhân (9)
        • 3.5.1.3 Cập nhật thông tin cá nhân (9)
      • 3.5.2. Sinh viên (9)
        • 3.5.2.1 Xem danh sách đề tài được đăng ký (9)
        • 3.5.2.2 Ghi danh vào đề tài (9)
        • 3.5.2.3 Hủy đề tài (9)
        • 3.5.2.4 Đề xuất đề tài (9)
        • 3.5.2.5 Xem chi tiết đề tài (9)
        • 3.5.2.6 Cập nhật thông tin cho đề tài (9)
      • 3.5.3. Giảng viên (9)
        • 3.5.3.1 Thêm đề tài (9)
        • 3.5.3.2 Sửa đề tài (9)
        • 3.5.3.3 Xóa đề tài (9)
        • 3.5.3.4 Gửi đề tài lên giáo vụ (9)
        • 3.5.3.5 Xóa đề tài (Quản lý đề tài) (9)
        • 3.5.3.6 Yêu cầu cập nhật bảng điểm (9)
        • 3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài (9)
        • 3.5.3.8 Chấm điểm đề tài hướng dẫn (9)
        • 3.5.3.9 Chấm điểm đề tài phản biện (9)
        • 3.5.3.10 Hội đồng chấm điểm đề tài (9)
        • 3.5.3.11 Xem thông tin nhóm (9)
        • 3.5.3.12 Xem lịch sử đề tài (9)
      • 3.5.4. Giáo vụ (9)
        • 3.5.4.1 Xem chi tiết đề tài (9)
        • 3.5.4.2 Xác nhận đề tài thực hiện (9)
        • 3.5.4.3 Phân công GVPB (10)
        • 3.5.4.4 Tải xuống danh sách đề tài (10)
        • 3.5.4.5 Xem danh sách sinh viên thực hiện (10)
        • 3.5.4.6 Xem điểm chi tiết (10)
        • 3.5.4.7 Xóa người dùng (10)
        • 3.5.4.8 Thêm mới người dùng (10)
        • 3.5.4.9 Thêm danh sách người dùng bằng file excel (10)
        • 3.5.4.10 Thêm mới học kỳ (10)
        • 3.5.4.11 Xóa học kỳ (10)
        • 3.5.4.12 Cập nhật học kỳ (10)
        • 3.5.4.13 Thêm mới đợt đăng ký (10)
        • 3.5.4.14 Xóa đợt đăng ký (10)
        • 3.5.4.15 Cập nhật đợt đăng ký (10)
        • 3.5.4.16 Thêm mới phiếu đánh giá (10)
        • 3.5.4.17 Xóa phiếu đánh giá (10)
        • 3.5.4.18 Thêm mới tiêu chí (10)
        • 3.5.4.19 Cập nhật tiêu chí (10)
        • 3.5.4.20 Thêm mới hội đồng (10)
        • 3.5.4.21 Xóa hội đồng (10)
        • 3.5.4.22 Gán đề tài vào hội đồng (10)
  • CHƯƠNG 4: THIẾT KẾ PHẦN MỀM (90)
    • 4.1. MÔ TẢ CƠ SỞ DỮ LIỆU (10)
      • 4.1.1. Thông tin các trường trong bảng (10)
      • 4.1.2. Mô hình ERD (10)
    • 4.2. Hiện thực thông qua MongoDB (10)
      • 4.2.1. Bảng Topics (10)
      • 4.2.2. Bảng Users (10)
      • 4.2.3. Bảng UserNotifications (10)
      • 4.2.4. Bảng TopicCategories (10)
      • 4.2.5. Bảng Semesters (10)
      • 4.2.6. Bảng ScoreBoards (11)
      • 4.2.7. Bảng RubricEvaluations (11)
      • 4.2.8. Bảng Rubrics (11)
      • 4.2.9. Bảng RegistrationPeriods (11)
      • 4.2.10. Bảng Majors (11)
      • 4.2.11. Bảng GroupStudents (11)
      • 4.2.12. Bảng Faculties (11)
      • 4.2.13. Bảng Assemblies (11)
  • CHƯƠNG 5: TỔNG QUAN HỆ THỐNG (102)
    • 5.1. VAI TRÒ CỦA ỨNG DỤNG (11)
      • 5.1.1. Mô hình tổng quan của ứng dụng (11)
      • 5.1.2. Giới thiệu các ứng dụng (11)
    • 5.2. Ứng dụng web dành cho sinh viên (11)
      • 5.2.1. Công nghệ sử dụng (11)
      • 5.2.2. Mô hình hoạt động (11)
        • 5.2.2.1 Luồng đăng nhập (11)
        • 5.2.2.2 Luồng đề xuất đề tài (11)
        • 5.2.2.3 Luồng ghi danh đề tài (11)
        • 5.2.2.4 Luồng huỷ ghi danh đề tài (11)
        • 5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….) (11)
        • 5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện (11)
    • 5.3. Ứng dụng web dành giảng viên (11)
      • 5.3.1. Công nghệ sử dụng (11)
      • 5.3.2. Mô hình hoạt động (11)
        • 5.3.2.1 Luồng quản lý đề tài (11)
        • 5.3.2.2 Luồng chỉnh sửa đề tài (11)
        • 5.3.2.3 Luồng gửi đề tài lên giáo vụ (11)
        • 5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận (11)
    • 5.4. Ứng dụng web dành giáo vụ (123)
      • 5.4.1. Công nghệ sử dụng (123)
      • 5.4.2. Mô tả luồng hoạt động (124)
        • 5.4.2.1 Luồng thêm học kỳ (124)
        • 5.4.2.2 Luồng xóa học kỳ (126)
        • 5.4.2.3 Luồng cập thông tin học kì (126)
        • 5.4.2.4 Luồng thêm đợt đăng kí khoá luận trong học kì (128)
        • 5.4.2.5 Luồng chỉnh sửa đợt đăng kí (129)
        • 5.4.2.6 Luồng thêm phiếu đánh giá (130)
        • 5.4.2.7 Luồng thêm tiêu chí vào phiếu đánh giá (132)
        • 5.4.2.8 Luồng cập nhật tiêu chí đánh giá (134)
        • 5.4.2.9 Luồng xoá phiếu đánh giá (135)
        • 5.4.2.10 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký (136)
        • 5.4.2.11 Luồng thêm người dùng (136)
        • 5.4.2.12 Luồng xoá người dùng (138)
        • 5.4.2.13 Luồng cập nhật thông tin người dùng (139)
        • 5.4.2.14 Luồng thêm hội đồng vào hệ thống (140)
        • 5.4.2.15 Luồng xoá hội đồng khỏi hệ thống (142)
        • 5.4.2.16 Luồng xác nhận đề tài thực hiện (143)
        • 5.4.2.17 Luồng phân chia hội đồng phản biện cho các đề tài (145)
        • 5.4.2.18 Luồng phân công giảng viên phản biện (147)
  • CHƯƠNG 6: KIỂM THỬ HỆ THỐNG (149)
    • 6.1. MỤC ĐÍCH KIỂM THỬ (12)
    • 6.2. PHẠM VI KIỂM TRA (12)
    • 6.3. CHIẾN LƯỢC KIỂM THỬ ÁP DỤNG (12)
    • 6.4. CÁC PHƯƠNG PHÁP KIỂM THỬ (12)
    • 6.5. KẾ HOẠCH KIỂM THỬ (12)
    • 6.6. KẾT QUẢ KIỂM THỬ (12)
  • PHẦN 3: KẾT LUẬN (153)
  • CHƯƠNG 7: TỔNG KẾT (153)
    • 7.1. KẾT QUẢ ĐẠT ĐƯỢC (12)
    • 7.2. THÔNG TIN VỀ PROJECT (12)
      • 7.2.1. Các đường link source code (12)
      • 7.2.2. Deploy hệ thống (13)
        • 7.2.2.1 Back-end (13)
    • 7.3. ĐÁNH GIÁ HỆ THỐNG (13)
      • 7.3.1. Ưu điểm (13)
      • 7.3.2. Nhược điểm (13)
      • 7.3.3. Hướng phát triển (13)

Nội dung

Chúng em cũng xin gửi lời cảm ơn đặc biệt tới Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh vì đã tạo điều kiện thuận lợi cho chúng em trong việc đăng k

TỔNG QUAN

BẢNG PHÂN CÔNG CÔNG VIỆC

Chương 2: Cơ sở lý thuyết

2.1.1 Khái niệm về MERN Stack

2.1.2 Các thành phần trong MERN Stack

2.1.3 Cách MERN Stack hoạt động

2.1.4 Lợi thế của MERN Stack

2.3.2 Tại sao lại chọn ReactJS?

2.4 Cơ sở dữ liệu mongodb

2.6.1 JWT – Định nghĩa và ứng dụng trong bảo mật Client-Server 2.6.2 Cấu trúc của JWT

Chương 3: Khảo sát hiện trạng và mô hình hóa yêu cầu

3.1.1 Đặt vấn đề và Mục tiêu khảo sát

3.2.1.1 Yêu cầu chức năng nghiệp vụ 3.2.1.2 Yêu cầu chức năng hệ thống 3.2.2 Yêu cầu phi chức năng

3.4.1 Lược đồ Use case Sinh viên

3.4.2 Lược đồ Use case Giảng viên

3.4.3 Lược đồ Use case Giáo vụ

3.5.1.1 Đăng nhập 3.5.1.2 Xem thông tin cá nhân 3.5.1.3 Cập nhật thông tin cá nhân 3.5.2 Sinh viên

3.5.2.1 Xem danh sách đề tài được đăng ký 3.5.2.2 Ghi danh vào đề tài

3.5.2.3 Hủy đề tài 3.5.2.4 Đề xuất đề tài 3.5.2.5 Xem chi tiết đề tài 3.5.2.6 Cập nhật thông tin cho đề tài 3.5.3 Giảng viên

3.5.3.1 Thêm đề tài 3.5.3.2 Sửa đề tài 3.5.3.3 Xóa đề tài 3.5.3.4 Gửi đề tài lên giáo vụ 3.5.3.5 Xóa đề tài (Quản lý đề tài) 3.5.3.6 Yêu cầu cập nhật bảng điểm 3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài 3.5.3.8 Chấm điểm đề tài hướng dẫn

3.5.3.9 Chấm điểm đề tài phản biện 3.5.3.10 Hội đồng chấm điểm đề tài 3.5.3.11 Xem thông tin nhóm 3.5.3.12 Xem lịch sử đề tài 3.5.4 Giáo vụ

3.5.4.1 Xem chi tiết đề tài 3.5.4.2 Xác nhận đề tài thực hiện

3.5.4.3 Phân công GVPB 3.5.4.4 Tải xuống danh sách đề tài 3.5.4.5 Xem danh sách sinh viên thực hiện 3.5.4.6 Xem điểm chi tiết

3.5.4.7 Xóa người dùng 3.5.4.8 Thêm mới người dùng 3.5.4.9 Thêm danh sách người dùng bằng file excel 3.5.4.10 Thêm mới học kỳ

3.5.4.11 Xóa học kỳ 3.5.4.12 Cập nhật học kỳ 3.5.4.13 Thêm mới đợt đăng ký 3.5.4.14 Xóa đợt đăng ký 3.5.4.15 Cập nhật đợt đăng ký 3.5.4.16 Thêm mới phiếu đánh giá 3.5.4.17 Xóa phiếu đánh giá 3.5.4.18 Thêm mới tiêu chí 3.5.4.19 Cập nhật tiêu chí 3.5.4.20 Thêm mới hội đồng 3.5.4.21 Xóa hội đồng 3.5.4.22 Gán đề tài vào hội đồng Chương 4: Thiết kế phần mềm

4.1 Mô tả cơ sở dữ liệu

4.1.1 Thông tin các trường trong bảng

4.2 Hiện thực thông qua MongoDB

Chương 5: Tổng quan hệ thống

5.1 Vai trò của ứng dụng

5.1.1 Mô hình tổng quan của ứng dụng

5.1.2 Giới thiệu các ứng dụng

5.2 Ứng dụng web dành cho sinh viên

5.2.2.1 Luồng đăng nhập 5.2.2.2 Luồng đề xuất đề tài 5.2.2.3 Luồng ghi danh đề tài 5.2.2.4 Luồng huỷ ghi danh đề tài 5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….)

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 5.3 Ứng dụng web dành giảng viên

5.3.2.1 Luồng quản lý đề tài 5.3.2.2 Luồng chỉnh sửa đề tài 5.3.2.3 Luồng gửi đề tài lên giáo vụ 5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài 5.3.2.6 Luồng cập thông tin học kì 5.3.2.7 Luồng thêm đợt đăng kí khoá luận trong học kì 5.3.2.8 Luồng chỉnh sửa đợt đăng kí

5.3.2.9 Luồng thêm phiếu đánh giá:

5.3.2.10 Luồng thêm tiêu chí vào phiếu đánh giá 5.3.2.11 Luồng cập nhật tiêu chí đánh giá 5.3.2.12 Luồng xoá phiếu đánh giá

5.3.2.13 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 5.3.2.14 Luồng thêm người dùng

5.3.2.15 Luồng xoá người dùng 5.3.2.16 Luồng cập nhật thông tin người dùng 5.3.2.17 Luồng thêm hội đồng vào hệ thống 5.3.2.18 Luồng xoá hội đồng khỏi hệ thống 5.3.2.19 Luồng xác nhận đề tài thực hiện 5.3.2.20 Luồng phân chia hội đồng phản biện cho các đề tài 5.3.2.21 Luồng phân công giảng viên phản biện

Chương 6: Kiểm thử hệ thống

6.3 Chiến lược kiểm thử áp dụng

6.4 Các phương pháp kiểm thử

7.2.1 Các đường link source code

7.2.2 Deploy hệ thống 7.2.2.1 Back-end 7.3 Đánh giá hệ thống

7.3.1 Ưu điểm 7.3.2 Nhược điểm 7.3.3 Hướng phát triển

4 Danh mục tài liệu tham khảo

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

Phân tích dự án Xây dựng cơ sở dữ liệu

Khảo sát đề tài và phân tích xây dựng hệ thống

2 10/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

3 11/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

Kiểm thử dự án Triển khai dự án Viết báo cáo

Viết và chỉnh sửa mã nguồn Viết testcase

Tp Hồ Chí Minh, ngày tháng năm 2023

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(ký và ghi rõ họ tên)

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

1.5 BẢNG PHÂN CÔNG CÔNG VIỆC 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1.1 Khái niệm về MERN Stack 4

2.1.2 Các thành phần trong MERN Stack 4

2.1.3 Cách MERN Stack hoạt động 5

2.1.4 Lợi thế của MERN Stack 6

2.3.2 Tại sao lại chọn ReactJS? 9

2.4 CƠ SỞ DỮ LIỆU MONGODB 11

2.6.1 JWT – Định nghĩa và ứng dụng trong bảo mật Client-Server 13

CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 15

3.1.1 Đặt vấn đề và Mục tiêu khảo sát 15

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

3.2.1.2 Yêu cầu chức năng hệ thống 19

3.2.2 Yêu cầu phi chức năng 19

3.4.1 Lược đồ Use case Sinh viên 20

3.4.2 Lược đồ Use case Giảng viên 21

3.4.3 Lược đồ Use case Giáo vụ 23

3.5.1.2 Xem thông tin cá nhân 27

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

3.5.2.1 Xem danh sách đề tài được đăng ký 28

3.5.2.2 Ghi danh vào đề tài 29

3.5.2.5 Xem chi tiết đề tài 31

3.5.2.6 Cập nhật thông tin cho đề tài 33

3.5.3.4 Gửi đề tài lên giáo vụ 36

3.5.3.5 Xóa đề tài (Quản lý đề tài) 37

3.5.3.6 Yêu cầu cập nhật bảng điểm 37

3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài 38

3.5.3.8 Chấm điểm đề tài hướng dẫn 39

3.5.3.9 Chấm điểm đề tài phản biện 40

3.5.3.10 Hội đồng chấm điểm đề tài 40

3.5.3.12 Xem lịch sử đề tài 42

3.5.4.1 Xem chi tiết đề tài 43

3.5.4.2 Xác nhận đề tài thực hiện 44

3.5.4.4 Tải xuống danh sách đề tài 45

3.5.4.5 Xem danh sách sinh viên thực hiện 46

3.5.4.9 Thêm danh sách người dùng bằng file excel 49

3.5.4.13 Thêm mới đợt đăng ký 53

3.5.4.15 Cập nhật đợt đăng ký 54

3.5.4.16 Thêm mới phiếu đánh giá 55

3.5.4.22 Gán đề tài vào hội đồng 60

CHƯƠNG 4: THIẾT KẾ PHẦN MỀM 62

4.1 MÔ TẢ CƠ SỞ DỮ LIỆU 62

4.1.1 Thông tin các trường trong bảng 62

4.2 Hiện thực thông qua MongoDB 69

CHƯƠNG 5: TỔNG QUAN HỆ THỐNG 74

5.1 VAI TRÒ CỦA ỨNG DỤNG 74

5.1.1 Mô hình tổng quan của ứng dụng 74

5.1.2 Giới thiệu các ứng dụng 74

5.2 Ứng dụng web dành cho sinh viên 75

5.2.2.2 Luồng đề xuất đề tài 76

5.2.2.3 Luồng ghi danh đề tài 78

5.2.2.4 Luồng huỷ ghi danh đề tài 80

5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….) 81

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 83

5.3 Ứng dụng web dành giảng viên 84

5.3.2.1 Luồng quản lý đề tài 85

5.3.2.2 Luồng chỉnh sửa đề tài 87

5.3.2.3 Luồng gửi đề tài lên giáo vụ 89

5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận 90

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài

5.4 Ứng dụng web dành giáo vụ 95

5.4.2 Mô tả luồng hoạt động 96

5.4.2.3 Luồng cập thông tin học kì 98

5.4.2.4 Luồng thêm đợt đăng kí khoá luận trong học kì 100

5.4.2.5 Luồng chỉnh sửa đợt đăng kí 101

5.4.2.6 Luồng thêm phiếu đánh giá: 102

5.4.2.7 Luồng thêm tiêu chí vào phiếu đánh giá: 104

5.4.2.8 Luồng cập nhật tiêu chí đánh giá : 106

5.4.2.9 Luồng xoá phiếu đánh giá 107

5.4.2.10 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 108

5.4.2.13 Luồng cập nhật thông tin người dùng 111

5.4.2.14 Luồng thêm hội đồng vào hệ thống 112

5.4.2.15 Luồng xoá hội đồng khỏi hệ thống 114

5.4.2.16 Luồng xác nhận đề tài thực hiện 115

5.4.2.17 Luồng phân chia hội đồng phản biện cho các đề tài 117

5.4.2.18 Luồng phân công giảng viên phản biện 119

CHƯƠNG 6: KIỂM THỬ HỆ THỐNG 121

6.3 CHIẾN LƯỢC KIỂM THỬ ÁP DỤNG 121

6.4 CÁC PHƯƠNG PHÁP KIỂM THỬ 121

7.2.1 Các đường link source code 126

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

Hình 2.1.Sơ đồ hoạt động MERN Stack 5

Hình 2.3 One-way data binding 11

Hình 3.1 Lược đồ Use case Sinh viên 21

Hình 3.2 Lược đồ Use case Giảng viên 23

Hình 3.3 Lược đồ Use case Giáo vụ 25

Hình 4.1 Lượt đồ ERD của hệ thống 68

Hình 4.2 Bảng Topics trên MongoDB 69

Hình 4.3 Bảng Users trên MongoDB 70

Hình 4.4 Bảng UserNotifications trên MongoDB 70

Hình 4.5 Bảng TopicCategories trên MongoDB 71

Hình 4.6 Bảng Semesters trên MongoDB 71

Hình 4.7 Bảng ScoreBoards trên MongoDB 71

Hình 4.8 Bảng RubricEvaluations trên MongoDB 72

Hình 4.9 Bảng Rubrics trên MongoDB 72

Hình 4.10 Bảng RegistrationPeriods trên MongoDB 72

Hình 4.11 Bảng Majors trên MongoDB 73

Hình 4.12 Bảng GroupStudents trên MongoDB 73

Hình 4.13 Bảng Faculties trên MongoDB 73

Hình 4.14 Bảng Assemblies trên MongoDB 73

Hình 5.1 Giao diện đăng nhập 76

Hình 5.2 Sơ đồ luồng đăng nhập 76

Hình 5.4 Giao diện Form mẫu đề xuất đề tài 77

Hình 5.5 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 78

Hình 5.6 Giao diện danh sách đề tài đang mở trong đợt đăng kí 78

Hình 5.7 Giao diện thông tin chi tiết của đề tài 79

Hình 5.8 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 80

Hình 5.9 Giao diện hủy ghi danh đề tài đã đăng kí 80

Hình 5.10 Lược đồ mô tả trình tự huỷ đề tài của sinh viên 81

Hình 5.11 Giao diện cập nhật thông tin bổ sung cho đề tài 82Hình 5.12 Lược đồ mô tả trình tự cập nhật bổ sung thông tin 82Hình 5.13 Giao diện xem thông tin chi tiết đề tài đã đăng ký thực hiện 83Hình 5.14 Lược đồ mô tả trình tự xem chi tiết đề tài đã đăng ký 84Hình 5.15 Giao diện danh sách các đề tài giảng viên quản lí 85Hình 5.16 Giao diện thêm mới đề tài của giảng viên 86Hình 5.17 Lược đồ mô tả trình tự tạo đề tài của giảng viên 87Hình 5.18 Giao diện chi tiết đề tài của giảng viên 87Hình 5.19 Giao diện thêm chỉnh sửa đề tài của giảng viên 88Hình 5.20 Lược đồ mô tả trình tự chỉnh sửa đề tài của giảng viên 89Hình 5.21 Giao diện thêm chi tiết đề tài của giảng viên 89Hình 5.22 Lược đồ mô tả trình tự gửi đề tài của giảng viên lên giáo vụ 90Hình 5.23 Giao diện thêm chi tiết đề tài của giảng viên 91Hình 5.24 Lược đồ mô tả trình chọn nhóm làm đề tài 92Hình 5.25 Giao diện danh sách các đề tài mà giảng viên hướng dẫn 93Hình 5.26 Giao diện chi tiết đề tài hướng dẫn của giảng viên 94Hình 5.27 Giao diện phiếu chấm điểm của giảng viên hướng dẫn 95Hình 5.28 Lược đồ mô tả trình tự chấm điểm sinh viên 95Hình 5.29 Giao diện danh sách các học kì đang có trong hệ thống 96Hình 5.30 Giao diện thêm học kì của giáo vụ 97Hình 5.31 Lược đồ mô tả trình tự thêm học kì vào hệ thống 97Hình 5.32 Giao diện xóa học kỳ 98Hình 5.33 Lược đồ mô tả trình tự xóa học kì khỏi hệ thống 98Hình 5.34 Giao diện cập nhật học kỳ 99Hình 5.35 Lược đồ mô tả trình tự cập nhật học kì trên hệ thống 99Hình 5.36 Giao diện mở đợt đăng ký 100Hình 5.37 Lược đồ mô tả trình tự mở đợt đăng ký 101Hình 5.38 Giao diện chỉnh sửa đợt đăng ký 101Hình 5.39 Lược đồ mô tả trình tự chỉnh sửa đợt đăng ký 102Hình 5.40 Giao diện thêm phiếu đánh giá 103

Hình 5.41 Lược đồ mô tả trình tự thêm phiếu đánh giá 104Hình 5.42 Giao diện tạo số lượng tiêu chí 104Hình 5.43 Giao diện tạo tiêu chí dựa trên số lượng đã nhập 105Hình 5.44 Lược đồ mô tả trình tự tạo tiêu chí 105Hình 5.45 Giao diện cập nhật tiêu chí 106Hình 5.46 Lược đồ mô tả trình tự cập nhật tiêu chí 106Hình 5.47 Giao diện xóa phiếu đánh giá 107Hình 5.48 Lược đồ mô tả trình tự xóa phiếu đánh giá 107Hình 5.49 Giao diện áp dụng phiếu đánh giá cho đợt đăng ký 108Hình 5.50 Giao diện thêm mới người dùng 109Hình 5.51 Giao diện thêm người dùng bằng file excel 109Hình 5.52 Lược đồ mô tả trình tự thêm người dùng vào hệ thống 110Hình 5.53 Giao diện xóa người dùng 110Hình 5.54 Lược đồ mô tả trình tự xóa người dùng 111Hình 5.55 Giao diện cập nhật thông tin người dùng 111Hình 5.56 Lược đồ mô tả trình tự Cập nhật thông tin người dùng 112Hình 5.57 Giao diện tạo hội đồng 112Hình 5.58 Giao diện tạo hội đồng 113Hình 5.59 Lược đồ mô tả trình tự tạo hội đồng 113Hình 5.60 Giao diện xóa hội đồng 114Hình 5.61 Lược đồ mô tả trình tự Xóa hội đồng 115Hình 5.62 Giao diện danh sách đề tài chờ xác nhận 115Hình 5.63 Giao diện xác nhận đề tài thực hiện 116Hình 5.64 Lược đồ mô tả trình tự xác nhận đề tài thực hiện 116Hình 5.65 Giao diện phân chia hội đồng 117Hình 5.66 Giao diện phân công hội đồng cho các đề tài 118Hình 5.67 Lược đồ mô tả trình tự gán đề tài vào hội đồng 118Hình 5.68 Giao diện phân công giảng viên phản biện 119Hình 5.69 Giao diện chọn giảng viên phản biện 120Hình 5.70 Lược đồ mô tả trình tự phân công giảng viên phản biện 120

Hình 7.1 Nền tảng Cloud Cluster 126Hình 7.2 Quá trình deploy Back-end 127Hình 7.3 Test API Server 128

Bảng 3.1.Yêu cầu chức năng nghiệp vụ Giáo vụ 16Bảng 3.2.Yêu cầu chức năng nghiệp vụ Giảng viên 18Bảng 3.3.Yêu cầu chức năng nghiệp vụ Sinh viên 19Bảng 3.4 Yêu cầu phi chức năng 19Bảng 3.5 Mô tả Use case Sinh viên 20Bảng 3.6 Mô tả UseCase Giảng viên 21Bảng 3.7 Mô tả Use case Giáo vụ 23Bảng 3.8 Use case Đăng nhập 26Bảng 3.9 Use case Xem thông tin cá nhân 27Bảng 3.10 Use case Cập nhật thông tin cá nhân 27Bảng 3.11 Use case Xem danh sách đề tài được phép đăng ký 28Bảng 3.12 Use case Ghi danh vào đề tài 29Bảng 3.13 Use case Hủy đề tài 30Bảng 3.14 Use case Đề xuất đề tài 31Bảng 3.15 Use case Xem chi tiết đề tài 31Bảng 3.16 Use case Cập nhật thông tin cho đề tài 33Bảng 3.17 Use case Thêm đề tài 34Bảng 3.18 Use case Sửa đề tài 34Bảng 3.19 Use case Xóa đề tài 35Bảng 3.20 Use case Gửi đề tài lên Giáo vụ 36Bảng 3.21 Use case Xóa đề tài (Quản lý đề tài) 37Bảng 3.22 Use case Yêu cầu cập nhật bảng điểm 37Bảng 3.23 Use case Chọn nhóm thực hiện đề tài 38Bảng 3.24 Use case Chấm điểm đề tài hướng dẫn 39Bảng 3.25 Use case Chấm điểm đề tài phản biện 40Bảng 3.26 Use case Chấm điểm đề tài hội đồng 40Bảng 3.27 Use case Xem thông tin nhóm 42Bảng 3.28 Use case Xem lịch sử đề tài 42Bảng 3.29 Use case Xem thông tin chi tiết đề tài 43

Bảng 3.30 Use case Xác nhận đề tài thực hiện 44Bảng 3.31 Use case Phân công GVPB 44Bảng 3.32 Use case Tải xuống danh sách đề tài 45Bảng 3.33 Use case Xem danh sách sinh viên thực hiện 46Bảng 3.34 Use case Xem điểm chi tiết 47Bảng 3.35 Use case Xóa người dùng 48Bảng 3.36 Use case Thêm mới người dùng 48Bảng 3.37 Use case Thêm danh sách người dùng bằng file excel 49Bảng 3.38 Use case Thêm mới học kỳ 50Bảng 3.39 Use case Xóa học kỳ 51Bảng 3.40 Use case Cập nhật học kỳ 52Bảng 3.41 Use case Thêm mới đợt đăng ký 53Bảng 3.42 Use case Xóa đợt đăng ký 53Bảng 3.43 Use case Cập nhật đợt đăng ký 54Bảng 3.44 Use case Thêm mới phiếu đánh giá 55Bảng 3.45 Use case Xóa phiếu đánh giá 56Bảng 3.46 Use case Thêm mới tiêu chí 57Bảng 3.47 Use case Cập nhật tiêu chí 58Bảng 3.48 Use case Thêm mới hội đồng 58Bảng 3.49 Use case Xóa hội đồng 59Bảng 3.50 Use case Gán đề tài vào hội đồng 60Bảng 4.1.Thông tin các trường trong bảng Users 62Bảng 4.2.Thông tin các trường trong bảng Topics 63Bảng 4.3 Thông tin các trường trong bảng UserNotidications 64Bảng 4.4 Thông tin các trường trong bảng TopicCategory 64Bảng 4.5 Thông tin các trường trong bảng Semesters 65Bảng 4.6 Thông tin các trường trong bảng ScoreBoards 65Bảng 4.7 Thông tin các trường trong bảng RubricEvaluations 65Bảng 4.8 Thông tin các trường trong bảng Rubrics 66Bảng 4.9 Thông tin các trường trong bảng RegistrationPeriods 66

Bảng 4.10 Thông tin các trường trong bảng Majors 67Bảng 4.11 Thông tin các trường trong bảng GroupStudent 67Bảng 4.12 Thông tin các trường trong bảng Faculties 67Bảng 4.13 Thông tin các trường trong bảng Assemblies 68Bảng 5.1 Bảng chức vụ Giảng viên 92Bảng 6.1 Kế hoạch kiểm thử 122

1 Các vấn đề nghiên cứu

- Tìm hiểu thị trường, phân tích đối thủ để rút ra kinh nghiệm cho dự án

- Tìm hiểu các công nghệ để thực thi:

• Sử dụng NestJS để tạo và cung cấp API cho hệ thống

• Sử dụng ReactJS để tạo giao diện và thực hiện chức năng cho hệ thống

- Tìm hiểu cách tối ưu hệ thống, tốc độ tải dữ liệu thông qua việc cập nhật các version mới

2 Các vấn đề phát sinh

- Đảm bảo tính bảo mật của website

- Lưu trữ lại dữ liệu để có thể sử dụng cho mục đích sau này

- Cung cấp giải pháp nhanh chóng và thuận tiện cho người dùng

3 Các phương pháp giải quyết vấn đề

- Sử dụng JSON Web Token để đảm bảo yêu cầu bảo mật

- Xây dựng hệ thống với khả năng lưu trữ lại dữ liệu

- Xây dựng các chức năng rõ ràng để người dùng sử dụng

- Người dùng truy cập vào hệ thống được chia làm 3 quyền, đảm bảo yêu cầu bảo mật và toàn vẹn dữ liệu đối với từng loại người dùng

- Giao diện thân thiện với các chức năng dễ sử dụng với người dùng

- Cung cấp các chức năng cơ bản so với nhu cầu thực tế

- Tối ưu hiệu năng để tăng trải nghiệm cho người dùng

PHẦN 1: MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN 1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong bối cảnh sự phát triển mạnh mẽ của nền công nghiệp CNTT, việc xây dựng một website để quản lý đề tài không chỉ giúp tối ưu hóa quy trình quản lý đề tài mà còn mang lại nhiều lợi ích lớn cho cả sinh viên và giảng viên

Một trong những ưu điểm lớn nhất của việc triển khai một hệ thống quản lý đề tài trực tuyến là khả năng tiếp cận thông tin mọi nơi, mọi lúc Sinh viên có thể dễ dàng tra cứu và cập nhật thông tin về đề tài của mình, tiếp cận tài liệu liên quan và theo dõi tiến độ công việc một cách thuận lợi Đồng thời, giảng viên cũng có thể quản lý và đánh giá đề tài của sinh viên một cách hiệu quả hơn, giảm thiểu thời gian và công sức cho việc theo dõi và báo cáo

Ngoài ra, hệ thống quản lý đề tài còn giúp tăng cường tính minh bạch và công bằng trong quá trình đánh giá Việc có một cơ sở dữ liệu trực tuyến giúp đảm bảo rằng tất cả các thông tin liên quan đều được lưu trữ một cách an toàn và minh bạch, từ quá trình giao việc, tiến độ thực hiện đến kết quả đánh giá Điều này tạo ra một môi trường công bằng cho sinh viên, nâng cao chất lượng của quá trình học tập và nghiên cứu

Cuối cùng, việc triển khai website quản lý đề tài cũng góp phần nâng cao uy tín và tiếng tăm của Khoa CNTT Khả năng áp dụng công nghệ vào quá trình quản lý và giáo dục không chỉ thể hiện sự tiến bộ mà còn làm tăng giá trị thương hiệu của khoa, thu hút sự quan tâm từ cả sinh viên và doanh nghiệp Điều này đồng nghĩa với việc tạo ra một môi trường học tập chất lượng và làm tăng cơ hội nghề nghiệp cho sinh viên Khoa CNTT trong tương lai

Từ đó, nhóm em quyết định thực hiện đề tài Xây dựng website Quản lý Đề tài Khóa luận tốt nghiệp của Khoa CNTT

- Sinh viên: Là người sử dụng hệ thống với mục đích đăng kí đề tài mới hoặc đề tài có sẵn, quản lý đề tài đang thực hiện, nộp các báo cáo, thông tin cần thiết

NỘI DUNG

2.1.1 Khái niệm về MERN Stack

MERN được viết tắt cho MongoDB, Express, React, Node, và bốn từ khóa công nghệ đó tạo nên Stack.

- ExpressJS/ NestJS: Node.js website framework.

- ReactJS: A client-side javascript framwork.

MERN Stack được dùng để xây dựng React Universal App

2.1.2 Các thành phần trong MERN Stack

MERN đại điện cho MongoDB (M), ExpressJS (E) hoặc NestJS (N), React (R) và NodeJS(N).

- React được biết đến như React.js hoặc ReactJS, là một thư viện javascript mã nguồn mở dành cho front-end để xây dựng giao diện người dùng dựa trên các thành phần

UI Nó được duy trì và phát triển bởi Meta (Facebook trước đây, cộng đồng các nhà phát triển và các công ty React có thể được dùng như một cơ sở trong sự phát triển của single- page, mobile, hoặc ứng dụng server-rendered với framework như Next.js

- MongoDB là một cơ sở dữ liệu có dạng NoSQL Đặc điểm của nó là không có ràng buộc quan hệ, phân tán, mã nguồn mở, có khả năng lưu trữ, xử lý một lượng rất nhỏ cho tới lượng dữ liệu cực lớn Trong mô hình MERN stack, MongoDB đóng vai trò là cơ sở dữ liệu cho website và có khả năng kết nối dễ dàng với NodeJS và ExpressJS.

- NodeJS là một môi trường cho phép chạy JavaScript ở phía server mà không cần trình duyệt Nó có nhiệm vụ tiếp nhận những Request và gửi trả những Response nếu có, cụ thể trong mô hình MERN stack thì những Request này sẽ đến từ React ở phía client hay browser của người dùng NodeJS cũng có nhiệm vụ xử lý những tính toán logic ở phía server, xử lý vấn đề bảo mật như xác thực, phân quyền… hay khả năng thao tác với các tập tin và giao tiếp với cơ sở dữ liệu MongoDB.

CƠ SỞ LÝ THUYẾT

KIẾN TRÚC HỆ THỐNG

2.1.1 Khái niệm về MERN Stack

2.1.2 Các thành phần trong MERN Stack

2.1.3 Cách MERN Stack hoạt động

2.1.4 Lợi thế của MERN Stack

CÔNG NGHỆ BACK-END

CÔNG NGHỆ FRONT-END

2.3.2 Tại sao lại chọn ReactJS?

CƠ SỞ DỮ LIỆU MONGODB

JSON WEB TOKEN

2.6.1 JWT – Định nghĩa và ứng dụng trong bảo mật Client-Server 2.6.2 Cấu trúc của JWT

Chương 3: Khảo sát hiện trạng và mô hình hóa yêu cầu

3.1.1 Đặt vấn đề và Mục tiêu khảo sát

3.2.1.1 Yêu cầu chức năng nghiệp vụ 3.2.1.2 Yêu cầu chức năng hệ thống 3.2.2 Yêu cầu phi chức năng

3.4.1 Lược đồ Use case Sinh viên

3.4.2 Lược đồ Use case Giảng viên

3.4.3 Lược đồ Use case Giáo vụ

3.5.1.1 Đăng nhập 3.5.1.2 Xem thông tin cá nhân 3.5.1.3 Cập nhật thông tin cá nhân 3.5.2 Sinh viên

3.5.2.1 Xem danh sách đề tài được đăng ký 3.5.2.2 Ghi danh vào đề tài

3.5.2.3 Hủy đề tài 3.5.2.4 Đề xuất đề tài 3.5.2.5 Xem chi tiết đề tài 3.5.2.6 Cập nhật thông tin cho đề tài 3.5.3 Giảng viên

3.5.3.1 Thêm đề tài 3.5.3.2 Sửa đề tài 3.5.3.3 Xóa đề tài 3.5.3.4 Gửi đề tài lên giáo vụ 3.5.3.5 Xóa đề tài (Quản lý đề tài) 3.5.3.6 Yêu cầu cập nhật bảng điểm 3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài 3.5.3.8 Chấm điểm đề tài hướng dẫn

3.5.3.9 Chấm điểm đề tài phản biện 3.5.3.10 Hội đồng chấm điểm đề tài 3.5.3.11 Xem thông tin nhóm 3.5.3.12 Xem lịch sử đề tài 3.5.4 Giáo vụ

3.5.4.1 Xem chi tiết đề tài 3.5.4.2 Xác nhận đề tài thực hiện

3.5.4.3 Phân công GVPB 3.5.4.4 Tải xuống danh sách đề tài 3.5.4.5 Xem danh sách sinh viên thực hiện 3.5.4.6 Xem điểm chi tiết

3.5.4.7 Xóa người dùng 3.5.4.8 Thêm mới người dùng 3.5.4.9 Thêm danh sách người dùng bằng file excel 3.5.4.10 Thêm mới học kỳ

3.5.4.11 Xóa học kỳ 3.5.4.12 Cập nhật học kỳ 3.5.4.13 Thêm mới đợt đăng ký 3.5.4.14 Xóa đợt đăng ký 3.5.4.15 Cập nhật đợt đăng ký 3.5.4.16 Thêm mới phiếu đánh giá 3.5.4.17 Xóa phiếu đánh giá 3.5.4.18 Thêm mới tiêu chí 3.5.4.19 Cập nhật tiêu chí 3.5.4.20 Thêm mới hội đồng 3.5.4.21 Xóa hội đồng 3.5.4.22 Gán đề tài vào hội đồng Chương 4: Thiết kế phần mềm

4.1 Mô tả cơ sở dữ liệu

4.1.1 Thông tin các trường trong bảng

4.2 Hiện thực thông qua MongoDB

Chương 5: Tổng quan hệ thống

5.1 Vai trò của ứng dụng

5.1.1 Mô hình tổng quan của ứng dụng

5.1.2 Giới thiệu các ứng dụng

5.2 Ứng dụng web dành cho sinh viên

5.2.2.1 Luồng đăng nhập 5.2.2.2 Luồng đề xuất đề tài 5.2.2.3 Luồng ghi danh đề tài 5.2.2.4 Luồng huỷ ghi danh đề tài 5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….)

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 5.3 Ứng dụng web dành giảng viên

5.3.2.1 Luồng quản lý đề tài 5.3.2.2 Luồng chỉnh sửa đề tài 5.3.2.3 Luồng gửi đề tài lên giáo vụ 5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài 5.3.2.6 Luồng cập thông tin học kì 5.3.2.7 Luồng thêm đợt đăng kí khoá luận trong học kì 5.3.2.8 Luồng chỉnh sửa đợt đăng kí

5.3.2.9 Luồng thêm phiếu đánh giá:

5.3.2.10 Luồng thêm tiêu chí vào phiếu đánh giá 5.3.2.11 Luồng cập nhật tiêu chí đánh giá 5.3.2.12 Luồng xoá phiếu đánh giá

5.3.2.13 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 5.3.2.14 Luồng thêm người dùng

5.3.2.15 Luồng xoá người dùng 5.3.2.16 Luồng cập nhật thông tin người dùng 5.3.2.17 Luồng thêm hội đồng vào hệ thống 5.3.2.18 Luồng xoá hội đồng khỏi hệ thống 5.3.2.19 Luồng xác nhận đề tài thực hiện 5.3.2.20 Luồng phân chia hội đồng phản biện cho các đề tài 5.3.2.21 Luồng phân công giảng viên phản biện

Chương 6: Kiểm thử hệ thống

6.3 Chiến lược kiểm thử áp dụng

6.4 Các phương pháp kiểm thử

7.2.1 Các đường link source code

7.2.2 Deploy hệ thống 7.2.2.1 Back-end 7.3 Đánh giá hệ thống

7.3.1 Ưu điểm 7.3.2 Nhược điểm 7.3.3 Hướng phát triển

4 Danh mục tài liệu tham khảo

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

Phân tích dự án Xây dựng cơ sở dữ liệu

Khảo sát đề tài và phân tích xây dựng hệ thống

2 10/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

3 11/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

Kiểm thử dự án Triển khai dự án Viết báo cáo

Viết và chỉnh sửa mã nguồn Viết testcase

Tp Hồ Chí Minh, ngày tháng năm 2023

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(ký và ghi rõ họ tên)

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

1.5 BẢNG PHÂN CÔNG CÔNG VIỆC 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1.1 Khái niệm về MERN Stack 4

2.1.2 Các thành phần trong MERN Stack 4

2.1.3 Cách MERN Stack hoạt động 5

2.1.4 Lợi thế của MERN Stack 6

2.3.2 Tại sao lại chọn ReactJS? 9

2.4 CƠ SỞ DỮ LIỆU MONGODB 11

2.6.1 JWT – Định nghĩa và ứng dụng trong bảo mật Client-Server 13

CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 15

3.1.1 Đặt vấn đề và Mục tiêu khảo sát 15

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

3.2.1.2 Yêu cầu chức năng hệ thống 19

3.2.2 Yêu cầu phi chức năng 19

3.4.1 Lược đồ Use case Sinh viên 20

3.4.2 Lược đồ Use case Giảng viên 21

3.4.3 Lược đồ Use case Giáo vụ 23

3.5.1.2 Xem thông tin cá nhân 27

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

3.5.2.1 Xem danh sách đề tài được đăng ký 28

3.5.2.2 Ghi danh vào đề tài 29

3.5.2.5 Xem chi tiết đề tài 31

3.5.2.6 Cập nhật thông tin cho đề tài 33

3.5.3.4 Gửi đề tài lên giáo vụ 36

3.5.3.5 Xóa đề tài (Quản lý đề tài) 37

3.5.3.6 Yêu cầu cập nhật bảng điểm 37

3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài 38

3.5.3.8 Chấm điểm đề tài hướng dẫn 39

3.5.3.9 Chấm điểm đề tài phản biện 40

3.5.3.10 Hội đồng chấm điểm đề tài 40

3.5.3.12 Xem lịch sử đề tài 42

3.5.4.1 Xem chi tiết đề tài 43

3.5.4.2 Xác nhận đề tài thực hiện 44

3.5.4.4 Tải xuống danh sách đề tài 45

3.5.4.5 Xem danh sách sinh viên thực hiện 46

3.5.4.9 Thêm danh sách người dùng bằng file excel 49

3.5.4.13 Thêm mới đợt đăng ký 53

3.5.4.15 Cập nhật đợt đăng ký 54

3.5.4.16 Thêm mới phiếu đánh giá 55

3.5.4.22 Gán đề tài vào hội đồng 60

CHƯƠNG 4: THIẾT KẾ PHẦN MỀM 62

4.1 MÔ TẢ CƠ SỞ DỮ LIỆU 62

4.1.1 Thông tin các trường trong bảng 62

4.2 Hiện thực thông qua MongoDB 69

CHƯƠNG 5: TỔNG QUAN HỆ THỐNG 74

5.1 VAI TRÒ CỦA ỨNG DỤNG 74

5.1.1 Mô hình tổng quan của ứng dụng 74

5.1.2 Giới thiệu các ứng dụng 74

5.2 Ứng dụng web dành cho sinh viên 75

5.2.2.2 Luồng đề xuất đề tài 76

5.2.2.3 Luồng ghi danh đề tài 78

5.2.2.4 Luồng huỷ ghi danh đề tài 80

5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….) 81

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 83

5.3 Ứng dụng web dành giảng viên 84

5.3.2.1 Luồng quản lý đề tài 85

5.3.2.2 Luồng chỉnh sửa đề tài 87

5.3.2.3 Luồng gửi đề tài lên giáo vụ 89

5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận 90

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài

5.4 Ứng dụng web dành giáo vụ 95

5.4.2 Mô tả luồng hoạt động 96

5.4.2.3 Luồng cập thông tin học kì 98

5.4.2.4 Luồng thêm đợt đăng kí khoá luận trong học kì 100

5.4.2.5 Luồng chỉnh sửa đợt đăng kí 101

5.4.2.6 Luồng thêm phiếu đánh giá: 102

5.4.2.7 Luồng thêm tiêu chí vào phiếu đánh giá: 104

5.4.2.8 Luồng cập nhật tiêu chí đánh giá : 106

5.4.2.9 Luồng xoá phiếu đánh giá 107

5.4.2.10 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 108

5.4.2.13 Luồng cập nhật thông tin người dùng 111

5.4.2.14 Luồng thêm hội đồng vào hệ thống 112

5.4.2.15 Luồng xoá hội đồng khỏi hệ thống 114

5.4.2.16 Luồng xác nhận đề tài thực hiện 115

5.4.2.17 Luồng phân chia hội đồng phản biện cho các đề tài 117

5.4.2.18 Luồng phân công giảng viên phản biện 119

CHƯƠNG 6: KIỂM THỬ HỆ THỐNG 121

6.3 CHIẾN LƯỢC KIỂM THỬ ÁP DỤNG 121

6.4 CÁC PHƯƠNG PHÁP KIỂM THỬ 121

7.2.1 Các đường link source code 126

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

Hình 2.1.Sơ đồ hoạt động MERN Stack 5

Hình 2.3 One-way data binding 11

Hình 3.1 Lược đồ Use case Sinh viên 21

Hình 3.2 Lược đồ Use case Giảng viên 23

Hình 3.3 Lược đồ Use case Giáo vụ 25

Hình 4.1 Lượt đồ ERD của hệ thống 68

Hình 4.2 Bảng Topics trên MongoDB 69

Hình 4.3 Bảng Users trên MongoDB 70

Hình 4.4 Bảng UserNotifications trên MongoDB 70

Hình 4.5 Bảng TopicCategories trên MongoDB 71

Hình 4.6 Bảng Semesters trên MongoDB 71

Hình 4.7 Bảng ScoreBoards trên MongoDB 71

Hình 4.8 Bảng RubricEvaluations trên MongoDB 72

Hình 4.9 Bảng Rubrics trên MongoDB 72

Hình 4.10 Bảng RegistrationPeriods trên MongoDB 72

Hình 4.11 Bảng Majors trên MongoDB 73

Hình 4.12 Bảng GroupStudents trên MongoDB 73

Hình 4.13 Bảng Faculties trên MongoDB 73

Hình 4.14 Bảng Assemblies trên MongoDB 73

Hình 5.1 Giao diện đăng nhập 76

Hình 5.2 Sơ đồ luồng đăng nhập 76

Hình 5.4 Giao diện Form mẫu đề xuất đề tài 77

Hình 5.5 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 78

Hình 5.6 Giao diện danh sách đề tài đang mở trong đợt đăng kí 78

Hình 5.7 Giao diện thông tin chi tiết của đề tài 79

Hình 5.8 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 80

Hình 5.9 Giao diện hủy ghi danh đề tài đã đăng kí 80

Hình 5.10 Lược đồ mô tả trình tự huỷ đề tài của sinh viên 81

Hình 5.11 Giao diện cập nhật thông tin bổ sung cho đề tài 82Hình 5.12 Lược đồ mô tả trình tự cập nhật bổ sung thông tin 82Hình 5.13 Giao diện xem thông tin chi tiết đề tài đã đăng ký thực hiện 83Hình 5.14 Lược đồ mô tả trình tự xem chi tiết đề tài đã đăng ký 84Hình 5.15 Giao diện danh sách các đề tài giảng viên quản lí 85Hình 5.16 Giao diện thêm mới đề tài của giảng viên 86Hình 5.17 Lược đồ mô tả trình tự tạo đề tài của giảng viên 87Hình 5.18 Giao diện chi tiết đề tài của giảng viên 87Hình 5.19 Giao diện thêm chỉnh sửa đề tài của giảng viên 88Hình 5.20 Lược đồ mô tả trình tự chỉnh sửa đề tài của giảng viên 89Hình 5.21 Giao diện thêm chi tiết đề tài của giảng viên 89Hình 5.22 Lược đồ mô tả trình tự gửi đề tài của giảng viên lên giáo vụ 90Hình 5.23 Giao diện thêm chi tiết đề tài của giảng viên 91Hình 5.24 Lược đồ mô tả trình chọn nhóm làm đề tài 92Hình 5.25 Giao diện danh sách các đề tài mà giảng viên hướng dẫn 93Hình 5.26 Giao diện chi tiết đề tài hướng dẫn của giảng viên 94Hình 5.27 Giao diện phiếu chấm điểm của giảng viên hướng dẫn 95Hình 5.28 Lược đồ mô tả trình tự chấm điểm sinh viên 95Hình 5.29 Giao diện danh sách các học kì đang có trong hệ thống 96Hình 5.30 Giao diện thêm học kì của giáo vụ 97Hình 5.31 Lược đồ mô tả trình tự thêm học kì vào hệ thống 97Hình 5.32 Giao diện xóa học kỳ 98Hình 5.33 Lược đồ mô tả trình tự xóa học kì khỏi hệ thống 98Hình 5.34 Giao diện cập nhật học kỳ 99Hình 5.35 Lược đồ mô tả trình tự cập nhật học kì trên hệ thống 99Hình 5.36 Giao diện mở đợt đăng ký 100Hình 5.37 Lược đồ mô tả trình tự mở đợt đăng ký 101Hình 5.38 Giao diện chỉnh sửa đợt đăng ký 101Hình 5.39 Lược đồ mô tả trình tự chỉnh sửa đợt đăng ký 102Hình 5.40 Giao diện thêm phiếu đánh giá 103

Hình 5.41 Lược đồ mô tả trình tự thêm phiếu đánh giá 104Hình 5.42 Giao diện tạo số lượng tiêu chí 104Hình 5.43 Giao diện tạo tiêu chí dựa trên số lượng đã nhập 105Hình 5.44 Lược đồ mô tả trình tự tạo tiêu chí 105Hình 5.45 Giao diện cập nhật tiêu chí 106Hình 5.46 Lược đồ mô tả trình tự cập nhật tiêu chí 106Hình 5.47 Giao diện xóa phiếu đánh giá 107Hình 5.48 Lược đồ mô tả trình tự xóa phiếu đánh giá 107Hình 5.49 Giao diện áp dụng phiếu đánh giá cho đợt đăng ký 108Hình 5.50 Giao diện thêm mới người dùng 109Hình 5.51 Giao diện thêm người dùng bằng file excel 109Hình 5.52 Lược đồ mô tả trình tự thêm người dùng vào hệ thống 110Hình 5.53 Giao diện xóa người dùng 110Hình 5.54 Lược đồ mô tả trình tự xóa người dùng 111Hình 5.55 Giao diện cập nhật thông tin người dùng 111Hình 5.56 Lược đồ mô tả trình tự Cập nhật thông tin người dùng 112Hình 5.57 Giao diện tạo hội đồng 112Hình 5.58 Giao diện tạo hội đồng 113Hình 5.59 Lược đồ mô tả trình tự tạo hội đồng 113Hình 5.60 Giao diện xóa hội đồng 114Hình 5.61 Lược đồ mô tả trình tự Xóa hội đồng 115Hình 5.62 Giao diện danh sách đề tài chờ xác nhận 115Hình 5.63 Giao diện xác nhận đề tài thực hiện 116Hình 5.64 Lược đồ mô tả trình tự xác nhận đề tài thực hiện 116Hình 5.65 Giao diện phân chia hội đồng 117Hình 5.66 Giao diện phân công hội đồng cho các đề tài 118Hình 5.67 Lược đồ mô tả trình tự gán đề tài vào hội đồng 118Hình 5.68 Giao diện phân công giảng viên phản biện 119Hình 5.69 Giao diện chọn giảng viên phản biện 120Hình 5.70 Lược đồ mô tả trình tự phân công giảng viên phản biện 120

Hình 7.1 Nền tảng Cloud Cluster 126Hình 7.2 Quá trình deploy Back-end 127Hình 7.3 Test API Server 128

Bảng 3.1.Yêu cầu chức năng nghiệp vụ Giáo vụ 16Bảng 3.2.Yêu cầu chức năng nghiệp vụ Giảng viên 18Bảng 3.3.Yêu cầu chức năng nghiệp vụ Sinh viên 19Bảng 3.4 Yêu cầu phi chức năng 19Bảng 3.5 Mô tả Use case Sinh viên 20Bảng 3.6 Mô tả UseCase Giảng viên 21Bảng 3.7 Mô tả Use case Giáo vụ 23Bảng 3.8 Use case Đăng nhập 26Bảng 3.9 Use case Xem thông tin cá nhân 27Bảng 3.10 Use case Cập nhật thông tin cá nhân 27Bảng 3.11 Use case Xem danh sách đề tài được phép đăng ký 28Bảng 3.12 Use case Ghi danh vào đề tài 29Bảng 3.13 Use case Hủy đề tài 30Bảng 3.14 Use case Đề xuất đề tài 31Bảng 3.15 Use case Xem chi tiết đề tài 31Bảng 3.16 Use case Cập nhật thông tin cho đề tài 33Bảng 3.17 Use case Thêm đề tài 34Bảng 3.18 Use case Sửa đề tài 34Bảng 3.19 Use case Xóa đề tài 35Bảng 3.20 Use case Gửi đề tài lên Giáo vụ 36Bảng 3.21 Use case Xóa đề tài (Quản lý đề tài) 37Bảng 3.22 Use case Yêu cầu cập nhật bảng điểm 37Bảng 3.23 Use case Chọn nhóm thực hiện đề tài 38Bảng 3.24 Use case Chấm điểm đề tài hướng dẫn 39Bảng 3.25 Use case Chấm điểm đề tài phản biện 40Bảng 3.26 Use case Chấm điểm đề tài hội đồng 40Bảng 3.27 Use case Xem thông tin nhóm 42Bảng 3.28 Use case Xem lịch sử đề tài 42Bảng 3.29 Use case Xem thông tin chi tiết đề tài 43

Bảng 3.30 Use case Xác nhận đề tài thực hiện 44Bảng 3.31 Use case Phân công GVPB 44Bảng 3.32 Use case Tải xuống danh sách đề tài 45Bảng 3.33 Use case Xem danh sách sinh viên thực hiện 46Bảng 3.34 Use case Xem điểm chi tiết 47Bảng 3.35 Use case Xóa người dùng 48Bảng 3.36 Use case Thêm mới người dùng 48Bảng 3.37 Use case Thêm danh sách người dùng bằng file excel 49Bảng 3.38 Use case Thêm mới học kỳ 50Bảng 3.39 Use case Xóa học kỳ 51Bảng 3.40 Use case Cập nhật học kỳ 52Bảng 3.41 Use case Thêm mới đợt đăng ký 53Bảng 3.42 Use case Xóa đợt đăng ký 53Bảng 3.43 Use case Cập nhật đợt đăng ký 54Bảng 3.44 Use case Thêm mới phiếu đánh giá 55Bảng 3.45 Use case Xóa phiếu đánh giá 56Bảng 3.46 Use case Thêm mới tiêu chí 57Bảng 3.47 Use case Cập nhật tiêu chí 58Bảng 3.48 Use case Thêm mới hội đồng 58Bảng 3.49 Use case Xóa hội đồng 59Bảng 3.50 Use case Gán đề tài vào hội đồng 60Bảng 4.1.Thông tin các trường trong bảng Users 62Bảng 4.2.Thông tin các trường trong bảng Topics 63Bảng 4.3 Thông tin các trường trong bảng UserNotidications 64Bảng 4.4 Thông tin các trường trong bảng TopicCategory 64Bảng 4.5 Thông tin các trường trong bảng Semesters 65Bảng 4.6 Thông tin các trường trong bảng ScoreBoards 65Bảng 4.7 Thông tin các trường trong bảng RubricEvaluations 65Bảng 4.8 Thông tin các trường trong bảng Rubrics 66Bảng 4.9 Thông tin các trường trong bảng RegistrationPeriods 66

Bảng 4.10 Thông tin các trường trong bảng Majors 67Bảng 4.11 Thông tin các trường trong bảng GroupStudent 67Bảng 4.12 Thông tin các trường trong bảng Faculties 67Bảng 4.13 Thông tin các trường trong bảng Assemblies 68Bảng 5.1 Bảng chức vụ Giảng viên 92Bảng 6.1 Kế hoạch kiểm thử 122

1 Các vấn đề nghiên cứu

- Tìm hiểu thị trường, phân tích đối thủ để rút ra kinh nghiệm cho dự án

- Tìm hiểu các công nghệ để thực thi:

• Sử dụng NestJS để tạo và cung cấp API cho hệ thống

• Sử dụng ReactJS để tạo giao diện và thực hiện chức năng cho hệ thống

- Tìm hiểu cách tối ưu hệ thống, tốc độ tải dữ liệu thông qua việc cập nhật các version mới

2 Các vấn đề phát sinh

- Đảm bảo tính bảo mật của website

- Lưu trữ lại dữ liệu để có thể sử dụng cho mục đích sau này

- Cung cấp giải pháp nhanh chóng và thuận tiện cho người dùng

3 Các phương pháp giải quyết vấn đề

- Sử dụng JSON Web Token để đảm bảo yêu cầu bảo mật

- Xây dựng hệ thống với khả năng lưu trữ lại dữ liệu

- Xây dựng các chức năng rõ ràng để người dùng sử dụng

- Người dùng truy cập vào hệ thống được chia làm 3 quyền, đảm bảo yêu cầu bảo mật và toàn vẹn dữ liệu đối với từng loại người dùng

- Giao diện thân thiện với các chức năng dễ sử dụng với người dùng

- Cung cấp các chức năng cơ bản so với nhu cầu thực tế

- Tối ưu hiệu năng để tăng trải nghiệm cho người dùng

PHẦN 1: MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN 1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong bối cảnh sự phát triển mạnh mẽ của nền công nghiệp CNTT, việc xây dựng một website để quản lý đề tài không chỉ giúp tối ưu hóa quy trình quản lý đề tài mà còn mang lại nhiều lợi ích lớn cho cả sinh viên và giảng viên

Một trong những ưu điểm lớn nhất của việc triển khai một hệ thống quản lý đề tài trực tuyến là khả năng tiếp cận thông tin mọi nơi, mọi lúc Sinh viên có thể dễ dàng tra cứu và cập nhật thông tin về đề tài của mình, tiếp cận tài liệu liên quan và theo dõi tiến độ công việc một cách thuận lợi Đồng thời, giảng viên cũng có thể quản lý và đánh giá đề tài của sinh viên một cách hiệu quả hơn, giảm thiểu thời gian và công sức cho việc theo dõi và báo cáo

Ngoài ra, hệ thống quản lý đề tài còn giúp tăng cường tính minh bạch và công bằng trong quá trình đánh giá Việc có một cơ sở dữ liệu trực tuyến giúp đảm bảo rằng tất cả các thông tin liên quan đều được lưu trữ một cách an toàn và minh bạch, từ quá trình giao việc, tiến độ thực hiện đến kết quả đánh giá Điều này tạo ra một môi trường công bằng cho sinh viên, nâng cao chất lượng của quá trình học tập và nghiên cứu

Cuối cùng, việc triển khai website quản lý đề tài cũng góp phần nâng cao uy tín và tiếng tăm của Khoa CNTT Khả năng áp dụng công nghệ vào quá trình quản lý và giáo dục không chỉ thể hiện sự tiến bộ mà còn làm tăng giá trị thương hiệu của khoa, thu hút sự quan tâm từ cả sinh viên và doanh nghiệp Điều này đồng nghĩa với việc tạo ra một môi trường học tập chất lượng và làm tăng cơ hội nghề nghiệp cho sinh viên Khoa CNTT trong tương lai

Từ đó, nhóm em quyết định thực hiện đề tài Xây dựng website Quản lý Đề tài Khóa luận tốt nghiệp của Khoa CNTT

- Sinh viên: Là người sử dụng hệ thống với mục đích đăng kí đề tài mới hoặc đề tài có sẵn, quản lý đề tài đang thực hiện, nộp các báo cáo, thông tin cần thiết

KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU

KHẢO SÁT HIỆN TRẠNG

3.1.1 Đặt vấn đề và Mục tiêu khảo sát

XÁC ĐỊNH YÊU CẦU

3.2.1.1 Yêu cầu chức năng nghiệp vụ 3.2.1.2 Yêu cầu chức năng hệ thống 3.2.2 Yêu cầu phi chức năng

LƯỢC ĐỒ USE CASE

3.4.1 Lược đồ Use case Sinh viên

3.4.2 Lược đồ Use case Giảng viên

3.4.3 Lược đồ Use case Giáo vụ

ĐẶC TẢ USE CASE

3.5.1.1 Đăng nhập 3.5.1.2 Xem thông tin cá nhân 3.5.1.3 Cập nhật thông tin cá nhân 3.5.2 Sinh viên

3.5.2.1 Xem danh sách đề tài được đăng ký 3.5.2.2 Ghi danh vào đề tài

3.5.2.3 Hủy đề tài 3.5.2.4 Đề xuất đề tài 3.5.2.5 Xem chi tiết đề tài 3.5.2.6 Cập nhật thông tin cho đề tài 3.5.3 Giảng viên

3.5.3.1 Thêm đề tài 3.5.3.2 Sửa đề tài 3.5.3.3 Xóa đề tài 3.5.3.4 Gửi đề tài lên giáo vụ 3.5.3.5 Xóa đề tài (Quản lý đề tài) 3.5.3.6 Yêu cầu cập nhật bảng điểm 3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài 3.5.3.8 Chấm điểm đề tài hướng dẫn

3.5.3.9 Chấm điểm đề tài phản biện 3.5.3.10 Hội đồng chấm điểm đề tài 3.5.3.11 Xem thông tin nhóm 3.5.3.12 Xem lịch sử đề tài 3.5.4 Giáo vụ

3.5.4.1 Xem chi tiết đề tài 3.5.4.2 Xác nhận đề tài thực hiện

3.5.4.3 Phân công GVPB 3.5.4.4 Tải xuống danh sách đề tài 3.5.4.5 Xem danh sách sinh viên thực hiện 3.5.4.6 Xem điểm chi tiết

3.5.4.7 Xóa người dùng 3.5.4.8 Thêm mới người dùng 3.5.4.9 Thêm danh sách người dùng bằng file excel 3.5.4.10 Thêm mới học kỳ

3.5.4.11 Xóa học kỳ 3.5.4.12 Cập nhật học kỳ 3.5.4.13 Thêm mới đợt đăng ký 3.5.4.14 Xóa đợt đăng ký 3.5.4.15 Cập nhật đợt đăng ký 3.5.4.16 Thêm mới phiếu đánh giá 3.5.4.17 Xóa phiếu đánh giá 3.5.4.18 Thêm mới tiêu chí 3.5.4.19 Cập nhật tiêu chí 3.5.4.20 Thêm mới hội đồng 3.5.4.21 Xóa hội đồng 3.5.4.22 Gán đề tài vào hội đồng Chương 4: Thiết kế phần mềm

4.1 Mô tả cơ sở dữ liệu

4.1.1 Thông tin các trường trong bảng

4.2 Hiện thực thông qua MongoDB

Chương 5: Tổng quan hệ thống

5.1 Vai trò của ứng dụng

5.1.1 Mô hình tổng quan của ứng dụng

5.1.2 Giới thiệu các ứng dụng

5.2 Ứng dụng web dành cho sinh viên

5.2.2.1 Luồng đăng nhập 5.2.2.2 Luồng đề xuất đề tài 5.2.2.3 Luồng ghi danh đề tài 5.2.2.4 Luồng huỷ ghi danh đề tài 5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….)

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 5.3 Ứng dụng web dành giảng viên

5.3.2.1 Luồng quản lý đề tài 5.3.2.2 Luồng chỉnh sửa đề tài 5.3.2.3 Luồng gửi đề tài lên giáo vụ 5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài 5.3.2.6 Luồng cập thông tin học kì 5.3.2.7 Luồng thêm đợt đăng kí khoá luận trong học kì 5.3.2.8 Luồng chỉnh sửa đợt đăng kí

5.3.2.9 Luồng thêm phiếu đánh giá:

5.3.2.10 Luồng thêm tiêu chí vào phiếu đánh giá 5.3.2.11 Luồng cập nhật tiêu chí đánh giá 5.3.2.12 Luồng xoá phiếu đánh giá

5.3.2.13 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 5.3.2.14 Luồng thêm người dùng

5.3.2.15 Luồng xoá người dùng 5.3.2.16 Luồng cập nhật thông tin người dùng 5.3.2.17 Luồng thêm hội đồng vào hệ thống 5.3.2.18 Luồng xoá hội đồng khỏi hệ thống 5.3.2.19 Luồng xác nhận đề tài thực hiện 5.3.2.20 Luồng phân chia hội đồng phản biện cho các đề tài 5.3.2.21 Luồng phân công giảng viên phản biện

Chương 6: Kiểm thử hệ thống

6.3 Chiến lược kiểm thử áp dụng

6.4 Các phương pháp kiểm thử

7.2.1 Các đường link source code

7.2.2 Deploy hệ thống 7.2.2.1 Back-end 7.3 Đánh giá hệ thống

7.3.1 Ưu điểm 7.3.2 Nhược điểm 7.3.3 Hướng phát triển

4 Danh mục tài liệu tham khảo

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

Phân tích dự án Xây dựng cơ sở dữ liệu

Khảo sát đề tài và phân tích xây dựng hệ thống

2 10/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

3 11/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

Kiểm thử dự án Triển khai dự án Viết báo cáo

Viết và chỉnh sửa mã nguồn Viết testcase

Tp Hồ Chí Minh, ngày tháng năm 2023

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(ký và ghi rõ họ tên)

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

1.5 BẢNG PHÂN CÔNG CÔNG VIỆC 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1.1 Khái niệm về MERN Stack 4

2.1.2 Các thành phần trong MERN Stack 4

2.1.3 Cách MERN Stack hoạt động 5

2.1.4 Lợi thế của MERN Stack 6

2.3.2 Tại sao lại chọn ReactJS? 9

2.4 CƠ SỞ DỮ LIỆU MONGODB 11

2.6.1 JWT – Định nghĩa và ứng dụng trong bảo mật Client-Server 13

CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 15

3.1.1 Đặt vấn đề và Mục tiêu khảo sát 15

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

3.2.1.2 Yêu cầu chức năng hệ thống 19

3.2.2 Yêu cầu phi chức năng 19

3.4.1 Lược đồ Use case Sinh viên 20

3.4.2 Lược đồ Use case Giảng viên 21

3.4.3 Lược đồ Use case Giáo vụ 23

3.5.1.2 Xem thông tin cá nhân 27

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

3.5.2.1 Xem danh sách đề tài được đăng ký 28

3.5.2.2 Ghi danh vào đề tài 29

3.5.2.5 Xem chi tiết đề tài 31

3.5.2.6 Cập nhật thông tin cho đề tài 33

3.5.3.4 Gửi đề tài lên giáo vụ 36

3.5.3.5 Xóa đề tài (Quản lý đề tài) 37

3.5.3.6 Yêu cầu cập nhật bảng điểm 37

3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài 38

3.5.3.8 Chấm điểm đề tài hướng dẫn 39

3.5.3.9 Chấm điểm đề tài phản biện 40

3.5.3.10 Hội đồng chấm điểm đề tài 40

3.5.3.12 Xem lịch sử đề tài 42

3.5.4.1 Xem chi tiết đề tài 43

3.5.4.2 Xác nhận đề tài thực hiện 44

3.5.4.4 Tải xuống danh sách đề tài 45

3.5.4.5 Xem danh sách sinh viên thực hiện 46

3.5.4.9 Thêm danh sách người dùng bằng file excel 49

3.5.4.13 Thêm mới đợt đăng ký 53

3.5.4.15 Cập nhật đợt đăng ký 54

3.5.4.16 Thêm mới phiếu đánh giá 55

3.5.4.22 Gán đề tài vào hội đồng 60

CHƯƠNG 4: THIẾT KẾ PHẦN MỀM 62

4.1 MÔ TẢ CƠ SỞ DỮ LIỆU 62

4.1.1 Thông tin các trường trong bảng 62

4.2 Hiện thực thông qua MongoDB 69

CHƯƠNG 5: TỔNG QUAN HỆ THỐNG 74

5.1 VAI TRÒ CỦA ỨNG DỤNG 74

5.1.1 Mô hình tổng quan của ứng dụng 74

5.1.2 Giới thiệu các ứng dụng 74

5.2 Ứng dụng web dành cho sinh viên 75

5.2.2.2 Luồng đề xuất đề tài 76

5.2.2.3 Luồng ghi danh đề tài 78

5.2.2.4 Luồng huỷ ghi danh đề tài 80

5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….) 81

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 83

5.3 Ứng dụng web dành giảng viên 84

5.3.2.1 Luồng quản lý đề tài 85

5.3.2.2 Luồng chỉnh sửa đề tài 87

5.3.2.3 Luồng gửi đề tài lên giáo vụ 89

5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận 90

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài

5.4 Ứng dụng web dành giáo vụ 95

5.4.2 Mô tả luồng hoạt động 96

5.4.2.3 Luồng cập thông tin học kì 98

5.4.2.4 Luồng thêm đợt đăng kí khoá luận trong học kì 100

5.4.2.5 Luồng chỉnh sửa đợt đăng kí 101

5.4.2.6 Luồng thêm phiếu đánh giá: 102

5.4.2.7 Luồng thêm tiêu chí vào phiếu đánh giá: 104

5.4.2.8 Luồng cập nhật tiêu chí đánh giá : 106

5.4.2.9 Luồng xoá phiếu đánh giá 107

5.4.2.10 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 108

5.4.2.13 Luồng cập nhật thông tin người dùng 111

5.4.2.14 Luồng thêm hội đồng vào hệ thống 112

5.4.2.15 Luồng xoá hội đồng khỏi hệ thống 114

5.4.2.16 Luồng xác nhận đề tài thực hiện 115

5.4.2.17 Luồng phân chia hội đồng phản biện cho các đề tài 117

5.4.2.18 Luồng phân công giảng viên phản biện 119

CHƯƠNG 6: KIỂM THỬ HỆ THỐNG 121

6.3 CHIẾN LƯỢC KIỂM THỬ ÁP DỤNG 121

6.4 CÁC PHƯƠNG PHÁP KIỂM THỬ 121

7.2.1 Các đường link source code 126

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

Hình 2.1.Sơ đồ hoạt động MERN Stack 5

Hình 2.3 One-way data binding 11

Hình 3.1 Lược đồ Use case Sinh viên 21

Hình 3.2 Lược đồ Use case Giảng viên 23

Hình 3.3 Lược đồ Use case Giáo vụ 25

Hình 4.1 Lượt đồ ERD của hệ thống 68

Hình 4.2 Bảng Topics trên MongoDB 69

Hình 4.3 Bảng Users trên MongoDB 70

Hình 4.4 Bảng UserNotifications trên MongoDB 70

Hình 4.5 Bảng TopicCategories trên MongoDB 71

Hình 4.6 Bảng Semesters trên MongoDB 71

Hình 4.7 Bảng ScoreBoards trên MongoDB 71

Hình 4.8 Bảng RubricEvaluations trên MongoDB 72

Hình 4.9 Bảng Rubrics trên MongoDB 72

Hình 4.10 Bảng RegistrationPeriods trên MongoDB 72

Hình 4.11 Bảng Majors trên MongoDB 73

Hình 4.12 Bảng GroupStudents trên MongoDB 73

Hình 4.13 Bảng Faculties trên MongoDB 73

Hình 4.14 Bảng Assemblies trên MongoDB 73

Hình 5.1 Giao diện đăng nhập 76

Hình 5.2 Sơ đồ luồng đăng nhập 76

Hình 5.4 Giao diện Form mẫu đề xuất đề tài 77

Hình 5.5 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 78

Hình 5.6 Giao diện danh sách đề tài đang mở trong đợt đăng kí 78

Hình 5.7 Giao diện thông tin chi tiết của đề tài 79

Hình 5.8 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 80

Hình 5.9 Giao diện hủy ghi danh đề tài đã đăng kí 80

Hình 5.10 Lược đồ mô tả trình tự huỷ đề tài của sinh viên 81

Hình 5.11 Giao diện cập nhật thông tin bổ sung cho đề tài 82Hình 5.12 Lược đồ mô tả trình tự cập nhật bổ sung thông tin 82Hình 5.13 Giao diện xem thông tin chi tiết đề tài đã đăng ký thực hiện 83Hình 5.14 Lược đồ mô tả trình tự xem chi tiết đề tài đã đăng ký 84Hình 5.15 Giao diện danh sách các đề tài giảng viên quản lí 85Hình 5.16 Giao diện thêm mới đề tài của giảng viên 86Hình 5.17 Lược đồ mô tả trình tự tạo đề tài của giảng viên 87Hình 5.18 Giao diện chi tiết đề tài của giảng viên 87Hình 5.19 Giao diện thêm chỉnh sửa đề tài của giảng viên 88Hình 5.20 Lược đồ mô tả trình tự chỉnh sửa đề tài của giảng viên 89Hình 5.21 Giao diện thêm chi tiết đề tài của giảng viên 89Hình 5.22 Lược đồ mô tả trình tự gửi đề tài của giảng viên lên giáo vụ 90Hình 5.23 Giao diện thêm chi tiết đề tài của giảng viên 91Hình 5.24 Lược đồ mô tả trình chọn nhóm làm đề tài 92Hình 5.25 Giao diện danh sách các đề tài mà giảng viên hướng dẫn 93Hình 5.26 Giao diện chi tiết đề tài hướng dẫn của giảng viên 94Hình 5.27 Giao diện phiếu chấm điểm của giảng viên hướng dẫn 95Hình 5.28 Lược đồ mô tả trình tự chấm điểm sinh viên 95Hình 5.29 Giao diện danh sách các học kì đang có trong hệ thống 96Hình 5.30 Giao diện thêm học kì của giáo vụ 97Hình 5.31 Lược đồ mô tả trình tự thêm học kì vào hệ thống 97Hình 5.32 Giao diện xóa học kỳ 98Hình 5.33 Lược đồ mô tả trình tự xóa học kì khỏi hệ thống 98Hình 5.34 Giao diện cập nhật học kỳ 99Hình 5.35 Lược đồ mô tả trình tự cập nhật học kì trên hệ thống 99Hình 5.36 Giao diện mở đợt đăng ký 100Hình 5.37 Lược đồ mô tả trình tự mở đợt đăng ký 101Hình 5.38 Giao diện chỉnh sửa đợt đăng ký 101Hình 5.39 Lược đồ mô tả trình tự chỉnh sửa đợt đăng ký 102Hình 5.40 Giao diện thêm phiếu đánh giá 103

Hình 5.41 Lược đồ mô tả trình tự thêm phiếu đánh giá 104Hình 5.42 Giao diện tạo số lượng tiêu chí 104Hình 5.43 Giao diện tạo tiêu chí dựa trên số lượng đã nhập 105Hình 5.44 Lược đồ mô tả trình tự tạo tiêu chí 105Hình 5.45 Giao diện cập nhật tiêu chí 106Hình 5.46 Lược đồ mô tả trình tự cập nhật tiêu chí 106Hình 5.47 Giao diện xóa phiếu đánh giá 107Hình 5.48 Lược đồ mô tả trình tự xóa phiếu đánh giá 107Hình 5.49 Giao diện áp dụng phiếu đánh giá cho đợt đăng ký 108Hình 5.50 Giao diện thêm mới người dùng 109Hình 5.51 Giao diện thêm người dùng bằng file excel 109Hình 5.52 Lược đồ mô tả trình tự thêm người dùng vào hệ thống 110Hình 5.53 Giao diện xóa người dùng 110Hình 5.54 Lược đồ mô tả trình tự xóa người dùng 111Hình 5.55 Giao diện cập nhật thông tin người dùng 111Hình 5.56 Lược đồ mô tả trình tự Cập nhật thông tin người dùng 112Hình 5.57 Giao diện tạo hội đồng 112Hình 5.58 Giao diện tạo hội đồng 113Hình 5.59 Lược đồ mô tả trình tự tạo hội đồng 113Hình 5.60 Giao diện xóa hội đồng 114Hình 5.61 Lược đồ mô tả trình tự Xóa hội đồng 115Hình 5.62 Giao diện danh sách đề tài chờ xác nhận 115Hình 5.63 Giao diện xác nhận đề tài thực hiện 116Hình 5.64 Lược đồ mô tả trình tự xác nhận đề tài thực hiện 116Hình 5.65 Giao diện phân chia hội đồng 117Hình 5.66 Giao diện phân công hội đồng cho các đề tài 118Hình 5.67 Lược đồ mô tả trình tự gán đề tài vào hội đồng 118Hình 5.68 Giao diện phân công giảng viên phản biện 119Hình 5.69 Giao diện chọn giảng viên phản biện 120Hình 5.70 Lược đồ mô tả trình tự phân công giảng viên phản biện 120

Hình 7.1 Nền tảng Cloud Cluster 126Hình 7.2 Quá trình deploy Back-end 127Hình 7.3 Test API Server 128

Bảng 3.1.Yêu cầu chức năng nghiệp vụ Giáo vụ 16Bảng 3.2.Yêu cầu chức năng nghiệp vụ Giảng viên 18Bảng 3.3.Yêu cầu chức năng nghiệp vụ Sinh viên 19Bảng 3.4 Yêu cầu phi chức năng 19Bảng 3.5 Mô tả Use case Sinh viên 20Bảng 3.6 Mô tả UseCase Giảng viên 21Bảng 3.7 Mô tả Use case Giáo vụ 23Bảng 3.8 Use case Đăng nhập 26Bảng 3.9 Use case Xem thông tin cá nhân 27Bảng 3.10 Use case Cập nhật thông tin cá nhân 27Bảng 3.11 Use case Xem danh sách đề tài được phép đăng ký 28Bảng 3.12 Use case Ghi danh vào đề tài 29Bảng 3.13 Use case Hủy đề tài 30Bảng 3.14 Use case Đề xuất đề tài 31Bảng 3.15 Use case Xem chi tiết đề tài 31Bảng 3.16 Use case Cập nhật thông tin cho đề tài 33Bảng 3.17 Use case Thêm đề tài 34Bảng 3.18 Use case Sửa đề tài 34Bảng 3.19 Use case Xóa đề tài 35Bảng 3.20 Use case Gửi đề tài lên Giáo vụ 36Bảng 3.21 Use case Xóa đề tài (Quản lý đề tài) 37Bảng 3.22 Use case Yêu cầu cập nhật bảng điểm 37Bảng 3.23 Use case Chọn nhóm thực hiện đề tài 38Bảng 3.24 Use case Chấm điểm đề tài hướng dẫn 39Bảng 3.25 Use case Chấm điểm đề tài phản biện 40Bảng 3.26 Use case Chấm điểm đề tài hội đồng 40Bảng 3.27 Use case Xem thông tin nhóm 42Bảng 3.28 Use case Xem lịch sử đề tài 42Bảng 3.29 Use case Xem thông tin chi tiết đề tài 43

Bảng 3.30 Use case Xác nhận đề tài thực hiện 44Bảng 3.31 Use case Phân công GVPB 44Bảng 3.32 Use case Tải xuống danh sách đề tài 45Bảng 3.33 Use case Xem danh sách sinh viên thực hiện 46Bảng 3.34 Use case Xem điểm chi tiết 47Bảng 3.35 Use case Xóa người dùng 48Bảng 3.36 Use case Thêm mới người dùng 48Bảng 3.37 Use case Thêm danh sách người dùng bằng file excel 49Bảng 3.38 Use case Thêm mới học kỳ 50Bảng 3.39 Use case Xóa học kỳ 51Bảng 3.40 Use case Cập nhật học kỳ 52Bảng 3.41 Use case Thêm mới đợt đăng ký 53Bảng 3.42 Use case Xóa đợt đăng ký 53Bảng 3.43 Use case Cập nhật đợt đăng ký 54Bảng 3.44 Use case Thêm mới phiếu đánh giá 55Bảng 3.45 Use case Xóa phiếu đánh giá 56Bảng 3.46 Use case Thêm mới tiêu chí 57Bảng 3.47 Use case Cập nhật tiêu chí 58Bảng 3.48 Use case Thêm mới hội đồng 58Bảng 3.49 Use case Xóa hội đồng 59Bảng 3.50 Use case Gán đề tài vào hội đồng 60Bảng 4.1.Thông tin các trường trong bảng Users 62Bảng 4.2.Thông tin các trường trong bảng Topics 63Bảng 4.3 Thông tin các trường trong bảng UserNotidications 64Bảng 4.4 Thông tin các trường trong bảng TopicCategory 64Bảng 4.5 Thông tin các trường trong bảng Semesters 65Bảng 4.6 Thông tin các trường trong bảng ScoreBoards 65Bảng 4.7 Thông tin các trường trong bảng RubricEvaluations 65Bảng 4.8 Thông tin các trường trong bảng Rubrics 66Bảng 4.9 Thông tin các trường trong bảng RegistrationPeriods 66

Bảng 4.10 Thông tin các trường trong bảng Majors 67Bảng 4.11 Thông tin các trường trong bảng GroupStudent 67Bảng 4.12 Thông tin các trường trong bảng Faculties 67Bảng 4.13 Thông tin các trường trong bảng Assemblies 68Bảng 5.1 Bảng chức vụ Giảng viên 92Bảng 6.1 Kế hoạch kiểm thử 122

1 Các vấn đề nghiên cứu

- Tìm hiểu thị trường, phân tích đối thủ để rút ra kinh nghiệm cho dự án

- Tìm hiểu các công nghệ để thực thi:

• Sử dụng NestJS để tạo và cung cấp API cho hệ thống

• Sử dụng ReactJS để tạo giao diện và thực hiện chức năng cho hệ thống

- Tìm hiểu cách tối ưu hệ thống, tốc độ tải dữ liệu thông qua việc cập nhật các version mới

2 Các vấn đề phát sinh

- Đảm bảo tính bảo mật của website

- Lưu trữ lại dữ liệu để có thể sử dụng cho mục đích sau này

- Cung cấp giải pháp nhanh chóng và thuận tiện cho người dùng

3 Các phương pháp giải quyết vấn đề

- Sử dụng JSON Web Token để đảm bảo yêu cầu bảo mật

- Xây dựng hệ thống với khả năng lưu trữ lại dữ liệu

- Xây dựng các chức năng rõ ràng để người dùng sử dụng

- Người dùng truy cập vào hệ thống được chia làm 3 quyền, đảm bảo yêu cầu bảo mật và toàn vẹn dữ liệu đối với từng loại người dùng

- Giao diện thân thiện với các chức năng dễ sử dụng với người dùng

- Cung cấp các chức năng cơ bản so với nhu cầu thực tế

- Tối ưu hiệu năng để tăng trải nghiệm cho người dùng

PHẦN 1: MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN 1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong bối cảnh sự phát triển mạnh mẽ của nền công nghiệp CNTT, việc xây dựng một website để quản lý đề tài không chỉ giúp tối ưu hóa quy trình quản lý đề tài mà còn mang lại nhiều lợi ích lớn cho cả sinh viên và giảng viên

Một trong những ưu điểm lớn nhất của việc triển khai một hệ thống quản lý đề tài trực tuyến là khả năng tiếp cận thông tin mọi nơi, mọi lúc Sinh viên có thể dễ dàng tra cứu và cập nhật thông tin về đề tài của mình, tiếp cận tài liệu liên quan và theo dõi tiến độ công việc một cách thuận lợi Đồng thời, giảng viên cũng có thể quản lý và đánh giá đề tài của sinh viên một cách hiệu quả hơn, giảm thiểu thời gian và công sức cho việc theo dõi và báo cáo

Ngoài ra, hệ thống quản lý đề tài còn giúp tăng cường tính minh bạch và công bằng trong quá trình đánh giá Việc có một cơ sở dữ liệu trực tuyến giúp đảm bảo rằng tất cả các thông tin liên quan đều được lưu trữ một cách an toàn và minh bạch, từ quá trình giao việc, tiến độ thực hiện đến kết quả đánh giá Điều này tạo ra một môi trường công bằng cho sinh viên, nâng cao chất lượng của quá trình học tập và nghiên cứu

Cuối cùng, việc triển khai website quản lý đề tài cũng góp phần nâng cao uy tín và tiếng tăm của Khoa CNTT Khả năng áp dụng công nghệ vào quá trình quản lý và giáo dục không chỉ thể hiện sự tiến bộ mà còn làm tăng giá trị thương hiệu của khoa, thu hút sự quan tâm từ cả sinh viên và doanh nghiệp Điều này đồng nghĩa với việc tạo ra một môi trường học tập chất lượng và làm tăng cơ hội nghề nghiệp cho sinh viên Khoa CNTT trong tương lai

Từ đó, nhóm em quyết định thực hiện đề tài Xây dựng website Quản lý Đề tài Khóa luận tốt nghiệp của Khoa CNTT

- Sinh viên: Là người sử dụng hệ thống với mục đích đăng kí đề tài mới hoặc đề tài có sẵn, quản lý đề tài đang thực hiện, nộp các báo cáo, thông tin cần thiết

THIẾT KẾ PHẦN MỀM

MÔ TẢ CƠ SỞ DỮ LIỆU

4.1.1 Thông tin các trường trong bảng

Hiện thực thông qua MongoDB

Chương 5: Tổng quan hệ thống

5.1 Vai trò của ứng dụng

5.1.1 Mô hình tổng quan của ứng dụng

5.1.2 Giới thiệu các ứng dụng

5.2 Ứng dụng web dành cho sinh viên

5.2.2.1 Luồng đăng nhập 5.2.2.2 Luồng đề xuất đề tài 5.2.2.3 Luồng ghi danh đề tài 5.2.2.4 Luồng huỷ ghi danh đề tài 5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….)

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 5.3 Ứng dụng web dành giảng viên

5.3.2.1 Luồng quản lý đề tài 5.3.2.2 Luồng chỉnh sửa đề tài 5.3.2.3 Luồng gửi đề tài lên giáo vụ 5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài 5.3.2.6 Luồng cập thông tin học kì 5.3.2.7 Luồng thêm đợt đăng kí khoá luận trong học kì 5.3.2.8 Luồng chỉnh sửa đợt đăng kí

5.3.2.9 Luồng thêm phiếu đánh giá:

5.3.2.10 Luồng thêm tiêu chí vào phiếu đánh giá 5.3.2.11 Luồng cập nhật tiêu chí đánh giá 5.3.2.12 Luồng xoá phiếu đánh giá

5.3.2.13 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 5.3.2.14 Luồng thêm người dùng

5.3.2.15 Luồng xoá người dùng 5.3.2.16 Luồng cập nhật thông tin người dùng 5.3.2.17 Luồng thêm hội đồng vào hệ thống 5.3.2.18 Luồng xoá hội đồng khỏi hệ thống 5.3.2.19 Luồng xác nhận đề tài thực hiện 5.3.2.20 Luồng phân chia hội đồng phản biện cho các đề tài 5.3.2.21 Luồng phân công giảng viên phản biện

Chương 6: Kiểm thử hệ thống

6.3 Chiến lược kiểm thử áp dụng

6.4 Các phương pháp kiểm thử

7.2.1 Các đường link source code

7.2.2 Deploy hệ thống 7.2.2.1 Back-end 7.3 Đánh giá hệ thống

7.3.1 Ưu điểm 7.3.2 Nhược điểm 7.3.3 Hướng phát triển

4 Danh mục tài liệu tham khảo

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

Phân tích dự án Xây dựng cơ sở dữ liệu

Khảo sát đề tài và phân tích xây dựng hệ thống

2 10/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

3 11/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

Kiểm thử dự án Triển khai dự án Viết báo cáo

Viết và chỉnh sửa mã nguồn Viết testcase

Tp Hồ Chí Minh, ngày tháng năm 2023

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(ký và ghi rõ họ tên)

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

1.5 BẢNG PHÂN CÔNG CÔNG VIỆC 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1.1 Khái niệm về MERN Stack 4

2.1.2 Các thành phần trong MERN Stack 4

2.1.3 Cách MERN Stack hoạt động 5

2.1.4 Lợi thế của MERN Stack 6

2.3.2 Tại sao lại chọn ReactJS? 9

2.4 CƠ SỞ DỮ LIỆU MONGODB 11

2.6.1 JWT – Định nghĩa và ứng dụng trong bảo mật Client-Server 13

CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 15

3.1.1 Đặt vấn đề và Mục tiêu khảo sát 15

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

3.2.1.2 Yêu cầu chức năng hệ thống 19

3.2.2 Yêu cầu phi chức năng 19

3.4.1 Lược đồ Use case Sinh viên 20

3.4.2 Lược đồ Use case Giảng viên 21

3.4.3 Lược đồ Use case Giáo vụ 23

3.5.1.2 Xem thông tin cá nhân 27

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

3.5.2.1 Xem danh sách đề tài được đăng ký 28

3.5.2.2 Ghi danh vào đề tài 29

3.5.2.5 Xem chi tiết đề tài 31

3.5.2.6 Cập nhật thông tin cho đề tài 33

3.5.3.4 Gửi đề tài lên giáo vụ 36

3.5.3.5 Xóa đề tài (Quản lý đề tài) 37

3.5.3.6 Yêu cầu cập nhật bảng điểm 37

3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài 38

3.5.3.8 Chấm điểm đề tài hướng dẫn 39

3.5.3.9 Chấm điểm đề tài phản biện 40

3.5.3.10 Hội đồng chấm điểm đề tài 40

3.5.3.12 Xem lịch sử đề tài 42

3.5.4.1 Xem chi tiết đề tài 43

3.5.4.2 Xác nhận đề tài thực hiện 44

3.5.4.4 Tải xuống danh sách đề tài 45

3.5.4.5 Xem danh sách sinh viên thực hiện 46

3.5.4.9 Thêm danh sách người dùng bằng file excel 49

3.5.4.13 Thêm mới đợt đăng ký 53

3.5.4.15 Cập nhật đợt đăng ký 54

3.5.4.16 Thêm mới phiếu đánh giá 55

3.5.4.22 Gán đề tài vào hội đồng 60

CHƯƠNG 4: THIẾT KẾ PHẦN MỀM 62

4.1 MÔ TẢ CƠ SỞ DỮ LIỆU 62

4.1.1 Thông tin các trường trong bảng 62

4.2 Hiện thực thông qua MongoDB 69

CHƯƠNG 5: TỔNG QUAN HỆ THỐNG 74

5.1 VAI TRÒ CỦA ỨNG DỤNG 74

5.1.1 Mô hình tổng quan của ứng dụng 74

5.1.2 Giới thiệu các ứng dụng 74

5.2 Ứng dụng web dành cho sinh viên 75

5.2.2.2 Luồng đề xuất đề tài 76

5.2.2.3 Luồng ghi danh đề tài 78

5.2.2.4 Luồng huỷ ghi danh đề tài 80

5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….) 81

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 83

5.3 Ứng dụng web dành giảng viên 84

5.3.2.1 Luồng quản lý đề tài 85

5.3.2.2 Luồng chỉnh sửa đề tài 87

5.3.2.3 Luồng gửi đề tài lên giáo vụ 89

5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận 90

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài

5.4 Ứng dụng web dành giáo vụ 95

5.4.2 Mô tả luồng hoạt động 96

5.4.2.3 Luồng cập thông tin học kì 98

5.4.2.4 Luồng thêm đợt đăng kí khoá luận trong học kì 100

5.4.2.5 Luồng chỉnh sửa đợt đăng kí 101

5.4.2.6 Luồng thêm phiếu đánh giá: 102

5.4.2.7 Luồng thêm tiêu chí vào phiếu đánh giá: 104

5.4.2.8 Luồng cập nhật tiêu chí đánh giá : 106

5.4.2.9 Luồng xoá phiếu đánh giá 107

5.4.2.10 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 108

5.4.2.13 Luồng cập nhật thông tin người dùng 111

5.4.2.14 Luồng thêm hội đồng vào hệ thống 112

5.4.2.15 Luồng xoá hội đồng khỏi hệ thống 114

5.4.2.16 Luồng xác nhận đề tài thực hiện 115

5.4.2.17 Luồng phân chia hội đồng phản biện cho các đề tài 117

5.4.2.18 Luồng phân công giảng viên phản biện 119

CHƯƠNG 6: KIỂM THỬ HỆ THỐNG 121

6.3 CHIẾN LƯỢC KIỂM THỬ ÁP DỤNG 121

6.4 CÁC PHƯƠNG PHÁP KIỂM THỬ 121

7.2.1 Các đường link source code 126

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

Hình 2.1.Sơ đồ hoạt động MERN Stack 5

Hình 2.3 One-way data binding 11

Hình 3.1 Lược đồ Use case Sinh viên 21

Hình 3.2 Lược đồ Use case Giảng viên 23

Hình 3.3 Lược đồ Use case Giáo vụ 25

Hình 4.1 Lượt đồ ERD của hệ thống 68

Hình 4.2 Bảng Topics trên MongoDB 69

Hình 4.3 Bảng Users trên MongoDB 70

Hình 4.4 Bảng UserNotifications trên MongoDB 70

Hình 4.5 Bảng TopicCategories trên MongoDB 71

Hình 4.6 Bảng Semesters trên MongoDB 71

Hình 4.7 Bảng ScoreBoards trên MongoDB 71

Hình 4.8 Bảng RubricEvaluations trên MongoDB 72

Hình 4.9 Bảng Rubrics trên MongoDB 72

Hình 4.10 Bảng RegistrationPeriods trên MongoDB 72

Hình 4.11 Bảng Majors trên MongoDB 73

Hình 4.12 Bảng GroupStudents trên MongoDB 73

Hình 4.13 Bảng Faculties trên MongoDB 73

Hình 4.14 Bảng Assemblies trên MongoDB 73

Hình 5.1 Giao diện đăng nhập 76

Hình 5.2 Sơ đồ luồng đăng nhập 76

Hình 5.4 Giao diện Form mẫu đề xuất đề tài 77

Hình 5.5 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 78

Hình 5.6 Giao diện danh sách đề tài đang mở trong đợt đăng kí 78

Hình 5.7 Giao diện thông tin chi tiết của đề tài 79

Hình 5.8 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 80

Hình 5.9 Giao diện hủy ghi danh đề tài đã đăng kí 80

Hình 5.10 Lược đồ mô tả trình tự huỷ đề tài của sinh viên 81

Hình 5.11 Giao diện cập nhật thông tin bổ sung cho đề tài 82Hình 5.12 Lược đồ mô tả trình tự cập nhật bổ sung thông tin 82Hình 5.13 Giao diện xem thông tin chi tiết đề tài đã đăng ký thực hiện 83Hình 5.14 Lược đồ mô tả trình tự xem chi tiết đề tài đã đăng ký 84Hình 5.15 Giao diện danh sách các đề tài giảng viên quản lí 85Hình 5.16 Giao diện thêm mới đề tài của giảng viên 86Hình 5.17 Lược đồ mô tả trình tự tạo đề tài của giảng viên 87Hình 5.18 Giao diện chi tiết đề tài của giảng viên 87Hình 5.19 Giao diện thêm chỉnh sửa đề tài của giảng viên 88Hình 5.20 Lược đồ mô tả trình tự chỉnh sửa đề tài của giảng viên 89Hình 5.21 Giao diện thêm chi tiết đề tài của giảng viên 89Hình 5.22 Lược đồ mô tả trình tự gửi đề tài của giảng viên lên giáo vụ 90Hình 5.23 Giao diện thêm chi tiết đề tài của giảng viên 91Hình 5.24 Lược đồ mô tả trình chọn nhóm làm đề tài 92Hình 5.25 Giao diện danh sách các đề tài mà giảng viên hướng dẫn 93Hình 5.26 Giao diện chi tiết đề tài hướng dẫn của giảng viên 94Hình 5.27 Giao diện phiếu chấm điểm của giảng viên hướng dẫn 95Hình 5.28 Lược đồ mô tả trình tự chấm điểm sinh viên 95Hình 5.29 Giao diện danh sách các học kì đang có trong hệ thống 96Hình 5.30 Giao diện thêm học kì của giáo vụ 97Hình 5.31 Lược đồ mô tả trình tự thêm học kì vào hệ thống 97Hình 5.32 Giao diện xóa học kỳ 98Hình 5.33 Lược đồ mô tả trình tự xóa học kì khỏi hệ thống 98Hình 5.34 Giao diện cập nhật học kỳ 99Hình 5.35 Lược đồ mô tả trình tự cập nhật học kì trên hệ thống 99Hình 5.36 Giao diện mở đợt đăng ký 100Hình 5.37 Lược đồ mô tả trình tự mở đợt đăng ký 101Hình 5.38 Giao diện chỉnh sửa đợt đăng ký 101Hình 5.39 Lược đồ mô tả trình tự chỉnh sửa đợt đăng ký 102Hình 5.40 Giao diện thêm phiếu đánh giá 103

Hình 5.41 Lược đồ mô tả trình tự thêm phiếu đánh giá 104Hình 5.42 Giao diện tạo số lượng tiêu chí 104Hình 5.43 Giao diện tạo tiêu chí dựa trên số lượng đã nhập 105Hình 5.44 Lược đồ mô tả trình tự tạo tiêu chí 105Hình 5.45 Giao diện cập nhật tiêu chí 106Hình 5.46 Lược đồ mô tả trình tự cập nhật tiêu chí 106Hình 5.47 Giao diện xóa phiếu đánh giá 107Hình 5.48 Lược đồ mô tả trình tự xóa phiếu đánh giá 107Hình 5.49 Giao diện áp dụng phiếu đánh giá cho đợt đăng ký 108Hình 5.50 Giao diện thêm mới người dùng 109Hình 5.51 Giao diện thêm người dùng bằng file excel 109Hình 5.52 Lược đồ mô tả trình tự thêm người dùng vào hệ thống 110Hình 5.53 Giao diện xóa người dùng 110Hình 5.54 Lược đồ mô tả trình tự xóa người dùng 111Hình 5.55 Giao diện cập nhật thông tin người dùng 111Hình 5.56 Lược đồ mô tả trình tự Cập nhật thông tin người dùng 112Hình 5.57 Giao diện tạo hội đồng 112Hình 5.58 Giao diện tạo hội đồng 113Hình 5.59 Lược đồ mô tả trình tự tạo hội đồng 113Hình 5.60 Giao diện xóa hội đồng 114Hình 5.61 Lược đồ mô tả trình tự Xóa hội đồng 115Hình 5.62 Giao diện danh sách đề tài chờ xác nhận 115Hình 5.63 Giao diện xác nhận đề tài thực hiện 116Hình 5.64 Lược đồ mô tả trình tự xác nhận đề tài thực hiện 116Hình 5.65 Giao diện phân chia hội đồng 117Hình 5.66 Giao diện phân công hội đồng cho các đề tài 118Hình 5.67 Lược đồ mô tả trình tự gán đề tài vào hội đồng 118Hình 5.68 Giao diện phân công giảng viên phản biện 119Hình 5.69 Giao diện chọn giảng viên phản biện 120Hình 5.70 Lược đồ mô tả trình tự phân công giảng viên phản biện 120

Hình 7.1 Nền tảng Cloud Cluster 126Hình 7.2 Quá trình deploy Back-end 127Hình 7.3 Test API Server 128

Bảng 3.1.Yêu cầu chức năng nghiệp vụ Giáo vụ 16Bảng 3.2.Yêu cầu chức năng nghiệp vụ Giảng viên 18Bảng 3.3.Yêu cầu chức năng nghiệp vụ Sinh viên 19Bảng 3.4 Yêu cầu phi chức năng 19Bảng 3.5 Mô tả Use case Sinh viên 20Bảng 3.6 Mô tả UseCase Giảng viên 21Bảng 3.7 Mô tả Use case Giáo vụ 23Bảng 3.8 Use case Đăng nhập 26Bảng 3.9 Use case Xem thông tin cá nhân 27Bảng 3.10 Use case Cập nhật thông tin cá nhân 27Bảng 3.11 Use case Xem danh sách đề tài được phép đăng ký 28Bảng 3.12 Use case Ghi danh vào đề tài 29Bảng 3.13 Use case Hủy đề tài 30Bảng 3.14 Use case Đề xuất đề tài 31Bảng 3.15 Use case Xem chi tiết đề tài 31Bảng 3.16 Use case Cập nhật thông tin cho đề tài 33Bảng 3.17 Use case Thêm đề tài 34Bảng 3.18 Use case Sửa đề tài 34Bảng 3.19 Use case Xóa đề tài 35Bảng 3.20 Use case Gửi đề tài lên Giáo vụ 36Bảng 3.21 Use case Xóa đề tài (Quản lý đề tài) 37Bảng 3.22 Use case Yêu cầu cập nhật bảng điểm 37Bảng 3.23 Use case Chọn nhóm thực hiện đề tài 38Bảng 3.24 Use case Chấm điểm đề tài hướng dẫn 39Bảng 3.25 Use case Chấm điểm đề tài phản biện 40Bảng 3.26 Use case Chấm điểm đề tài hội đồng 40Bảng 3.27 Use case Xem thông tin nhóm 42Bảng 3.28 Use case Xem lịch sử đề tài 42Bảng 3.29 Use case Xem thông tin chi tiết đề tài 43

Bảng 3.30 Use case Xác nhận đề tài thực hiện 44Bảng 3.31 Use case Phân công GVPB 44Bảng 3.32 Use case Tải xuống danh sách đề tài 45Bảng 3.33 Use case Xem danh sách sinh viên thực hiện 46Bảng 3.34 Use case Xem điểm chi tiết 47Bảng 3.35 Use case Xóa người dùng 48Bảng 3.36 Use case Thêm mới người dùng 48Bảng 3.37 Use case Thêm danh sách người dùng bằng file excel 49Bảng 3.38 Use case Thêm mới học kỳ 50Bảng 3.39 Use case Xóa học kỳ 51Bảng 3.40 Use case Cập nhật học kỳ 52Bảng 3.41 Use case Thêm mới đợt đăng ký 53Bảng 3.42 Use case Xóa đợt đăng ký 53Bảng 3.43 Use case Cập nhật đợt đăng ký 54Bảng 3.44 Use case Thêm mới phiếu đánh giá 55Bảng 3.45 Use case Xóa phiếu đánh giá 56Bảng 3.46 Use case Thêm mới tiêu chí 57Bảng 3.47 Use case Cập nhật tiêu chí 58Bảng 3.48 Use case Thêm mới hội đồng 58Bảng 3.49 Use case Xóa hội đồng 59Bảng 3.50 Use case Gán đề tài vào hội đồng 60Bảng 4.1.Thông tin các trường trong bảng Users 62Bảng 4.2.Thông tin các trường trong bảng Topics 63Bảng 4.3 Thông tin các trường trong bảng UserNotidications 64Bảng 4.4 Thông tin các trường trong bảng TopicCategory 64Bảng 4.5 Thông tin các trường trong bảng Semesters 65Bảng 4.6 Thông tin các trường trong bảng ScoreBoards 65Bảng 4.7 Thông tin các trường trong bảng RubricEvaluations 65Bảng 4.8 Thông tin các trường trong bảng Rubrics 66Bảng 4.9 Thông tin các trường trong bảng RegistrationPeriods 66

Bảng 4.10 Thông tin các trường trong bảng Majors 67Bảng 4.11 Thông tin các trường trong bảng GroupStudent 67Bảng 4.12 Thông tin các trường trong bảng Faculties 67Bảng 4.13 Thông tin các trường trong bảng Assemblies 68Bảng 5.1 Bảng chức vụ Giảng viên 92Bảng 6.1 Kế hoạch kiểm thử 122

1 Các vấn đề nghiên cứu

- Tìm hiểu thị trường, phân tích đối thủ để rút ra kinh nghiệm cho dự án

- Tìm hiểu các công nghệ để thực thi:

• Sử dụng NestJS để tạo và cung cấp API cho hệ thống

• Sử dụng ReactJS để tạo giao diện và thực hiện chức năng cho hệ thống

- Tìm hiểu cách tối ưu hệ thống, tốc độ tải dữ liệu thông qua việc cập nhật các version mới

2 Các vấn đề phát sinh

- Đảm bảo tính bảo mật của website

- Lưu trữ lại dữ liệu để có thể sử dụng cho mục đích sau này

- Cung cấp giải pháp nhanh chóng và thuận tiện cho người dùng

3 Các phương pháp giải quyết vấn đề

- Sử dụng JSON Web Token để đảm bảo yêu cầu bảo mật

- Xây dựng hệ thống với khả năng lưu trữ lại dữ liệu

- Xây dựng các chức năng rõ ràng để người dùng sử dụng

- Người dùng truy cập vào hệ thống được chia làm 3 quyền, đảm bảo yêu cầu bảo mật và toàn vẹn dữ liệu đối với từng loại người dùng

- Giao diện thân thiện với các chức năng dễ sử dụng với người dùng

- Cung cấp các chức năng cơ bản so với nhu cầu thực tế

- Tối ưu hiệu năng để tăng trải nghiệm cho người dùng

PHẦN 1: MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN 1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong bối cảnh sự phát triển mạnh mẽ của nền công nghiệp CNTT, việc xây dựng một website để quản lý đề tài không chỉ giúp tối ưu hóa quy trình quản lý đề tài mà còn mang lại nhiều lợi ích lớn cho cả sinh viên và giảng viên

Một trong những ưu điểm lớn nhất của việc triển khai một hệ thống quản lý đề tài trực tuyến là khả năng tiếp cận thông tin mọi nơi, mọi lúc Sinh viên có thể dễ dàng tra cứu và cập nhật thông tin về đề tài của mình, tiếp cận tài liệu liên quan và theo dõi tiến độ công việc một cách thuận lợi Đồng thời, giảng viên cũng có thể quản lý và đánh giá đề tài của sinh viên một cách hiệu quả hơn, giảm thiểu thời gian và công sức cho việc theo dõi và báo cáo

Ngoài ra, hệ thống quản lý đề tài còn giúp tăng cường tính minh bạch và công bằng trong quá trình đánh giá Việc có một cơ sở dữ liệu trực tuyến giúp đảm bảo rằng tất cả các thông tin liên quan đều được lưu trữ một cách an toàn và minh bạch, từ quá trình giao việc, tiến độ thực hiện đến kết quả đánh giá Điều này tạo ra một môi trường công bằng cho sinh viên, nâng cao chất lượng của quá trình học tập và nghiên cứu

Cuối cùng, việc triển khai website quản lý đề tài cũng góp phần nâng cao uy tín và tiếng tăm của Khoa CNTT Khả năng áp dụng công nghệ vào quá trình quản lý và giáo dục không chỉ thể hiện sự tiến bộ mà còn làm tăng giá trị thương hiệu của khoa, thu hút sự quan tâm từ cả sinh viên và doanh nghiệp Điều này đồng nghĩa với việc tạo ra một môi trường học tập chất lượng và làm tăng cơ hội nghề nghiệp cho sinh viên Khoa CNTT trong tương lai

Từ đó, nhóm em quyết định thực hiện đề tài Xây dựng website Quản lý Đề tài Khóa luận tốt nghiệp của Khoa CNTT

- Sinh viên: Là người sử dụng hệ thống với mục đích đăng kí đề tài mới hoặc đề tài có sẵn, quản lý đề tài đang thực hiện, nộp các báo cáo, thông tin cần thiết

- Giảng viên: Là người sử dụng hệ thống, với mục đích đăng kí các đề tài mới, lựa chọn nhóm sinh viên thực hiện đề tài, quản lý các đề tài mà mình đang hướng dẫn và phản biện, tham gia hội đồng bảo vệ đề tài, chấm điểm các đề tài

- Giáo vụ: Là người quản trị của hệ thống, với mục đích mở các học kì, đợt đăng kí, quản lý các phiếu chấm điểm, các hội đồng, người dùng của hệ thống, tải xuống thông tin các đề tài, bảng điểm của sinh viên

TỔNG QUAN HỆ THỐNG

VAI TRÒ CỦA ỨNG DỤNG

5.1.1 Mô hình tổng quan của ứng dụng

5.1.2 Giới thiệu các ứng dụng

Ứng dụng web dành cho sinh viên

5.2.2.1 Luồng đăng nhập 5.2.2.2 Luồng đề xuất đề tài 5.2.2.3 Luồng ghi danh đề tài 5.2.2.4 Luồng huỷ ghi danh đề tài 5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….)

Ứng dụng web dành giảng viên

5.3.2.1 Luồng quản lý đề tài 5.3.2.2 Luồng chỉnh sửa đề tài 5.3.2.3 Luồng gửi đề tài lên giáo vụ 5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài 5.3.2.6 Luồng cập thông tin học kì 5.3.2.7 Luồng thêm đợt đăng kí khoá luận trong học kì 5.3.2.8 Luồng chỉnh sửa đợt đăng kí

5.3.2.9 Luồng thêm phiếu đánh giá:

5.3.2.10 Luồng thêm tiêu chí vào phiếu đánh giá 5.3.2.11 Luồng cập nhật tiêu chí đánh giá 5.3.2.12 Luồng xoá phiếu đánh giá

5.3.2.13 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 5.3.2.14 Luồng thêm người dùng

5.3.2.15 Luồng xoá người dùng 5.3.2.16 Luồng cập nhật thông tin người dùng 5.3.2.17 Luồng thêm hội đồng vào hệ thống 5.3.2.18 Luồng xoá hội đồng khỏi hệ thống 5.3.2.19 Luồng xác nhận đề tài thực hiện 5.3.2.20 Luồng phân chia hội đồng phản biện cho các đề tài 5.3.2.21 Luồng phân công giảng viên phản biện

Chương 6: Kiểm thử hệ thống

6.3 Chiến lược kiểm thử áp dụng

6.4 Các phương pháp kiểm thử

7.2.1 Các đường link source code

7.2.2 Deploy hệ thống 7.2.2.1 Back-end 7.3 Đánh giá hệ thống

7.3.1 Ưu điểm 7.3.2 Nhược điểm 7.3.3 Hướng phát triển

4 Danh mục tài liệu tham khảo

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

Phân tích dự án Xây dựng cơ sở dữ liệu

Khảo sát đề tài và phân tích xây dựng hệ thống

2 10/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

3 11/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

Kiểm thử dự án Triển khai dự án Viết báo cáo

Viết và chỉnh sửa mã nguồn Viết testcase

Tp Hồ Chí Minh, ngày tháng năm 2023

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(ký và ghi rõ họ tên)

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

1.5 BẢNG PHÂN CÔNG CÔNG VIỆC 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1.1 Khái niệm về MERN Stack 4

2.1.2 Các thành phần trong MERN Stack 4

2.1.3 Cách MERN Stack hoạt động 5

2.1.4 Lợi thế của MERN Stack 6

2.3.2 Tại sao lại chọn ReactJS? 9

2.4 CƠ SỞ DỮ LIỆU MONGODB 11

2.6.1 JWT – Định nghĩa và ứng dụng trong bảo mật Client-Server 13

CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 15

3.1.1 Đặt vấn đề và Mục tiêu khảo sát 15

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

3.2.1.2 Yêu cầu chức năng hệ thống 19

3.2.2 Yêu cầu phi chức năng 19

3.4.1 Lược đồ Use case Sinh viên 20

3.4.2 Lược đồ Use case Giảng viên 21

3.4.3 Lược đồ Use case Giáo vụ 23

3.5.1.2 Xem thông tin cá nhân 27

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

3.5.2.1 Xem danh sách đề tài được đăng ký 28

3.5.2.2 Ghi danh vào đề tài 29

3.5.2.5 Xem chi tiết đề tài 31

3.5.2.6 Cập nhật thông tin cho đề tài 33

3.5.3.4 Gửi đề tài lên giáo vụ 36

3.5.3.5 Xóa đề tài (Quản lý đề tài) 37

3.5.3.6 Yêu cầu cập nhật bảng điểm 37

3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài 38

3.5.3.8 Chấm điểm đề tài hướng dẫn 39

3.5.3.9 Chấm điểm đề tài phản biện 40

3.5.3.10 Hội đồng chấm điểm đề tài 40

3.5.3.12 Xem lịch sử đề tài 42

3.5.4.1 Xem chi tiết đề tài 43

3.5.4.2 Xác nhận đề tài thực hiện 44

3.5.4.4 Tải xuống danh sách đề tài 45

3.5.4.5 Xem danh sách sinh viên thực hiện 46

3.5.4.9 Thêm danh sách người dùng bằng file excel 49

3.5.4.13 Thêm mới đợt đăng ký 53

3.5.4.15 Cập nhật đợt đăng ký 54

3.5.4.16 Thêm mới phiếu đánh giá 55

3.5.4.22 Gán đề tài vào hội đồng 60

CHƯƠNG 4: THIẾT KẾ PHẦN MỀM 62

4.1 MÔ TẢ CƠ SỞ DỮ LIỆU 62

4.1.1 Thông tin các trường trong bảng 62

4.2 Hiện thực thông qua MongoDB 69

CHƯƠNG 5: TỔNG QUAN HỆ THỐNG 74

5.1 VAI TRÒ CỦA ỨNG DỤNG 74

5.1.1 Mô hình tổng quan của ứng dụng 74

5.1.2 Giới thiệu các ứng dụng 74

5.2 Ứng dụng web dành cho sinh viên 75

5.2.2.2 Luồng đề xuất đề tài 76

5.2.2.3 Luồng ghi danh đề tài 78

5.2.2.4 Luồng huỷ ghi danh đề tài 80

5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….) 81

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 83

5.3 Ứng dụng web dành giảng viên 84

5.3.2.1 Luồng quản lý đề tài 85

5.3.2.2 Luồng chỉnh sửa đề tài 87

5.3.2.3 Luồng gửi đề tài lên giáo vụ 89

5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận 90

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài

5.4 Ứng dụng web dành giáo vụ 95

5.4.2 Mô tả luồng hoạt động 96

5.4.2.3 Luồng cập thông tin học kì 98

5.4.2.4 Luồng thêm đợt đăng kí khoá luận trong học kì 100

5.4.2.5 Luồng chỉnh sửa đợt đăng kí 101

5.4.2.6 Luồng thêm phiếu đánh giá: 102

5.4.2.7 Luồng thêm tiêu chí vào phiếu đánh giá: 104

5.4.2.8 Luồng cập nhật tiêu chí đánh giá : 106

5.4.2.9 Luồng xoá phiếu đánh giá 107

5.4.2.10 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 108

5.4.2.13 Luồng cập nhật thông tin người dùng 111

5.4.2.14 Luồng thêm hội đồng vào hệ thống 112

5.4.2.15 Luồng xoá hội đồng khỏi hệ thống 114

5.4.2.16 Luồng xác nhận đề tài thực hiện 115

5.4.2.17 Luồng phân chia hội đồng phản biện cho các đề tài 117

5.4.2.18 Luồng phân công giảng viên phản biện 119

CHƯƠNG 6: KIỂM THỬ HỆ THỐNG 121

6.3 CHIẾN LƯỢC KIỂM THỬ ÁP DỤNG 121

6.4 CÁC PHƯƠNG PHÁP KIỂM THỬ 121

7.2.1 Các đường link source code 126

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

Hình 2.1.Sơ đồ hoạt động MERN Stack 5

Hình 2.3 One-way data binding 11

Hình 3.1 Lược đồ Use case Sinh viên 21

Hình 3.2 Lược đồ Use case Giảng viên 23

Hình 3.3 Lược đồ Use case Giáo vụ 25

Hình 4.1 Lượt đồ ERD của hệ thống 68

Hình 4.2 Bảng Topics trên MongoDB 69

Hình 4.3 Bảng Users trên MongoDB 70

Hình 4.4 Bảng UserNotifications trên MongoDB 70

Hình 4.5 Bảng TopicCategories trên MongoDB 71

Hình 4.6 Bảng Semesters trên MongoDB 71

Hình 4.7 Bảng ScoreBoards trên MongoDB 71

Hình 4.8 Bảng RubricEvaluations trên MongoDB 72

Hình 4.9 Bảng Rubrics trên MongoDB 72

Hình 4.10 Bảng RegistrationPeriods trên MongoDB 72

Hình 4.11 Bảng Majors trên MongoDB 73

Hình 4.12 Bảng GroupStudents trên MongoDB 73

Hình 4.13 Bảng Faculties trên MongoDB 73

Hình 4.14 Bảng Assemblies trên MongoDB 73

Hình 5.1 Giao diện đăng nhập 76

Hình 5.2 Sơ đồ luồng đăng nhập 76

Hình 5.4 Giao diện Form mẫu đề xuất đề tài 77

Hình 5.5 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 78

Hình 5.6 Giao diện danh sách đề tài đang mở trong đợt đăng kí 78

Hình 5.7 Giao diện thông tin chi tiết của đề tài 79

Hình 5.8 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 80

Hình 5.9 Giao diện hủy ghi danh đề tài đã đăng kí 80

Hình 5.10 Lược đồ mô tả trình tự huỷ đề tài của sinh viên 81

Hình 5.11 Giao diện cập nhật thông tin bổ sung cho đề tài 82Hình 5.12 Lược đồ mô tả trình tự cập nhật bổ sung thông tin 82Hình 5.13 Giao diện xem thông tin chi tiết đề tài đã đăng ký thực hiện 83Hình 5.14 Lược đồ mô tả trình tự xem chi tiết đề tài đã đăng ký 84Hình 5.15 Giao diện danh sách các đề tài giảng viên quản lí 85Hình 5.16 Giao diện thêm mới đề tài của giảng viên 86Hình 5.17 Lược đồ mô tả trình tự tạo đề tài của giảng viên 87Hình 5.18 Giao diện chi tiết đề tài của giảng viên 87Hình 5.19 Giao diện thêm chỉnh sửa đề tài của giảng viên 88Hình 5.20 Lược đồ mô tả trình tự chỉnh sửa đề tài của giảng viên 89Hình 5.21 Giao diện thêm chi tiết đề tài của giảng viên 89Hình 5.22 Lược đồ mô tả trình tự gửi đề tài của giảng viên lên giáo vụ 90Hình 5.23 Giao diện thêm chi tiết đề tài của giảng viên 91Hình 5.24 Lược đồ mô tả trình chọn nhóm làm đề tài 92Hình 5.25 Giao diện danh sách các đề tài mà giảng viên hướng dẫn 93Hình 5.26 Giao diện chi tiết đề tài hướng dẫn của giảng viên 94Hình 5.27 Giao diện phiếu chấm điểm của giảng viên hướng dẫn 95Hình 5.28 Lược đồ mô tả trình tự chấm điểm sinh viên 95Hình 5.29 Giao diện danh sách các học kì đang có trong hệ thống 96Hình 5.30 Giao diện thêm học kì của giáo vụ 97Hình 5.31 Lược đồ mô tả trình tự thêm học kì vào hệ thống 97Hình 5.32 Giao diện xóa học kỳ 98Hình 5.33 Lược đồ mô tả trình tự xóa học kì khỏi hệ thống 98Hình 5.34 Giao diện cập nhật học kỳ 99Hình 5.35 Lược đồ mô tả trình tự cập nhật học kì trên hệ thống 99Hình 5.36 Giao diện mở đợt đăng ký 100Hình 5.37 Lược đồ mô tả trình tự mở đợt đăng ký 101Hình 5.38 Giao diện chỉnh sửa đợt đăng ký 101Hình 5.39 Lược đồ mô tả trình tự chỉnh sửa đợt đăng ký 102Hình 5.40 Giao diện thêm phiếu đánh giá 103

Hình 5.41 Lược đồ mô tả trình tự thêm phiếu đánh giá 104Hình 5.42 Giao diện tạo số lượng tiêu chí 104Hình 5.43 Giao diện tạo tiêu chí dựa trên số lượng đã nhập 105Hình 5.44 Lược đồ mô tả trình tự tạo tiêu chí 105Hình 5.45 Giao diện cập nhật tiêu chí 106Hình 5.46 Lược đồ mô tả trình tự cập nhật tiêu chí 106Hình 5.47 Giao diện xóa phiếu đánh giá 107Hình 5.48 Lược đồ mô tả trình tự xóa phiếu đánh giá 107Hình 5.49 Giao diện áp dụng phiếu đánh giá cho đợt đăng ký 108Hình 5.50 Giao diện thêm mới người dùng 109Hình 5.51 Giao diện thêm người dùng bằng file excel 109Hình 5.52 Lược đồ mô tả trình tự thêm người dùng vào hệ thống 110Hình 5.53 Giao diện xóa người dùng 110Hình 5.54 Lược đồ mô tả trình tự xóa người dùng 111Hình 5.55 Giao diện cập nhật thông tin người dùng 111Hình 5.56 Lược đồ mô tả trình tự Cập nhật thông tin người dùng 112Hình 5.57 Giao diện tạo hội đồng 112Hình 5.58 Giao diện tạo hội đồng 113Hình 5.59 Lược đồ mô tả trình tự tạo hội đồng 113Hình 5.60 Giao diện xóa hội đồng 114Hình 5.61 Lược đồ mô tả trình tự Xóa hội đồng 115Hình 5.62 Giao diện danh sách đề tài chờ xác nhận 115Hình 5.63 Giao diện xác nhận đề tài thực hiện 116Hình 5.64 Lược đồ mô tả trình tự xác nhận đề tài thực hiện 116Hình 5.65 Giao diện phân chia hội đồng 117Hình 5.66 Giao diện phân công hội đồng cho các đề tài 118Hình 5.67 Lược đồ mô tả trình tự gán đề tài vào hội đồng 118Hình 5.68 Giao diện phân công giảng viên phản biện 119Hình 5.69 Giao diện chọn giảng viên phản biện 120Hình 5.70 Lược đồ mô tả trình tự phân công giảng viên phản biện 120

Hình 7.1 Nền tảng Cloud Cluster 126Hình 7.2 Quá trình deploy Back-end 127Hình 7.3 Test API Server 128

Bảng 3.1.Yêu cầu chức năng nghiệp vụ Giáo vụ 16Bảng 3.2.Yêu cầu chức năng nghiệp vụ Giảng viên 18Bảng 3.3.Yêu cầu chức năng nghiệp vụ Sinh viên 19Bảng 3.4 Yêu cầu phi chức năng 19Bảng 3.5 Mô tả Use case Sinh viên 20Bảng 3.6 Mô tả UseCase Giảng viên 21Bảng 3.7 Mô tả Use case Giáo vụ 23Bảng 3.8 Use case Đăng nhập 26Bảng 3.9 Use case Xem thông tin cá nhân 27Bảng 3.10 Use case Cập nhật thông tin cá nhân 27Bảng 3.11 Use case Xem danh sách đề tài được phép đăng ký 28Bảng 3.12 Use case Ghi danh vào đề tài 29Bảng 3.13 Use case Hủy đề tài 30Bảng 3.14 Use case Đề xuất đề tài 31Bảng 3.15 Use case Xem chi tiết đề tài 31Bảng 3.16 Use case Cập nhật thông tin cho đề tài 33Bảng 3.17 Use case Thêm đề tài 34Bảng 3.18 Use case Sửa đề tài 34Bảng 3.19 Use case Xóa đề tài 35Bảng 3.20 Use case Gửi đề tài lên Giáo vụ 36Bảng 3.21 Use case Xóa đề tài (Quản lý đề tài) 37Bảng 3.22 Use case Yêu cầu cập nhật bảng điểm 37Bảng 3.23 Use case Chọn nhóm thực hiện đề tài 38Bảng 3.24 Use case Chấm điểm đề tài hướng dẫn 39Bảng 3.25 Use case Chấm điểm đề tài phản biện 40Bảng 3.26 Use case Chấm điểm đề tài hội đồng 40Bảng 3.27 Use case Xem thông tin nhóm 42Bảng 3.28 Use case Xem lịch sử đề tài 42Bảng 3.29 Use case Xem thông tin chi tiết đề tài 43

Bảng 3.30 Use case Xác nhận đề tài thực hiện 44Bảng 3.31 Use case Phân công GVPB 44Bảng 3.32 Use case Tải xuống danh sách đề tài 45Bảng 3.33 Use case Xem danh sách sinh viên thực hiện 46Bảng 3.34 Use case Xem điểm chi tiết 47Bảng 3.35 Use case Xóa người dùng 48Bảng 3.36 Use case Thêm mới người dùng 48Bảng 3.37 Use case Thêm danh sách người dùng bằng file excel 49Bảng 3.38 Use case Thêm mới học kỳ 50Bảng 3.39 Use case Xóa học kỳ 51Bảng 3.40 Use case Cập nhật học kỳ 52Bảng 3.41 Use case Thêm mới đợt đăng ký 53Bảng 3.42 Use case Xóa đợt đăng ký 53Bảng 3.43 Use case Cập nhật đợt đăng ký 54Bảng 3.44 Use case Thêm mới phiếu đánh giá 55Bảng 3.45 Use case Xóa phiếu đánh giá 56Bảng 3.46 Use case Thêm mới tiêu chí 57Bảng 3.47 Use case Cập nhật tiêu chí 58Bảng 3.48 Use case Thêm mới hội đồng 58Bảng 3.49 Use case Xóa hội đồng 59Bảng 3.50 Use case Gán đề tài vào hội đồng 60Bảng 4.1.Thông tin các trường trong bảng Users 62Bảng 4.2.Thông tin các trường trong bảng Topics 63Bảng 4.3 Thông tin các trường trong bảng UserNotidications 64Bảng 4.4 Thông tin các trường trong bảng TopicCategory 64Bảng 4.5 Thông tin các trường trong bảng Semesters 65Bảng 4.6 Thông tin các trường trong bảng ScoreBoards 65Bảng 4.7 Thông tin các trường trong bảng RubricEvaluations 65Bảng 4.8 Thông tin các trường trong bảng Rubrics 66Bảng 4.9 Thông tin các trường trong bảng RegistrationPeriods 66

Bảng 4.10 Thông tin các trường trong bảng Majors 67Bảng 4.11 Thông tin các trường trong bảng GroupStudent 67Bảng 4.12 Thông tin các trường trong bảng Faculties 67Bảng 4.13 Thông tin các trường trong bảng Assemblies 68Bảng 5.1 Bảng chức vụ Giảng viên 92Bảng 6.1 Kế hoạch kiểm thử 122

1 Các vấn đề nghiên cứu

- Tìm hiểu thị trường, phân tích đối thủ để rút ra kinh nghiệm cho dự án

- Tìm hiểu các công nghệ để thực thi:

• Sử dụng NestJS để tạo và cung cấp API cho hệ thống

• Sử dụng ReactJS để tạo giao diện và thực hiện chức năng cho hệ thống

- Tìm hiểu cách tối ưu hệ thống, tốc độ tải dữ liệu thông qua việc cập nhật các version mới

2 Các vấn đề phát sinh

- Đảm bảo tính bảo mật của website

- Lưu trữ lại dữ liệu để có thể sử dụng cho mục đích sau này

- Cung cấp giải pháp nhanh chóng và thuận tiện cho người dùng

3 Các phương pháp giải quyết vấn đề

- Sử dụng JSON Web Token để đảm bảo yêu cầu bảo mật

- Xây dựng hệ thống với khả năng lưu trữ lại dữ liệu

- Xây dựng các chức năng rõ ràng để người dùng sử dụng

- Người dùng truy cập vào hệ thống được chia làm 3 quyền, đảm bảo yêu cầu bảo mật và toàn vẹn dữ liệu đối với từng loại người dùng

- Giao diện thân thiện với các chức năng dễ sử dụng với người dùng

- Cung cấp các chức năng cơ bản so với nhu cầu thực tế

- Tối ưu hiệu năng để tăng trải nghiệm cho người dùng

PHẦN 1: MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN 1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong bối cảnh sự phát triển mạnh mẽ của nền công nghiệp CNTT, việc xây dựng một website để quản lý đề tài không chỉ giúp tối ưu hóa quy trình quản lý đề tài mà còn mang lại nhiều lợi ích lớn cho cả sinh viên và giảng viên

Một trong những ưu điểm lớn nhất của việc triển khai một hệ thống quản lý đề tài trực tuyến là khả năng tiếp cận thông tin mọi nơi, mọi lúc Sinh viên có thể dễ dàng tra cứu và cập nhật thông tin về đề tài của mình, tiếp cận tài liệu liên quan và theo dõi tiến độ công việc một cách thuận lợi Đồng thời, giảng viên cũng có thể quản lý và đánh giá đề tài của sinh viên một cách hiệu quả hơn, giảm thiểu thời gian và công sức cho việc theo dõi và báo cáo

Ngoài ra, hệ thống quản lý đề tài còn giúp tăng cường tính minh bạch và công bằng trong quá trình đánh giá Việc có một cơ sở dữ liệu trực tuyến giúp đảm bảo rằng tất cả các thông tin liên quan đều được lưu trữ một cách an toàn và minh bạch, từ quá trình giao việc, tiến độ thực hiện đến kết quả đánh giá Điều này tạo ra một môi trường công bằng cho sinh viên, nâng cao chất lượng của quá trình học tập và nghiên cứu

Cuối cùng, việc triển khai website quản lý đề tài cũng góp phần nâng cao uy tín và tiếng tăm của Khoa CNTT Khả năng áp dụng công nghệ vào quá trình quản lý và giáo dục không chỉ thể hiện sự tiến bộ mà còn làm tăng giá trị thương hiệu của khoa, thu hút sự quan tâm từ cả sinh viên và doanh nghiệp Điều này đồng nghĩa với việc tạo ra một môi trường học tập chất lượng và làm tăng cơ hội nghề nghiệp cho sinh viên Khoa CNTT trong tương lai

Từ đó, nhóm em quyết định thực hiện đề tài Xây dựng website Quản lý Đề tài Khóa luận tốt nghiệp của Khoa CNTT

- Sinh viên: Là người sử dụng hệ thống với mục đích đăng kí đề tài mới hoặc đề tài có sẵn, quản lý đề tài đang thực hiện, nộp các báo cáo, thông tin cần thiết

- Giảng viên: Là người sử dụng hệ thống, với mục đích đăng kí các đề tài mới, lựa chọn nhóm sinh viên thực hiện đề tài, quản lý các đề tài mà mình đang hướng dẫn và phản biện, tham gia hội đồng bảo vệ đề tài, chấm điểm các đề tài

- Giáo vụ: Là người quản trị của hệ thống, với mục đích mở các học kì, đợt đăng kí, quản lý các phiếu chấm điểm, các hội đồng, người dùng của hệ thống, tải xuống thông tin các đề tài, bảng điểm của sinh viên

1.3 PHẠM VI NGHIÊN CỨU Đối với đề tài “Xây dựng website Quản lý Đề tài Khóa luận tốt nghiệp của Khoa CNTT”, nhóm tập trung nghiên cứu vào Sinh viên, Giảng viên và Giáo vụ hiện đang học tập, nghiên cứu và làm việc tại Khoa CNTT với nhu cầu tìm kiếm các giải phải công nghệ áp dụng vào việc dạy và học

Xây dựng được hệ thống với các chức năng cơ bản phục vụ cho việc Quản lý Đề tài của Khoa CNTT:

Ứng dụng web dành giáo vụ

5.4.1 Công nghệ sử dụng Ứng dụng được xây dựng dựa trên ngôn ngữ lập trình JavaScript và giao diện được dựng lên bởi công nghệ ReactJS

- Sử dụng thư viện axios (một thư viện HTTP Client dựa trên Promise) để xây dựng thư viện API riêng của website axiosClient với việc trong header của request sẽ được bổ sung them thuộc tính Authorization cần thiết cho những request cần mang tính xác thực ở server Và thư viện axios cũng hỗ trợ đầy các lệnh các API cơ bản như GET, POST, PUT, DELETE

- Sử dụng Tailwind CSS: Được sử dụng để xây dựng giao diện người dùng của ứng dụng Tailwind CSS là một thư viện CSS mạnh mẽ, được thiết kế để tạo ra giao diện người dùng linh hoạt, dễ bảo trì và tùy chỉnh

5.4.2 Mô tả luồng hoạt động

Mô tả: Giáo vụ đăng nhập vào hệ thống vào thêm học kì mới

Hình 5.28 Giao diện danh sách các học kì đang có trong hệ thống

- Bước 1: Giáo vụ đăng nhập vào hệ thống và tìm đến mục “Thiết lập” và chọn vào mục “Học kỳ”

- Bước 2: Giáo vụ tìm đến nút “Tạo học kỳ”

- Bước 3: Hệ thống hiển thị form tạo học kỳ mới cho giáo vụ nhập thông tin cần thiết

Hình 5.29 Giao diện thêm học kì của giáo vụ

- Bước 4: Giáo vụ nhập đầy đủ thông tin cần thiết

- Bước 5: Giáo vụ chọn nút “Tạo học kỳ” để thêm mới học kì vào hệ thống Lược đồ luồng tạo học kì :

Hình 5.30 Lược đồ mô tả trình tự thêm học kì vào hệ thống

Hình 5.31 Giao diện xóa học kỳ

- Bước 1: Giáo vụ tìm đến giao diện quản lí học kì để xem tất cả các học kì hiện có ở trong hệ thống

- Bước 2: Giáo vụ chọn vào biểu tượng xoá ở học kì muốn xóa

Sơ đồ luồng xoá học kì:

Hình 5.32 Lược đồ mô tả trình tự xóa học kì khỏi hệ thống

5.4.2.3 Luồng cập thông tin học kì

Mô tả: Giáo vụ có mong muốn thay đổi thông tin học kì nếu thông tin học kỳ tạo trước đó bị sai

Hình 5.33 Giao diện cập nhật học kỳ

Sơ đồ luồng cập nhật thông tin học kì:

Hình 5.34 Lược đồ mô tả trình tự cập nhật học kì trên hệ thống

5.4.2.4 Luồng thêm đợt đăng kí khoá luận trong học kì

Mô tả: Giáo vụ mở ra đợt đăng kí khoá luận trong học kỳ cho sinh viên và giảng viên có thể đăng kí đề tài khóa luận tốt nghiệp

Hình 5.35 Giao diện mở đợt đăng ký

- Bước 1: Giáo vụ vào danh mục “Đợt đăng kí”

- Bước 2: Hệ thống hiển thị giao diện quản lí đợt đăng kì

- Bước 3: Giáo vụ nhấn nút “Tạo đợt đăng kí”

- Bước 4: Hệ thống hiển thị form tạo đợt đăng ký mới

- Bước 5: Giáo vụ nhập đầy đủ thông tin cần thiết và nhấn vào nút “Mở đợt đăng ký”

Sơ đồ luồng mở đợt đăng kí:

Hình 5.36 Lược đồ mô tả trình tự mở đợt đăng ký

5.4.2.5 Luồng chỉnh sửa đợt đăng kí

Mô tả : Giảng viên muốn thay đổi thông tin đợt đăng kí nếu trước đó tạo sai thông tin Giao diện :

Hình 5.37 Giao diện chỉnh sửa đợt đăng ký

- Bước 1: Truy cập giao diện quản lý đợt đăng kí

- Bước 2: Giáo vụ chọn vào biểu tượng xem chi tiết ở mỗi đợt để hiển thị form cập nhật thông tin của đợt đăng kí

- Bước 3: Giáo vụ chỉnh sửa các thông tin cần cần thiết

- Bước 4: Giáo vụ nhấn nút “Cập nhật” để lưu thông tin cập nhật vào hệ thống

Sơ đồ luồng chính sửa đợt đăng kí:

Hình 5.38 Lược đồ mô tả trình tự chỉnh sửa đợt đăng ký

5.4.2.6 Luồng thêm phiếu đánh giá:

- Giáo vụ tiến hành tạo các phiếu đánh giá dành cho giảng viên phản biện , giảng viên hướng dẫn và hội đồng phản biện

- Mỗi năm sẽ có các tiêu chí đánh giá cho các phiếu có thể khác nhau nên việc quản lí phiếu đánh giá là cần thiết cho hệ thống

Hình 5.39 Giao diện thêm phiếu đánh giá

- Bước 1: Giáo vụ tìm đến danh mục “Phiếu đánh giá” trong mục “Thiết lập”

- Bước 2: Hệ thống hiển thị ra danh sách các phiếu đánh giá đã tạo

- Bước 3: Giáo vụ nhấn vào nút “Tạo rubric”

- Bước 4: Hệ thống hiển thị form nhập thông tin phiếu đánh giá gồm: tên phiếu dánh giá và phiếu đánh giá dành cho đối tượng nào ( giảng viên hướng dẫn, giảng viên phản biện , hội đồng bảo vệ )

- Bước 5: Sau khi điển đầy đủ các thông tin trên form thì nhấn vào nút “Tạo mới” để thêm phiếu đánh giá vào hệ thống

Sơ đồ luồng tạo phiếu đánh giá:

Hình 5.40 Lược đồ mô tả trình tự thêm phiếu đánh giá

5.4.2.7 Luồng thêm tiêu chí vào phiếu đánh giá:

Mô tả: Với mỗi phiếu đánh giá (rubric chấm điểm) sẽ có những tiêu chí chấm điểm khác nhau Thêm các tiêu chí đánh giá vào rubric để hoàn thiện phiếu chấm điểm dành cho các đối tượng tương ứng

Hình 5.41 Giao diện tạo số lượng tiêu chí

- Bước 1: Giáo vụ click vào biểu tượng cây bút để thêm tiêu chí cho phiếu đánh giá

- Bước 2: Hệ thống hiện thị form nhập số lượng tiêu chí đánh giá của rubric

Hình 5.42 Giao diện tạo tiêu chí dựa trên số lượng đã nhập

- Bước 3: Hệ thống hiển thị form nhập thông tin tiêu chí (Lưu ý: trọng số của các tiêu chí có tổng là 100%)

- Bước 4: Nhập thông tin cho từng tiêu chí và nhấn nút “Tiếp tục”

- Bước 5: Sau khi nhập tất cả các tiêu chí thì nhấn nút “Xác nhận” để lưu thông tin các tiêu chí đánh giá cho rubric chấm điểm

Sơ đồ luồng tạo tiêu chí:

Hình 5.43 Lược đồ mô tả trình tự tạo tiêu chí

5.4.2.8 Luồng cập nhật tiêu chí đánh giá :

Mô tả: Giáo vụ muốn cập nhật thông tin tiêu chí cho rubric (Chỉ được phép cập nhật các tiêu chí khi rubric chưa được sử dụng)

Hình 5.44 Giao diện cập nhật tiêu chí

- Bước 1: Giáo vụ nhấn vào biểu tưởng xem chi tiết hệ thống sẽ hiển thị danh sách các tiêu chí của phiếu đánh giá

- Bước 2: Giáo vụ chọn vào biểu tượng cây bút tương ứng với các tiêu chí muốn chỉnh sửa

- Bước 3: Giáo vụ nhập thông tin cần chỉnh sửa và nhấn biểu tượng xác nhận để xác nhận thay đổi thông tin của tiêu chí

Sơ đồ luồng cập nhật tiêu chí:

Hình 5.45 Lược đồ mô tả trình tự cập nhật tiêu chí

5.4.2.9 Luồng xoá phiếu đánh giá

Mô tả: Giáo vụ xóa các phiếu đánh giá (Chỉ xóa được các phiếu đánh giá chưa được áp dụng để chấm điểm)

Hình 5.46 Giao diện xóa phiếu đánh giá

- Bước 1: Giáo vụ nhấn vào biểu tượng xóa tương ứng với từng phiếu đánh giá để xóa phiếu mong muốn

Sơ đồ luồng xoá phiếu đánh giá:

Hình 5.47 Lược đồ mô tả trình tự xóa phiếu đánh giá

5.4.2.10 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký

Mô tả: Giáo vụ thực hiện gán các phiếu đánh giá cho các đề tài trong đợt đăng ký để giảng viên có thể chấm điểm

Hình 5.48 Giao diện áp dụng phiếu đánh giá cho đợt đăng ký

- Bước 1: Giáo vụ truy cập vào danh mục “Phiếu đánh giá”

- Bước 2: Giáo vụ nhấn vào nút “Phân công rubric”

- Bước 3: Hệ thống hiển thị form gán phiếu đánh giá cho các đề tài

- Bước 4: Giáo vụ chọn học kỳ, đợt đăng ký và các phiếu đánh giá để áp dụng cho đợt đăng ký

- Bước 5: Giáo vụ nhấn nút “Gán phiếu đánh giá” để thực hiện gán các phiếu đánh giá cho các đề tài trong đợt đăng ký đã chọn

Mô tả: Giáo vụ thêm người dùng mới vào hệ thống có thể là sinh viên hoặc giảng viên mới vào để sử dụng hệ thống

Giáo vụ có thêm người dùng vào hệ thống bằng 2 cách :

Hình 5.49 Giao diện thêm mới người dùng

Cách 1: Thêm 1 người dùng bằng cách nhập thông tin trên form và nhấn nút “Tạo người dùng” để thêm người dùng vào hệ thống

Hình 5.50 Giao diện thêm người dùng bằng file excel

Cách 2: Thêm nhiều người dùng cùng lúc bằng cách tải file mẫu về máy và nhập thông tin của người dùng với các thông tin giống file mẫu

- Bước 1: Giáo vụ chọn file để thêm mới người dùng và nhấn nút “Tải lên”

Sơ đồ luồng thêm người dùng vào hệ thống:

Hình 5.51 Lược đồ mô tả trình tự thêm người dùng vào hệ thống

Mô tả: Giảng viên muốn xoá đi người dùng có thể là những sinh viên đã tốt nghiệp và không còn nhu cầu sử dụng hệ thống nữa

Hình 5.52 Giao diện xóa người dùng

- Bước 1: Giáo vụ truy cập vào hệ thống và đi đến danh mục “Giảng viên” hoặc

- Bước 2: Giáo vụ chọn vào biểu tượng xoá ở mỗi dòng dữ liệu để xóa người dùng mong muốn

Sơ đồ luồng xoá người dùng:

Hình 5.53 Lược đồ mô tả trình tự xóa người dùng

5.4.2.13 Luồng cập nhật thông tin người dùng

Mô tả: Giáo vụ thực hiện cập nhật thông tin người dùng trong hệ thống

Hình 5.54 Giao diện cập nhật thông tin người dùng

- Bước 1: Giáo vụ tìm đến mục có nội dung người dùng như “Sinh viên” hoặc là

“Giảng viên” và nhấn vào biểu tượng cây bút ở mỗi dòng để hiển thị giao diện thông tin chi tiết người dùng

- Bước 2: Giáo vụ thực hiện nhập mới các thông tin vào các ô cần chỉnh sửa

- Bước 3: Giáo vụ nhấn nút “Cập nhật” để cập nhật thông tin người dùng trong hệ thống

Sơ đồ luồng cập nhật thông tin người dùng:

Hình 5.55 Lược đồ mô tả trình tự Cập nhật thông tin người dùng

5.4.2.14 Luồng thêm hội đồng vào hệ thống

Mô tả: Giáo vụ tạo hội đồng bảo vệ để chấm điểm cho các đề tài, gồm: 1 chủ tịch, 1 thư ký và các ủy viên (tối đa 3 người)

Hình 5.56 Giao diện tạo hội đồng

- Bước 1: Giảng viên chọn mục “Hội đồng” để đi đến trang quản lí hội đồng phản biện

- Bước 2: Giáo vụ nhấn vào nút “Tạo hội đồng” để hiển thị form gồm các nội dung thông tin cần thiết cho hội đồng như bên dưới

Hình 5.57 Giao diện tạo hội đồng

- Bước 3: Giáo vụ nhập các thông tin cần thiết vào form và nhấn nút “Tạo hội đồng” để tạo mới một hội đồng phản biện

Sơ đồ luồng thêm hội đồng vào hệ thống:

Hình 5.58 Lược đồ mô tả trình tự tạo hội đồng

5.4.2.15 Luồng xoá hội đồng khỏi hệ thống

Mô tả: Giáo vụ thực hiện xoá hội đồng phản biện khi hội đồng đó chưa được phân công cho bất kì đề tài nào trong hệ thống

Hình 5.59 Giao diện xóa hội đồng

- Bước 1: Giáo vụ vào danh mục “Hội đồng”

- Bước 2: Hệ thống hiển thị danh sách hội đồng phản biện có trong hệ thống

- Bước 3: Giáo vụ thực hiện nhấn vào biểu tượng xoá để thực hiện hành đồng xoá hội đồng ra khỏi hệ thống

- Bước 4: Sau khi xoá đề tài sẽ không còn được hiển thị trên hệ thống

Sơ đồ xoá hội đồng khỏi hệ thống:

Hình 5.60 Lược đồ mô tả trình tự Xóa hội đồng

5.4.2.16 Luồng xác nhận đề tài thực hiện

- Giáo vụ thực hiện xem xét và phê duyệt các đề tài đủ điều kiện được gửi lên bởi các giảng viên

- Các đề tài được giảng viên phê duyệt sẽ được hiển thị cho sinh viên ghi danh hoặc thực hiện

Hình 5.61 Giao diện danh sách đề tài chờ xác nhận

- Bước 1: Giáo vụ tìm đến mục “Đề tài” và chọn mục “Cần duyệt” để đi đến danh sách các đề tài đợi duyệt

- Bước 2: Ở đây giáo vụ thực hiện chọn vào một đề tài bất kì để xem chi tiết đề tài để xem xét đề tài có đáp ứng đủ điều kiện thực hiện

Hình 5.62 Giao diện xác nhận đề tài thực hiện

- Bước 3: Giáo vụ nhấn vào nút “Xác nhận” để phê duyệt đề tài đủ điều kiện thực hiện

Sơ đồ luồng xác nhận đề tài thực hiện:

Hình 5.63 Lược đồ mô tả trình tự xác nhận đề tài thực hiện

5.4.2.17 Luồng phân chia hội đồng phản biện cho các đề tài

Mô tả: Sau thời gian thực hiện đề tài giáo vụ thực hiện phân công hội đồng phản biện cho các đề tài thực hiện đủ điều kiện bảo vệ

Hình 5.64 Giao diện phân chia hội đồng

- Bước 1: Giáo vụ truy cập đến danh mục “Hội đồng”

- Bước 2: Hệ thống hiển thị danh sách hội đồng có trong hệ thống

- Bước 3: Giáo vụ nhấn vào biểu tượng cây bút để hiển thị giao diện phân công hội đồng cho các đề tài

Hình 5.65 Giao diện phân công hội đồng cho các đề tài

- Bước 4: Hệ thống hiển thị giao diện phân công hội đồng

- Bước 5: Giáo vụ nhấn chọn vào các đề tài muốn gán hội đồng phản biện

- Bước 6: Giáo vụ nhập các thông tin cần thiết để tại hội đồng

- Bước 7: Giáo vụ nhấn nút “Xác nhận” để cập nhật thông tin vào hệ thống

Sơ đồ luồng gán đề tài vào hội đồng:

Hình 5.66 Lược đồ mô tả trình tự gán đề tài vào hội đồng

5.4.2.18 Luồng phân công giảng viên phản biện

Mô tả: Sau khi kết thức thời gian thực hiện đề tài, giáo vụ tiến hành phân công giáo viên phản biện cho các đề tài

Hình 5.67 Giao diện phân công giảng viên phản biện

- Bước 1: Giáo vụ truy cập danh mục “Đề tài đang thực hiện” và chọn vào đề tài muốn phân công phản biên

- Bước 2: Giáo vụ chọn vào ô input “Giảng viên phản biện” sẽ hiện thị ra danh sách tất cả các giảng viên có trong hệ thống

Hình 5.68 Giao diện chọn giảng viên phản biện

- Bước 3: Giáo vụ thực hiện chọn giảng viên phù hợp để thực hiện phản biện cho đề tài và nhấn nút “Xác nhận”

Sơ đồ luồng phân công giảng viên phản biện:

Hình 5.69 Lược đồ mô tả trình tự phân công giảng viên phản biện

KIỂM THỬ HỆ THỐNG

KẾT QUẢ KIỂM THỬ

7.2.1 Các đường link source code

7.2.2 Deploy hệ thống 7.2.2.1 Back-end 7.3 Đánh giá hệ thống

7.3.1 Ưu điểm 7.3.2 Nhược điểm 7.3.3 Hướng phát triển

4 Danh mục tài liệu tham khảo

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

Phân tích dự án Xây dựng cơ sở dữ liệu

Khảo sát đề tài và phân tích xây dựng hệ thống

2 10/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

3 11/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

Kiểm thử dự án Triển khai dự án Viết báo cáo

Viết và chỉnh sửa mã nguồn Viết testcase

Tp Hồ Chí Minh, ngày tháng năm 2023

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(ký và ghi rõ họ tên)

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

1.5 BẢNG PHÂN CÔNG CÔNG VIỆC 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1.1 Khái niệm về MERN Stack 4

2.1.2 Các thành phần trong MERN Stack 4

2.1.3 Cách MERN Stack hoạt động 5

2.1.4 Lợi thế của MERN Stack 6

2.3.2 Tại sao lại chọn ReactJS? 9

2.4 CƠ SỞ DỮ LIỆU MONGODB 11

2.6.1 JWT – Định nghĩa và ứng dụng trong bảo mật Client-Server 13

CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 15

3.1.1 Đặt vấn đề và Mục tiêu khảo sát 15

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

3.2.1.2 Yêu cầu chức năng hệ thống 19

3.2.2 Yêu cầu phi chức năng 19

3.4.1 Lược đồ Use case Sinh viên 20

3.4.2 Lược đồ Use case Giảng viên 21

3.4.3 Lược đồ Use case Giáo vụ 23

3.5.1.2 Xem thông tin cá nhân 27

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

3.5.2.1 Xem danh sách đề tài được đăng ký 28

3.5.2.2 Ghi danh vào đề tài 29

3.5.2.5 Xem chi tiết đề tài 31

3.5.2.6 Cập nhật thông tin cho đề tài 33

3.5.3.4 Gửi đề tài lên giáo vụ 36

3.5.3.5 Xóa đề tài (Quản lý đề tài) 37

3.5.3.6 Yêu cầu cập nhật bảng điểm 37

3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài 38

3.5.3.8 Chấm điểm đề tài hướng dẫn 39

3.5.3.9 Chấm điểm đề tài phản biện 40

3.5.3.10 Hội đồng chấm điểm đề tài 40

3.5.3.12 Xem lịch sử đề tài 42

3.5.4.1 Xem chi tiết đề tài 43

3.5.4.2 Xác nhận đề tài thực hiện 44

3.5.4.4 Tải xuống danh sách đề tài 45

3.5.4.5 Xem danh sách sinh viên thực hiện 46

3.5.4.9 Thêm danh sách người dùng bằng file excel 49

3.5.4.13 Thêm mới đợt đăng ký 53

3.5.4.15 Cập nhật đợt đăng ký 54

3.5.4.16 Thêm mới phiếu đánh giá 55

3.5.4.22 Gán đề tài vào hội đồng 60

CHƯƠNG 4: THIẾT KẾ PHẦN MỀM 62

4.1 MÔ TẢ CƠ SỞ DỮ LIỆU 62

4.1.1 Thông tin các trường trong bảng 62

4.2 Hiện thực thông qua MongoDB 69

CHƯƠNG 5: TỔNG QUAN HỆ THỐNG 74

5.1 VAI TRÒ CỦA ỨNG DỤNG 74

5.1.1 Mô hình tổng quan của ứng dụng 74

5.1.2 Giới thiệu các ứng dụng 74

5.2 Ứng dụng web dành cho sinh viên 75

5.2.2.2 Luồng đề xuất đề tài 76

5.2.2.3 Luồng ghi danh đề tài 78

5.2.2.4 Luồng huỷ ghi danh đề tài 80

5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….) 81

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 83

5.3 Ứng dụng web dành giảng viên 84

5.3.2.1 Luồng quản lý đề tài 85

5.3.2.2 Luồng chỉnh sửa đề tài 87

5.3.2.3 Luồng gửi đề tài lên giáo vụ 89

5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận 90

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài

5.4 Ứng dụng web dành giáo vụ 95

5.4.2 Mô tả luồng hoạt động 96

5.4.2.3 Luồng cập thông tin học kì 98

5.4.2.4 Luồng thêm đợt đăng kí khoá luận trong học kì 100

5.4.2.5 Luồng chỉnh sửa đợt đăng kí 101

5.4.2.6 Luồng thêm phiếu đánh giá: 102

5.4.2.7 Luồng thêm tiêu chí vào phiếu đánh giá: 104

5.4.2.8 Luồng cập nhật tiêu chí đánh giá : 106

5.4.2.9 Luồng xoá phiếu đánh giá 107

5.4.2.10 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 108

5.4.2.13 Luồng cập nhật thông tin người dùng 111

5.4.2.14 Luồng thêm hội đồng vào hệ thống 112

5.4.2.15 Luồng xoá hội đồng khỏi hệ thống 114

5.4.2.16 Luồng xác nhận đề tài thực hiện 115

5.4.2.17 Luồng phân chia hội đồng phản biện cho các đề tài 117

5.4.2.18 Luồng phân công giảng viên phản biện 119

CHƯƠNG 6: KIỂM THỬ HỆ THỐNG 121

6.3 CHIẾN LƯỢC KIỂM THỬ ÁP DỤNG 121

6.4 CÁC PHƯƠNG PHÁP KIỂM THỬ 121

7.2.1 Các đường link source code 126

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

Hình 2.1.Sơ đồ hoạt động MERN Stack 5

Hình 2.3 One-way data binding 11

Hình 3.1 Lược đồ Use case Sinh viên 21

Hình 3.2 Lược đồ Use case Giảng viên 23

Hình 3.3 Lược đồ Use case Giáo vụ 25

Hình 4.1 Lượt đồ ERD của hệ thống 68

Hình 4.2 Bảng Topics trên MongoDB 69

Hình 4.3 Bảng Users trên MongoDB 70

Hình 4.4 Bảng UserNotifications trên MongoDB 70

Hình 4.5 Bảng TopicCategories trên MongoDB 71

Hình 4.6 Bảng Semesters trên MongoDB 71

Hình 4.7 Bảng ScoreBoards trên MongoDB 71

Hình 4.8 Bảng RubricEvaluations trên MongoDB 72

Hình 4.9 Bảng Rubrics trên MongoDB 72

Hình 4.10 Bảng RegistrationPeriods trên MongoDB 72

Hình 4.11 Bảng Majors trên MongoDB 73

Hình 4.12 Bảng GroupStudents trên MongoDB 73

Hình 4.13 Bảng Faculties trên MongoDB 73

Hình 4.14 Bảng Assemblies trên MongoDB 73

Hình 5.1 Giao diện đăng nhập 76

Hình 5.2 Sơ đồ luồng đăng nhập 76

Hình 5.4 Giao diện Form mẫu đề xuất đề tài 77

Hình 5.5 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 78

Hình 5.6 Giao diện danh sách đề tài đang mở trong đợt đăng kí 78

Hình 5.7 Giao diện thông tin chi tiết của đề tài 79

Hình 5.8 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 80

Hình 5.9 Giao diện hủy ghi danh đề tài đã đăng kí 80

Hình 5.10 Lược đồ mô tả trình tự huỷ đề tài của sinh viên 81

Hình 5.11 Giao diện cập nhật thông tin bổ sung cho đề tài 82Hình 5.12 Lược đồ mô tả trình tự cập nhật bổ sung thông tin 82Hình 5.13 Giao diện xem thông tin chi tiết đề tài đã đăng ký thực hiện 83Hình 5.14 Lược đồ mô tả trình tự xem chi tiết đề tài đã đăng ký 84Hình 5.15 Giao diện danh sách các đề tài giảng viên quản lí 85Hình 5.16 Giao diện thêm mới đề tài của giảng viên 86Hình 5.17 Lược đồ mô tả trình tự tạo đề tài của giảng viên 87Hình 5.18 Giao diện chi tiết đề tài của giảng viên 87Hình 5.19 Giao diện thêm chỉnh sửa đề tài của giảng viên 88Hình 5.20 Lược đồ mô tả trình tự chỉnh sửa đề tài của giảng viên 89Hình 5.21 Giao diện thêm chi tiết đề tài của giảng viên 89Hình 5.22 Lược đồ mô tả trình tự gửi đề tài của giảng viên lên giáo vụ 90Hình 5.23 Giao diện thêm chi tiết đề tài của giảng viên 91Hình 5.24 Lược đồ mô tả trình chọn nhóm làm đề tài 92Hình 5.25 Giao diện danh sách các đề tài mà giảng viên hướng dẫn 93Hình 5.26 Giao diện chi tiết đề tài hướng dẫn của giảng viên 94Hình 5.27 Giao diện phiếu chấm điểm của giảng viên hướng dẫn 95Hình 5.28 Lược đồ mô tả trình tự chấm điểm sinh viên 95Hình 5.29 Giao diện danh sách các học kì đang có trong hệ thống 96Hình 5.30 Giao diện thêm học kì của giáo vụ 97Hình 5.31 Lược đồ mô tả trình tự thêm học kì vào hệ thống 97Hình 5.32 Giao diện xóa học kỳ 98Hình 5.33 Lược đồ mô tả trình tự xóa học kì khỏi hệ thống 98Hình 5.34 Giao diện cập nhật học kỳ 99Hình 5.35 Lược đồ mô tả trình tự cập nhật học kì trên hệ thống 99Hình 5.36 Giao diện mở đợt đăng ký 100Hình 5.37 Lược đồ mô tả trình tự mở đợt đăng ký 101Hình 5.38 Giao diện chỉnh sửa đợt đăng ký 101Hình 5.39 Lược đồ mô tả trình tự chỉnh sửa đợt đăng ký 102Hình 5.40 Giao diện thêm phiếu đánh giá 103

Hình 5.41 Lược đồ mô tả trình tự thêm phiếu đánh giá 104Hình 5.42 Giao diện tạo số lượng tiêu chí 104Hình 5.43 Giao diện tạo tiêu chí dựa trên số lượng đã nhập 105Hình 5.44 Lược đồ mô tả trình tự tạo tiêu chí 105Hình 5.45 Giao diện cập nhật tiêu chí 106Hình 5.46 Lược đồ mô tả trình tự cập nhật tiêu chí 106Hình 5.47 Giao diện xóa phiếu đánh giá 107Hình 5.48 Lược đồ mô tả trình tự xóa phiếu đánh giá 107Hình 5.49 Giao diện áp dụng phiếu đánh giá cho đợt đăng ký 108Hình 5.50 Giao diện thêm mới người dùng 109Hình 5.51 Giao diện thêm người dùng bằng file excel 109Hình 5.52 Lược đồ mô tả trình tự thêm người dùng vào hệ thống 110Hình 5.53 Giao diện xóa người dùng 110Hình 5.54 Lược đồ mô tả trình tự xóa người dùng 111Hình 5.55 Giao diện cập nhật thông tin người dùng 111Hình 5.56 Lược đồ mô tả trình tự Cập nhật thông tin người dùng 112Hình 5.57 Giao diện tạo hội đồng 112Hình 5.58 Giao diện tạo hội đồng 113Hình 5.59 Lược đồ mô tả trình tự tạo hội đồng 113Hình 5.60 Giao diện xóa hội đồng 114Hình 5.61 Lược đồ mô tả trình tự Xóa hội đồng 115Hình 5.62 Giao diện danh sách đề tài chờ xác nhận 115Hình 5.63 Giao diện xác nhận đề tài thực hiện 116Hình 5.64 Lược đồ mô tả trình tự xác nhận đề tài thực hiện 116Hình 5.65 Giao diện phân chia hội đồng 117Hình 5.66 Giao diện phân công hội đồng cho các đề tài 118Hình 5.67 Lược đồ mô tả trình tự gán đề tài vào hội đồng 118Hình 5.68 Giao diện phân công giảng viên phản biện 119Hình 5.69 Giao diện chọn giảng viên phản biện 120Hình 5.70 Lược đồ mô tả trình tự phân công giảng viên phản biện 120

Hình 7.1 Nền tảng Cloud Cluster 126Hình 7.2 Quá trình deploy Back-end 127Hình 7.3 Test API Server 128

Bảng 3.1.Yêu cầu chức năng nghiệp vụ Giáo vụ 16Bảng 3.2.Yêu cầu chức năng nghiệp vụ Giảng viên 18Bảng 3.3.Yêu cầu chức năng nghiệp vụ Sinh viên 19Bảng 3.4 Yêu cầu phi chức năng 19Bảng 3.5 Mô tả Use case Sinh viên 20Bảng 3.6 Mô tả UseCase Giảng viên 21Bảng 3.7 Mô tả Use case Giáo vụ 23Bảng 3.8 Use case Đăng nhập 26Bảng 3.9 Use case Xem thông tin cá nhân 27Bảng 3.10 Use case Cập nhật thông tin cá nhân 27Bảng 3.11 Use case Xem danh sách đề tài được phép đăng ký 28Bảng 3.12 Use case Ghi danh vào đề tài 29Bảng 3.13 Use case Hủy đề tài 30Bảng 3.14 Use case Đề xuất đề tài 31Bảng 3.15 Use case Xem chi tiết đề tài 31Bảng 3.16 Use case Cập nhật thông tin cho đề tài 33Bảng 3.17 Use case Thêm đề tài 34Bảng 3.18 Use case Sửa đề tài 34Bảng 3.19 Use case Xóa đề tài 35Bảng 3.20 Use case Gửi đề tài lên Giáo vụ 36Bảng 3.21 Use case Xóa đề tài (Quản lý đề tài) 37Bảng 3.22 Use case Yêu cầu cập nhật bảng điểm 37Bảng 3.23 Use case Chọn nhóm thực hiện đề tài 38Bảng 3.24 Use case Chấm điểm đề tài hướng dẫn 39Bảng 3.25 Use case Chấm điểm đề tài phản biện 40Bảng 3.26 Use case Chấm điểm đề tài hội đồng 40Bảng 3.27 Use case Xem thông tin nhóm 42Bảng 3.28 Use case Xem lịch sử đề tài 42Bảng 3.29 Use case Xem thông tin chi tiết đề tài 43

Bảng 3.30 Use case Xác nhận đề tài thực hiện 44Bảng 3.31 Use case Phân công GVPB 44Bảng 3.32 Use case Tải xuống danh sách đề tài 45Bảng 3.33 Use case Xem danh sách sinh viên thực hiện 46Bảng 3.34 Use case Xem điểm chi tiết 47Bảng 3.35 Use case Xóa người dùng 48Bảng 3.36 Use case Thêm mới người dùng 48Bảng 3.37 Use case Thêm danh sách người dùng bằng file excel 49Bảng 3.38 Use case Thêm mới học kỳ 50Bảng 3.39 Use case Xóa học kỳ 51Bảng 3.40 Use case Cập nhật học kỳ 52Bảng 3.41 Use case Thêm mới đợt đăng ký 53Bảng 3.42 Use case Xóa đợt đăng ký 53Bảng 3.43 Use case Cập nhật đợt đăng ký 54Bảng 3.44 Use case Thêm mới phiếu đánh giá 55Bảng 3.45 Use case Xóa phiếu đánh giá 56Bảng 3.46 Use case Thêm mới tiêu chí 57Bảng 3.47 Use case Cập nhật tiêu chí 58Bảng 3.48 Use case Thêm mới hội đồng 58Bảng 3.49 Use case Xóa hội đồng 59Bảng 3.50 Use case Gán đề tài vào hội đồng 60Bảng 4.1.Thông tin các trường trong bảng Users 62Bảng 4.2.Thông tin các trường trong bảng Topics 63Bảng 4.3 Thông tin các trường trong bảng UserNotidications 64Bảng 4.4 Thông tin các trường trong bảng TopicCategory 64Bảng 4.5 Thông tin các trường trong bảng Semesters 65Bảng 4.6 Thông tin các trường trong bảng ScoreBoards 65Bảng 4.7 Thông tin các trường trong bảng RubricEvaluations 65Bảng 4.8 Thông tin các trường trong bảng Rubrics 66Bảng 4.9 Thông tin các trường trong bảng RegistrationPeriods 66

Bảng 4.10 Thông tin các trường trong bảng Majors 67Bảng 4.11 Thông tin các trường trong bảng GroupStudent 67Bảng 4.12 Thông tin các trường trong bảng Faculties 67Bảng 4.13 Thông tin các trường trong bảng Assemblies 68Bảng 5.1 Bảng chức vụ Giảng viên 92Bảng 6.1 Kế hoạch kiểm thử 122

1 Các vấn đề nghiên cứu

- Tìm hiểu thị trường, phân tích đối thủ để rút ra kinh nghiệm cho dự án

- Tìm hiểu các công nghệ để thực thi:

• Sử dụng NestJS để tạo và cung cấp API cho hệ thống

• Sử dụng ReactJS để tạo giao diện và thực hiện chức năng cho hệ thống

- Tìm hiểu cách tối ưu hệ thống, tốc độ tải dữ liệu thông qua việc cập nhật các version mới

2 Các vấn đề phát sinh

- Đảm bảo tính bảo mật của website

- Lưu trữ lại dữ liệu để có thể sử dụng cho mục đích sau này

- Cung cấp giải pháp nhanh chóng và thuận tiện cho người dùng

3 Các phương pháp giải quyết vấn đề

- Sử dụng JSON Web Token để đảm bảo yêu cầu bảo mật

- Xây dựng hệ thống với khả năng lưu trữ lại dữ liệu

- Xây dựng các chức năng rõ ràng để người dùng sử dụng

- Người dùng truy cập vào hệ thống được chia làm 3 quyền, đảm bảo yêu cầu bảo mật và toàn vẹn dữ liệu đối với từng loại người dùng

- Giao diện thân thiện với các chức năng dễ sử dụng với người dùng

- Cung cấp các chức năng cơ bản so với nhu cầu thực tế

- Tối ưu hiệu năng để tăng trải nghiệm cho người dùng

PHẦN 1: MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN 1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong bối cảnh sự phát triển mạnh mẽ của nền công nghiệp CNTT, việc xây dựng một website để quản lý đề tài không chỉ giúp tối ưu hóa quy trình quản lý đề tài mà còn mang lại nhiều lợi ích lớn cho cả sinh viên và giảng viên

Một trong những ưu điểm lớn nhất của việc triển khai một hệ thống quản lý đề tài trực tuyến là khả năng tiếp cận thông tin mọi nơi, mọi lúc Sinh viên có thể dễ dàng tra cứu và cập nhật thông tin về đề tài của mình, tiếp cận tài liệu liên quan và theo dõi tiến độ công việc một cách thuận lợi Đồng thời, giảng viên cũng có thể quản lý và đánh giá đề tài của sinh viên một cách hiệu quả hơn, giảm thiểu thời gian và công sức cho việc theo dõi và báo cáo

Ngoài ra, hệ thống quản lý đề tài còn giúp tăng cường tính minh bạch và công bằng trong quá trình đánh giá Việc có một cơ sở dữ liệu trực tuyến giúp đảm bảo rằng tất cả các thông tin liên quan đều được lưu trữ một cách an toàn và minh bạch, từ quá trình giao việc, tiến độ thực hiện đến kết quả đánh giá Điều này tạo ra một môi trường công bằng cho sinh viên, nâng cao chất lượng của quá trình học tập và nghiên cứu

Cuối cùng, việc triển khai website quản lý đề tài cũng góp phần nâng cao uy tín và tiếng tăm của Khoa CNTT Khả năng áp dụng công nghệ vào quá trình quản lý và giáo dục không chỉ thể hiện sự tiến bộ mà còn làm tăng giá trị thương hiệu của khoa, thu hút sự quan tâm từ cả sinh viên và doanh nghiệp Điều này đồng nghĩa với việc tạo ra một môi trường học tập chất lượng và làm tăng cơ hội nghề nghiệp cho sinh viên Khoa CNTT trong tương lai

Từ đó, nhóm em quyết định thực hiện đề tài Xây dựng website Quản lý Đề tài Khóa luận tốt nghiệp của Khoa CNTT

- Sinh viên: Là người sử dụng hệ thống với mục đích đăng kí đề tài mới hoặc đề tài có sẵn, quản lý đề tài đang thực hiện, nộp các báo cáo, thông tin cần thiết

- Giảng viên: Là người sử dụng hệ thống, với mục đích đăng kí các đề tài mới, lựa chọn nhóm sinh viên thực hiện đề tài, quản lý các đề tài mà mình đang hướng dẫn và phản biện, tham gia hội đồng bảo vệ đề tài, chấm điểm các đề tài

- Giáo vụ: Là người quản trị của hệ thống, với mục đích mở các học kì, đợt đăng kí, quản lý các phiếu chấm điểm, các hội đồng, người dùng của hệ thống, tải xuống thông tin các đề tài, bảng điểm của sinh viên

1.3 PHẠM VI NGHIÊN CỨU Đối với đề tài “Xây dựng website Quản lý Đề tài Khóa luận tốt nghiệp của Khoa CNTT”, nhóm tập trung nghiên cứu vào Sinh viên, Giảng viên và Giáo vụ hiện đang học tập, nghiên cứu và làm việc tại Khoa CNTT với nhu cầu tìm kiếm các giải phải công nghệ áp dụng vào việc dạy và học

Xây dựng được hệ thống với các chức năng cơ bản phục vụ cho việc Quản lý Đề tài của Khoa CNTT:

- Về phía Sinh viên: Có thể đăng kí thực hiện đề tài mới hoặc đề tài có sẵn, quản lý đề tài đang thực hiện, nộp các báo cáo, thông tin cần thiết

- Về phía Giảng viên: Có thể đăng kí các đề tài mới, lựa chọn nhóm sinh viên thực hiện đề tài, quản lý các đề tài mà mình đang hướng dẫn và phản biện, tham gia hội đồng bảo vệ đề tài, chấm điểm các đề tài, gửi yêu cầu cập nhật các báo cáo, thông tin cần thiết

TỔNG KẾT

THÔNG TIN VỀ PROJECT

7.2.1 Các đường link source code

ĐÁNH GIÁ HỆ THỐNG

7.3.1 Ưu điểm 7.3.2 Nhược điểm 7.3.3 Hướng phát triển

4 Danh mục tài liệu tham khảo

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

Phân tích dự án Xây dựng cơ sở dữ liệu

Khảo sát đề tài và phân tích xây dựng hệ thống

2 10/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

3 11/2023 Thực hiện dự án Viết và chỉnh sửa mã nguồn

Kiểm thử dự án Triển khai dự án Viết báo cáo

Viết và chỉnh sửa mã nguồn Viết testcase

Tp Hồ Chí Minh, ngày tháng năm 2023

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(ký và ghi rõ họ tên)

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

1.5 BẢNG PHÂN CÔNG CÔNG VIỆC 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1.1 Khái niệm về MERN Stack 4

2.1.2 Các thành phần trong MERN Stack 4

2.1.3 Cách MERN Stack hoạt động 5

2.1.4 Lợi thế của MERN Stack 6

2.3.2 Tại sao lại chọn ReactJS? 9

2.4 CƠ SỞ DỮ LIỆU MONGODB 11

2.6.1 JWT – Định nghĩa và ứng dụng trong bảo mật Client-Server 13

CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 15

3.1.1 Đặt vấn đề và Mục tiêu khảo sát 15

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

3.2.1.2 Yêu cầu chức năng hệ thống 19

3.2.2 Yêu cầu phi chức năng 19

3.4.1 Lược đồ Use case Sinh viên 20

3.4.2 Lược đồ Use case Giảng viên 21

3.4.3 Lược đồ Use case Giáo vụ 23

3.5.1.2 Xem thông tin cá nhân 27

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

3.5.2.1 Xem danh sách đề tài được đăng ký 28

3.5.2.2 Ghi danh vào đề tài 29

3.5.2.5 Xem chi tiết đề tài 31

3.5.2.6 Cập nhật thông tin cho đề tài 33

3.5.3.4 Gửi đề tài lên giáo vụ 36

3.5.3.5 Xóa đề tài (Quản lý đề tài) 37

3.5.3.6 Yêu cầu cập nhật bảng điểm 37

3.5.3.7 Chọn nhóm sinh viên thực hiện đề tài 38

3.5.3.8 Chấm điểm đề tài hướng dẫn 39

3.5.3.9 Chấm điểm đề tài phản biện 40

3.5.3.10 Hội đồng chấm điểm đề tài 40

3.5.3.12 Xem lịch sử đề tài 42

3.5.4.1 Xem chi tiết đề tài 43

3.5.4.2 Xác nhận đề tài thực hiện 44

3.5.4.4 Tải xuống danh sách đề tài 45

3.5.4.5 Xem danh sách sinh viên thực hiện 46

3.5.4.9 Thêm danh sách người dùng bằng file excel 49

3.5.4.13 Thêm mới đợt đăng ký 53

3.5.4.15 Cập nhật đợt đăng ký 54

3.5.4.16 Thêm mới phiếu đánh giá 55

3.5.4.22 Gán đề tài vào hội đồng 60

CHƯƠNG 4: THIẾT KẾ PHẦN MỀM 62

4.1 MÔ TẢ CƠ SỞ DỮ LIỆU 62

4.1.1 Thông tin các trường trong bảng 62

4.2 Hiện thực thông qua MongoDB 69

CHƯƠNG 5: TỔNG QUAN HỆ THỐNG 74

5.1 VAI TRÒ CỦA ỨNG DỤNG 74

5.1.1 Mô hình tổng quan của ứng dụng 74

5.1.2 Giới thiệu các ứng dụng 74

5.2 Ứng dụng web dành cho sinh viên 75

5.2.2.2 Luồng đề xuất đề tài 76

5.2.2.3 Luồng ghi danh đề tài 78

5.2.2.4 Luồng huỷ ghi danh đề tài 80

5.2.2.5 Luồng cập nhật thông tin bổ xung cho đề tài khoá luận đơn xin hướng dẫn, đơn xin bảo vệ ….) 81

5.2.2.6 Luồng xem thông tin chi tiết đề tài đã đăng ký thực hiện 83

5.3 Ứng dụng web dành giảng viên 84

5.3.2.1 Luồng quản lý đề tài 85

5.3.2.2 Luồng chỉnh sửa đề tài 87

5.3.2.3 Luồng gửi đề tài lên giáo vụ 89

5.3.2.4 Luồng chọn nhóm làm đề tài khoá luận 90

5.3.2.5 Luồng xem bảng điểm và chấm điểm cho sinh viên thực hiện đề tài

5.4 Ứng dụng web dành giáo vụ 95

5.4.2 Mô tả luồng hoạt động 96

5.4.2.3 Luồng cập thông tin học kì 98

5.4.2.4 Luồng thêm đợt đăng kí khoá luận trong học kì 100

5.4.2.5 Luồng chỉnh sửa đợt đăng kí 101

5.4.2.6 Luồng thêm phiếu đánh giá: 102

5.4.2.7 Luồng thêm tiêu chí vào phiếu đánh giá: 104

5.4.2.8 Luồng cập nhật tiêu chí đánh giá : 106

5.4.2.9 Luồng xoá phiếu đánh giá 107

5.4.2.10 Luồng áp dụng các phiếu đánh giá cho đợt đăng ký 108

5.4.2.13 Luồng cập nhật thông tin người dùng 111

5.4.2.14 Luồng thêm hội đồng vào hệ thống 112

5.4.2.15 Luồng xoá hội đồng khỏi hệ thống 114

5.4.2.16 Luồng xác nhận đề tài thực hiện 115

5.4.2.17 Luồng phân chia hội đồng phản biện cho các đề tài 117

5.4.2.18 Luồng phân công giảng viên phản biện 119

CHƯƠNG 6: KIỂM THỬ HỆ THỐNG 121

6.3 CHIẾN LƯỢC KIỂM THỬ ÁP DỤNG 121

6.4 CÁC PHƯƠNG PHÁP KIỂM THỬ 121

7.2.1 Các đường link source code 126

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

Hình 2.1.Sơ đồ hoạt động MERN Stack 5

Hình 2.3 One-way data binding 11

Hình 3.1 Lược đồ Use case Sinh viên 21

Hình 3.2 Lược đồ Use case Giảng viên 23

Hình 3.3 Lược đồ Use case Giáo vụ 25

Hình 4.1 Lượt đồ ERD của hệ thống 68

Hình 4.2 Bảng Topics trên MongoDB 69

Hình 4.3 Bảng Users trên MongoDB 70

Hình 4.4 Bảng UserNotifications trên MongoDB 70

Hình 4.5 Bảng TopicCategories trên MongoDB 71

Hình 4.6 Bảng Semesters trên MongoDB 71

Hình 4.7 Bảng ScoreBoards trên MongoDB 71

Hình 4.8 Bảng RubricEvaluations trên MongoDB 72

Hình 4.9 Bảng Rubrics trên MongoDB 72

Hình 4.10 Bảng RegistrationPeriods trên MongoDB 72

Hình 4.11 Bảng Majors trên MongoDB 73

Hình 4.12 Bảng GroupStudents trên MongoDB 73

Hình 4.13 Bảng Faculties trên MongoDB 73

Hình 4.14 Bảng Assemblies trên MongoDB 73

Hình 5.1 Giao diện đăng nhập 76

Hình 5.2 Sơ đồ luồng đăng nhập 76

Hình 5.4 Giao diện Form mẫu đề xuất đề tài 77

Hình 5.5 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 78

Hình 5.6 Giao diện danh sách đề tài đang mở trong đợt đăng kí 78

Hình 5.7 Giao diện thông tin chi tiết của đề tài 79

Hình 5.8 Lược đồ mô tả trình tự đề xuất đề tài của sinh viên 80

Hình 5.9 Giao diện hủy ghi danh đề tài đã đăng kí 80

Hình 5.10 Lược đồ mô tả trình tự huỷ đề tài của sinh viên 81

Hình 5.11 Giao diện cập nhật thông tin bổ sung cho đề tài 82Hình 5.12 Lược đồ mô tả trình tự cập nhật bổ sung thông tin 82Hình 5.13 Giao diện xem thông tin chi tiết đề tài đã đăng ký thực hiện 83Hình 5.14 Lược đồ mô tả trình tự xem chi tiết đề tài đã đăng ký 84Hình 5.15 Giao diện danh sách các đề tài giảng viên quản lí 85Hình 5.16 Giao diện thêm mới đề tài của giảng viên 86Hình 5.17 Lược đồ mô tả trình tự tạo đề tài của giảng viên 87Hình 5.18 Giao diện chi tiết đề tài của giảng viên 87Hình 5.19 Giao diện thêm chỉnh sửa đề tài của giảng viên 88Hình 5.20 Lược đồ mô tả trình tự chỉnh sửa đề tài của giảng viên 89Hình 5.21 Giao diện thêm chi tiết đề tài của giảng viên 89Hình 5.22 Lược đồ mô tả trình tự gửi đề tài của giảng viên lên giáo vụ 90Hình 5.23 Giao diện thêm chi tiết đề tài của giảng viên 91Hình 5.24 Lược đồ mô tả trình chọn nhóm làm đề tài 92Hình 5.25 Giao diện danh sách các đề tài mà giảng viên hướng dẫn 93Hình 5.26 Giao diện chi tiết đề tài hướng dẫn của giảng viên 94Hình 5.27 Giao diện phiếu chấm điểm của giảng viên hướng dẫn 95Hình 5.28 Lược đồ mô tả trình tự chấm điểm sinh viên 95Hình 5.29 Giao diện danh sách các học kì đang có trong hệ thống 96Hình 5.30 Giao diện thêm học kì của giáo vụ 97Hình 5.31 Lược đồ mô tả trình tự thêm học kì vào hệ thống 97Hình 5.32 Giao diện xóa học kỳ 98Hình 5.33 Lược đồ mô tả trình tự xóa học kì khỏi hệ thống 98Hình 5.34 Giao diện cập nhật học kỳ 99Hình 5.35 Lược đồ mô tả trình tự cập nhật học kì trên hệ thống 99Hình 5.36 Giao diện mở đợt đăng ký 100Hình 5.37 Lược đồ mô tả trình tự mở đợt đăng ký 101Hình 5.38 Giao diện chỉnh sửa đợt đăng ký 101Hình 5.39 Lược đồ mô tả trình tự chỉnh sửa đợt đăng ký 102Hình 5.40 Giao diện thêm phiếu đánh giá 103

Hình 5.41 Lược đồ mô tả trình tự thêm phiếu đánh giá 104Hình 5.42 Giao diện tạo số lượng tiêu chí 104Hình 5.43 Giao diện tạo tiêu chí dựa trên số lượng đã nhập 105Hình 5.44 Lược đồ mô tả trình tự tạo tiêu chí 105Hình 5.45 Giao diện cập nhật tiêu chí 106Hình 5.46 Lược đồ mô tả trình tự cập nhật tiêu chí 106Hình 5.47 Giao diện xóa phiếu đánh giá 107Hình 5.48 Lược đồ mô tả trình tự xóa phiếu đánh giá 107Hình 5.49 Giao diện áp dụng phiếu đánh giá cho đợt đăng ký 108Hình 5.50 Giao diện thêm mới người dùng 109Hình 5.51 Giao diện thêm người dùng bằng file excel 109Hình 5.52 Lược đồ mô tả trình tự thêm người dùng vào hệ thống 110Hình 5.53 Giao diện xóa người dùng 110Hình 5.54 Lược đồ mô tả trình tự xóa người dùng 111Hình 5.55 Giao diện cập nhật thông tin người dùng 111Hình 5.56 Lược đồ mô tả trình tự Cập nhật thông tin người dùng 112Hình 5.57 Giao diện tạo hội đồng 112Hình 5.58 Giao diện tạo hội đồng 113Hình 5.59 Lược đồ mô tả trình tự tạo hội đồng 113Hình 5.60 Giao diện xóa hội đồng 114Hình 5.61 Lược đồ mô tả trình tự Xóa hội đồng 115Hình 5.62 Giao diện danh sách đề tài chờ xác nhận 115Hình 5.63 Giao diện xác nhận đề tài thực hiện 116Hình 5.64 Lược đồ mô tả trình tự xác nhận đề tài thực hiện 116Hình 5.65 Giao diện phân chia hội đồng 117Hình 5.66 Giao diện phân công hội đồng cho các đề tài 118Hình 5.67 Lược đồ mô tả trình tự gán đề tài vào hội đồng 118Hình 5.68 Giao diện phân công giảng viên phản biện 119Hình 5.69 Giao diện chọn giảng viên phản biện 120Hình 5.70 Lược đồ mô tả trình tự phân công giảng viên phản biện 120

Hình 7.1 Nền tảng Cloud Cluster 126Hình 7.2 Quá trình deploy Back-end 127Hình 7.3 Test API Server 128

Bảng 3.1.Yêu cầu chức năng nghiệp vụ Giáo vụ 16Bảng 3.2.Yêu cầu chức năng nghiệp vụ Giảng viên 18Bảng 3.3.Yêu cầu chức năng nghiệp vụ Sinh viên 19Bảng 3.4 Yêu cầu phi chức năng 19Bảng 3.5 Mô tả Use case Sinh viên 20Bảng 3.6 Mô tả UseCase Giảng viên 21Bảng 3.7 Mô tả Use case Giáo vụ 23Bảng 3.8 Use case Đăng nhập 26Bảng 3.9 Use case Xem thông tin cá nhân 27Bảng 3.10 Use case Cập nhật thông tin cá nhân 27Bảng 3.11 Use case Xem danh sách đề tài được phép đăng ký 28Bảng 3.12 Use case Ghi danh vào đề tài 29Bảng 3.13 Use case Hủy đề tài 30Bảng 3.14 Use case Đề xuất đề tài 31Bảng 3.15 Use case Xem chi tiết đề tài 31Bảng 3.16 Use case Cập nhật thông tin cho đề tài 33Bảng 3.17 Use case Thêm đề tài 34Bảng 3.18 Use case Sửa đề tài 34Bảng 3.19 Use case Xóa đề tài 35Bảng 3.20 Use case Gửi đề tài lên Giáo vụ 36Bảng 3.21 Use case Xóa đề tài (Quản lý đề tài) 37Bảng 3.22 Use case Yêu cầu cập nhật bảng điểm 37Bảng 3.23 Use case Chọn nhóm thực hiện đề tài 38Bảng 3.24 Use case Chấm điểm đề tài hướng dẫn 39Bảng 3.25 Use case Chấm điểm đề tài phản biện 40Bảng 3.26 Use case Chấm điểm đề tài hội đồng 40Bảng 3.27 Use case Xem thông tin nhóm 42Bảng 3.28 Use case Xem lịch sử đề tài 42Bảng 3.29 Use case Xem thông tin chi tiết đề tài 43

Bảng 3.30 Use case Xác nhận đề tài thực hiện 44Bảng 3.31 Use case Phân công GVPB 44Bảng 3.32 Use case Tải xuống danh sách đề tài 45Bảng 3.33 Use case Xem danh sách sinh viên thực hiện 46Bảng 3.34 Use case Xem điểm chi tiết 47Bảng 3.35 Use case Xóa người dùng 48Bảng 3.36 Use case Thêm mới người dùng 48Bảng 3.37 Use case Thêm danh sách người dùng bằng file excel 49Bảng 3.38 Use case Thêm mới học kỳ 50Bảng 3.39 Use case Xóa học kỳ 51Bảng 3.40 Use case Cập nhật học kỳ 52Bảng 3.41 Use case Thêm mới đợt đăng ký 53Bảng 3.42 Use case Xóa đợt đăng ký 53Bảng 3.43 Use case Cập nhật đợt đăng ký 54Bảng 3.44 Use case Thêm mới phiếu đánh giá 55Bảng 3.45 Use case Xóa phiếu đánh giá 56Bảng 3.46 Use case Thêm mới tiêu chí 57Bảng 3.47 Use case Cập nhật tiêu chí 58Bảng 3.48 Use case Thêm mới hội đồng 58Bảng 3.49 Use case Xóa hội đồng 59Bảng 3.50 Use case Gán đề tài vào hội đồng 60Bảng 4.1.Thông tin các trường trong bảng Users 62Bảng 4.2.Thông tin các trường trong bảng Topics 63Bảng 4.3 Thông tin các trường trong bảng UserNotidications 64Bảng 4.4 Thông tin các trường trong bảng TopicCategory 64Bảng 4.5 Thông tin các trường trong bảng Semesters 65Bảng 4.6 Thông tin các trường trong bảng ScoreBoards 65Bảng 4.7 Thông tin các trường trong bảng RubricEvaluations 65Bảng 4.8 Thông tin các trường trong bảng Rubrics 66Bảng 4.9 Thông tin các trường trong bảng RegistrationPeriods 66

Bảng 4.10 Thông tin các trường trong bảng Majors 67Bảng 4.11 Thông tin các trường trong bảng GroupStudent 67Bảng 4.12 Thông tin các trường trong bảng Faculties 67Bảng 4.13 Thông tin các trường trong bảng Assemblies 68Bảng 5.1 Bảng chức vụ Giảng viên 92Bảng 6.1 Kế hoạch kiểm thử 122

1 Các vấn đề nghiên cứu

- Tìm hiểu thị trường, phân tích đối thủ để rút ra kinh nghiệm cho dự án

- Tìm hiểu các công nghệ để thực thi:

• Sử dụng NestJS để tạo và cung cấp API cho hệ thống

• Sử dụng ReactJS để tạo giao diện và thực hiện chức năng cho hệ thống

- Tìm hiểu cách tối ưu hệ thống, tốc độ tải dữ liệu thông qua việc cập nhật các version mới

2 Các vấn đề phát sinh

- Đảm bảo tính bảo mật của website

- Lưu trữ lại dữ liệu để có thể sử dụng cho mục đích sau này

- Cung cấp giải pháp nhanh chóng và thuận tiện cho người dùng

3 Các phương pháp giải quyết vấn đề

- Sử dụng JSON Web Token để đảm bảo yêu cầu bảo mật

- Xây dựng hệ thống với khả năng lưu trữ lại dữ liệu

- Xây dựng các chức năng rõ ràng để người dùng sử dụng

- Người dùng truy cập vào hệ thống được chia làm 3 quyền, đảm bảo yêu cầu bảo mật và toàn vẹn dữ liệu đối với từng loại người dùng

- Giao diện thân thiện với các chức năng dễ sử dụng với người dùng

- Cung cấp các chức năng cơ bản so với nhu cầu thực tế

- Tối ưu hiệu năng để tăng trải nghiệm cho người dùng

PHẦN 1: MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN 1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong bối cảnh sự phát triển mạnh mẽ của nền công nghiệp CNTT, việc xây dựng một website để quản lý đề tài không chỉ giúp tối ưu hóa quy trình quản lý đề tài mà còn mang lại nhiều lợi ích lớn cho cả sinh viên và giảng viên

Một trong những ưu điểm lớn nhất của việc triển khai một hệ thống quản lý đề tài trực tuyến là khả năng tiếp cận thông tin mọi nơi, mọi lúc Sinh viên có thể dễ dàng tra cứu và cập nhật thông tin về đề tài của mình, tiếp cận tài liệu liên quan và theo dõi tiến độ công việc một cách thuận lợi Đồng thời, giảng viên cũng có thể quản lý và đánh giá đề tài của sinh viên một cách hiệu quả hơn, giảm thiểu thời gian và công sức cho việc theo dõi và báo cáo

Ngoài ra, hệ thống quản lý đề tài còn giúp tăng cường tính minh bạch và công bằng trong quá trình đánh giá Việc có một cơ sở dữ liệu trực tuyến giúp đảm bảo rằng tất cả các thông tin liên quan đều được lưu trữ một cách an toàn và minh bạch, từ quá trình giao việc, tiến độ thực hiện đến kết quả đánh giá Điều này tạo ra một môi trường công bằng cho sinh viên, nâng cao chất lượng của quá trình học tập và nghiên cứu

Cuối cùng, việc triển khai website quản lý đề tài cũng góp phần nâng cao uy tín và tiếng tăm của Khoa CNTT Khả năng áp dụng công nghệ vào quá trình quản lý và giáo dục không chỉ thể hiện sự tiến bộ mà còn làm tăng giá trị thương hiệu của khoa, thu hút sự quan tâm từ cả sinh viên và doanh nghiệp Điều này đồng nghĩa với việc tạo ra một môi trường học tập chất lượng và làm tăng cơ hội nghề nghiệp cho sinh viên Khoa CNTT trong tương lai

Từ đó, nhóm em quyết định thực hiện đề tài Xây dựng website Quản lý Đề tài Khóa luận tốt nghiệp của Khoa CNTT

- Sinh viên: Là người sử dụng hệ thống với mục đích đăng kí đề tài mới hoặc đề tài có sẵn, quản lý đề tài đang thực hiện, nộp các báo cáo, thông tin cần thiết

- Giảng viên: Là người sử dụng hệ thống, với mục đích đăng kí các đề tài mới, lựa chọn nhóm sinh viên thực hiện đề tài, quản lý các đề tài mà mình đang hướng dẫn và phản biện, tham gia hội đồng bảo vệ đề tài, chấm điểm các đề tài

- Giáo vụ: Là người quản trị của hệ thống, với mục đích mở các học kì, đợt đăng kí, quản lý các phiếu chấm điểm, các hội đồng, người dùng của hệ thống, tải xuống thông tin các đề tài, bảng điểm của sinh viên

1.3 PHẠM VI NGHIÊN CỨU Đối với đề tài “Xây dựng website Quản lý Đề tài Khóa luận tốt nghiệp của Khoa CNTT”, nhóm tập trung nghiên cứu vào Sinh viên, Giảng viên và Giáo vụ hiện đang học tập, nghiên cứu và làm việc tại Khoa CNTT với nhu cầu tìm kiếm các giải phải công nghệ áp dụng vào việc dạy và học

Xây dựng được hệ thống với các chức năng cơ bản phục vụ cho việc Quản lý Đề tài của Khoa CNTT:

- Về phía Sinh viên: Có thể đăng kí thực hiện đề tài mới hoặc đề tài có sẵn, quản lý đề tài đang thực hiện, nộp các báo cáo, thông tin cần thiết

- Về phía Giảng viên: Có thể đăng kí các đề tài mới, lựa chọn nhóm sinh viên thực hiện đề tài, quản lý các đề tài mà mình đang hướng dẫn và phản biện, tham gia hội đồng bảo vệ đề tài, chấm điểm các đề tài, gửi yêu cầu cập nhật các báo cáo, thông tin cần thiết

Ngày đăng: 26/09/2024, 12:35

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w