Tải bản đầy đủ (.pdf) (87 trang)

Xây dựng website quản lý đồ án cho Khoa An toàn thông tin Học viện Kỹ thuật mật mã | Báo cáo đồ án tốt nghiệp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.22 MB, 87 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

XÂY DỰNG WEBSITE QUẢN LÝ ĐỒ ÁN
CHO KHOA AN TỒN THƠNG TIN

Ngành: An tồn thơng tin
Mã số: 7.48.02.02

Sinh viên thực hiện:
Nghiêm Đình Giang
Lớp:
Người hướng dẫn:
ThS. Dương Xuân Hiệp

Hà Nội, 2023


BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

XÂY DỰNG WEBSITE QUẢN LÝ ĐỒ ÁN
CHO KHOA AN TỒN THƠNG TIN

Ngành: An tồn thơng tin


Mã số: 7.48.02.02

Sinh viên thực hiện:
Nghiêm Đình Giang
Lớp: AT14D
Người hướng dẫn:
ThS. Dương Xuân Hiệp

Hà Nội, 2023


LỜI CẢM ƠN
Đầu tiên, tôi xin gửi lời cảm ơn chân thành tới các thầy cô trong học viện
Kỹ thuật Mật Mã nói chung cùng các thầy cơ trong hệ quản lý sinh viên và khoa
an tồn thơng tin nói riêng đã tận tình giảng dạy, truyền đạt cho tơi những kiến
thức và kinh nghiệm quý báu trong suốt thời gian là sinh viên học viện, cũng
như sự quan tâm và tạo mọi điều kiện thuận lợi cho tôi trong q trình thực hiện
đồ án.
Và để hồn thành Đồ án tốt nghiệp này, tôi xin được gửi lời cảm ơn chân
thành và sự biết ơn sâu sắc tới giảng viên hướng dẫn ThS. Dương Xuân Hiệp,
người thầy đã tận tình giúp đỡ, trực tiếp chỉ dạy, hướng dẫn tôi trong suốt quá
trình làm đồ án tốt nghiệp. Trong thời gian làm việc với thầy, không chỉ tiếp thu
được những kiến thức chun mơn mà tơi cịn học hỏi được tinh thần trách
nhiệm, thái độ làm việc nghiêm túc, hiệu quả từ thầy.
Sau cùng xin được gửi lời cảm ơn chân thành tới gia đình, bạn bè đã động
viên, đóng góp ý kiến và giúp đỡ tơi trong q trình học tập, nghiên cứu và hồn
thành đồ án tốt nghiệp.
Tơi xin chân thành cảm ơn!
Hà Nội, ngày 27 tháng 06 năm 2023.
Sinh viên thực hiện


Nghiêm Đình Giang

i


LỜI CAM ĐOAN
Tôi xin cam đoan bản đồ án này do tôi tự nghiên cứu dưới sự hướng dẫn
của giảng viên hướng dẫn ThS. Dương Xuân Hiệp.
Để hoàn thành đồ án này, tôi chỉ sử dụng những tài liệu đã ghi trong mục
tài liệu tham khảo, ngồi ra khơng sử dụng bất cứ tài liệu nào khác mà không
được ghi.
Nếu sai, tơi xin chịu mọi hình thức kỷ luật theo quy định của Học viện.

Hà Nội, ngày 27 tháng 06 năm 2023.
Sinh viên thực hiện

Nghiêm Đình Giang

ii


MỤC LỤC
LỜI CẢM ƠN ....................................................................................................... i
LỜI CAM ĐOAN ................................................................................................ ii
MỤC LỤC ........................................................................................................... iii
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT ...................................................... vi
DANH MỤC HÌNH VẼ .................................................................................... vii
DANH MỤC BẢNG BIỂU ............................................................................... vii
MỞ ĐẦU .............................................................................................................. x

CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ ĐỒ ÁN ................ 1
1.1. Khảo sát ....................................................................................................... 1
1.2. Phân tích bài tốn ........................................................................................ 1
1.3. Các u cầu chức năng của hệ thống .......................................................... 2
1.3.1. Chức năng quản lý đề tài .................................................................. 2
1.3.2. Chức năng quản lý đề xuất đề tài ...................................................... 3
1.3.3. Chức năng quản lý người dùng ......................................................... 3
1.3.4. Chức năng quản lý sinh viên............................................................. 3
1.3.5. Chức năng quản lý giảng viên quản lý ............................................. 3
1.3.6. Chức năng quản lý giảng viên phản biện.......................................... 3
1.3.7. Chức năng quản lý hội đồng bảo vệ ................................................. 3
1.4. Các yêu cầu an toàn của hệ thống ............................................................... 4
1.4.1. Xác thực ............................................................................................ 4
1.4.2. Phân quyền ........................................................................................ 4
1.4.3. Lọc dữ liệu đầu vào chống một số tấn công phổ biến ...................... 4
1.4.4. Mã hoá dữ liệu nhạy cảm .................................................................. 4
1.4.5. Xử lý lỗi ............................................................................................ 5
1.4.6. Kiểm tốn .......................................................................................... 5
1.5. Tìm hiểu ngơn ngữ lập trình sử dụng .......................................................... 5
1.5.1. Hệ quản trị cơ sở dữ liệu MySQL..................................................... 5
1.5.2. NestJS................................................................................................ 6
1.5.3. Angular.............................................................................................. 7
iii


CHƯƠNG 2. PHÂN TÍCH, THIẾT KẾ HỆ THỐNG QUẢN LÝ ĐỒ ÁN ... 9
2.1. Các chức năng chính của hệ thống.............................................................. 9
2.1.1. Chức năng quản lý người dùng ......................................................... 9
2.1.2. Chức năng quản lý sinh viên............................................................. 9
2.1.3. Chức năng quản lý đề tài ................................................................ 10

2.1.4. Chức năng quản lý đề xuất đề tài .................................................... 10
2.1.5. Chức năng quản lý giảng viên quản lý ........................................... 10
2.1.6. Chức năng quản lý giảng viên phản biện........................................ 11
2.1.7. Chức năng hội đồng bảo vệ ............................................................ 11
2.1.8. Chức năng quản lý tài khoản cá nhân ............................................. 11
2.2. Biểu đồ use case ........................................................................................ 12
2.2.1. Các tác nhân của hệ thống .............................................................. 12
2.2.2. Biểu đồ use case tổng quát .............................................................. 12
2.2.3. Biểu đồ use case quản lý đề tài ....................................................... 13
2.2.4. Biểu đồ use case quản lý đề xuất đề tài .......................................... 14
2.2.5. Biểu đồ use case quản lý người dùng ............................................. 15
2.2.6. Biểu đồ use case quản lý sinh viên ................................................. 16
2.2.7. Biểu đồ use case quản lý giảng viên quản lý .................................. 17
2.2.8. Biểu đồ use case quản lý giảng viên phản biện .............................. 18
2.2.9. Biểu đồ use case quản lý hội đồng bảo vệ ...................................... 19
2.3. Biểu đồ hoạt động ..................................................................................... 20
2.3.1. Biểu đồ hoạt động chức năng đăng nhập ........................................ 20
2.3.2. Biểu đồ hoạt động chức năng đăng xuất ......................................... 21
2.3.3. Biểu đồ hoạt động chức năng phê duyệt đề tài ............................... 22
2.3.4. Biểu đồ hoạt động chức năng thành lập danh sách hội đồng ......... 23
2.4. Cơ chế an toàn ........................................................................................... 24
2.4.1. Cơ chế xác thực............................................................................... 24
2.4.2. Cơ chế xác thực hai yếu tố .............................................................. 25
2.4.3. Cơ chế phân quyền.......................................................................... 27
2.4.4. Cơ chế lọc dữ liệu đầu vào chống một số tấn công phổ biến ......... 27
iv


2.4.5. Cơ chế mã hoá dữ liệu nhạy cảm .................................................... 28
2.4.6. Cơ chế xử lý lỗi ............................................................................... 29

2.4.7. Cơ chế kiểm toán ............................................................................ 30
2.5. Thiết kế cơ sở dữ liệu ................................................................................ 30
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG QUẢN LÝ ĐỒ ÁN ........................ 37
3.1. Xây dựng cơ sở dữ liệu ............................................................................. 37
3.2. Xây dựng các chức năng ........................................................................... 38
3.2.1. Chức năng đăng nhập và xác thực hai yếu tố ................................. 38
3.2.2. Chức năng quản lý đề tài ................................................................ 40
3.2.3. Chức năng quản lý đề xuất đề tài .................................................... 47
3.2.4. Chức năng quản lý người dùng ....................................................... 48
3.2.5. Chức năng quản lý sinh viên........................................................... 51
3.2.6. Chức năng quản lý giảng viên quản lý ........................................... 53
3.2.7. Chức năng quản lý giảng viên phản biện........................................ 55
3.2.8. Chức năng quản lý hội đồng bảo vệ ............................................... 57
3.2.9. Chức năng quản lý tài khoản cá nhân ............................................. 59
3.2.10. Chức năng xem thống kê ............................................................... 61
3.3. Đánh giá một số tính năng an tồn của hệ thống ...................................... 62
3.3.1. Xác thực hai yếu tố ......................................................................... 62
3.3.2. Xác thực và phân quyền.................................................................. 62
3.3.3. Giới hạn lưu lượng truy cập ............................................................ 64
3.3.4. Chống một số tấn công phổ biến .................................................... 65
KẾT LUẬN ........................................................................................................ 67
TÀI LIỆU THAM KHẢO ................................................................................ 68
PHỤ LỤC ........................................................................................................... 69

v


DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT

STT Từ viết tắt


Thuật ngữ đầy đủ/ Giải thích

1

API

Application Programming Interface

2

CSDL

Cơ sở dữ liệu

3

ERD

4

HTTP

5

JSON

JavaScript Object Notation

6


JWT

JSON Web Token

7

OTP

One Time Password (Mật khẩu dùng một lần)

8

SQL

9

URI

Uniform Resource Identifier

10

XSS

Cross-site Scripting (Tấn công script liên miền)

11

2FA


Two Factor Authentication (Xác thực hai bước)

Entity Relationship Diagram (Biểu đồ quan hệ giữa các
thực thể)
HyperText Transfer Protocol (Giao thức truyền siêu văn
bản)

Structured Query Language (Ngơn ngữ truy vấn có cấu
trúc)

vi


DANH MỤC HÌNH VẼ
Hình 2.1. Biểu đồ phân rã chức năng hệ thống ..................................................... 9
Hình 2.2. Biểu đồ phân rã chức năng quản lý người dùng ................................... 9
Hình 2.3. Biểu đồ phân rã chức năng quản lý sinh viên ....................................... 9
Hình 2.4. Biểu đồ phân rã chức năng quản lý đề tài ........................................... 10
Hình 2.5. Biểu đồ phân rã chức năng quản lý đề xuất đề tài .............................. 10
Hình 2.6. Biểu đồ phân rã chức năng quản lý giảng viên quản lý ...................... 10
Hình 2.7. Biểu đồ phân rã chức năng quản lý giảng viên phản biện .................. 11
Hình 2.8. Biểu đồ phân rã chức năng quản lý hội đồng bảo vệ .......................... 11
Hình 2.9. Biểu đồ phân rã chức năng quản lý tài khoản cá nhân........................ 11
Hình 2.10. Biểu đồ use case tổng quát ................................................................ 12
Hình 2.11. Biểu đồ use case quản lý đề tài ......................................................... 13
Hình 2.12. Biểu đồ use case quản lý đề xuất đề tài............................................. 14
Hình 2.13. Biểu đồ use case quản lý người dùng................................................ 15
Hình 2.14. Biểu đồ use case quản lý sinh viên ................................................... 16
Hình 2.15. Biểu đồ use case quản lý giảng viên quản lý .................................... 17

Hình 2.16. Biểu đồ use case quản lý giảng viên phản biện ................................ 18
Hình 2.17. Biểu đồ use case quản lý hội đồng bảo vệ ........................................ 19
Hình 2.18. Biểu đồ hoạt động chức năng đăng nhập .......................................... 20
Hình 2.20. Biểu đồ hoạt động chức năng đăng xuất ........................................... 21
Hình 2.21. Biểu đồ hoạt động chức năng phê duyệt đề tài ................................. 22
Hình 2.22. Biểu đồ hoạt động chức năng thành lập danh sách hội đồng ............ 23
Hình 2.23. Biểu đồ tuần tự luồng xác thực bằng JWT........................................ 25
Hình 2.24. Sơ đồ q trình kích hoạt xác thực hai bước thơng qua ứng dụng
Authentication ..................................................................................................... 26
Hình 2.25. Sơ đồ quá trình băm mật khẩu .......................................................... 28
Hình 2.26. Sơ đồ q trình mã hố/ giải mã AES ............................................... 29
Hình 3.1. Sơ đồ ERD........................................................................................... 37
Hình 3.2. Giao diện chức năng đăng nhập .......................................................... 38
Hình 3.3. Giao diện chức năng xác thực thơng qua ứng dụng ............................ 39
Hình 3.4. Giao diện chức năng xác thực thơng qua email .................................. 39
Hình 3.5. Giao diện danh sách đề tài .................................................................. 40
Hình 3.6. Giao diện thêm mới/ chỉnh sửa thông tin đề tài .................................. 41
Hình 3.7. Giao diện đề xuất đề tài....................................................................... 41
Hình 3.8. Giao diện xố đề tài............................................................................. 42
Hình 3.9. Giao diện nhập đề tài từ file Excel ...................................................... 42
Hình 3.10. Giao diện báo cáo tiến độ .................................................................. 43
Hình 3.11. Giao diện giảng viên hướng dẫn nhận xét ........................................ 44
Hình 3.12. Giao diện giảng viên phản biện nhận xét .......................................... 44
vii


Hình 3.13. Giao diện hội đồng chấm điểm ......................................................... 45
Hình 3.14. Giao diện chi tiết đề tài ..................................................................... 46
Hình 3.15. Giao diện danh sách đề xuất đề tài .................................................... 47
Hình 3.16. Giao diện phê duyệt đề tài................................................................. 47

Hình 3.17. Giao diện từ chối đề tài ..................................................................... 48
Hình 3.18. Giao diện danh sách người dùng ....................................................... 48
Hình 3.19. Giao diện thêm mới/ chỉnh sửa thơng tin người dùng ...................... 49
Hình 3.20. Giao diện chức năng nhập ngườ dùng từ file Excel.......................... 49
Hình 3.21. Giao diện kích hoạt/ huỷ kích hoạt người dùng ................................ 50
Hình 3.22. Giao diện chi tiết người dùng ............................................................ 50
Hình 3.23. Giao diện danh sách sinh viên........................................................... 51
Hình 3.24. Giao diện thêm mới/ chỉnh sửa thông tin sinh viên .......................... 51
Hình 3.25. Giao diện nhập sinh viên từ file Excel .............................................. 52
Hình 3.26. Giao diện xố sinh viên ..................................................................... 52
Hình 3.27. Giao diện danh sách giảng viên quản lý ........................................... 53
Hình 3.28. Giao diện thêm mới/ chỉnh sửa nhóm quản lý .................................. 53
Hình 3.29. Giao diện thành lập danh sách nhóm quản lý (1).............................. 54
Hình 3.30. Giao diện thành lập danh sách quản lý (2) ........................................ 54
Hình 3.31. Giao diện danh sách giảng viên phản biện........................................ 55
Hình 3.32. Giao diện thêm mới/ chỉnh sửa nhóm phản biện .............................. 55
Hình 3.33. Giao diện thành lập danh sách nhóm phản biện (1) .......................... 56
Hình 3.34. Giao diện thành lập danh sách nhóm phản biện (2) .......................... 57
Hình 3.35. Giao diện danh sách hội đồng ........................................................... 57
Hình 3.36. Giao diện thêm mới/ chỉnh sửa hội đồng .......................................... 58
Hình 3.37. Giao diện thành lập danh sách hội đồng (1) ..................................... 58
Hình 3.38. Giao diện thành lập danh sách hội đồng (2) ..................................... 59
Hình 3.39. Giao diện quản lý tài khoản cá nhân ................................................. 59
Hình 3.40. Giao diện thay đổi Email cá nhân ..................................................... 60
Hình 3.41. Giao diện thay đổi mật khẩu ............................................................. 60
Hình 3.42. Giao diện thay đổi phương thức xác thực ......................................... 61
Hình 3.43. Giao diện xem thống kê tổng quan ................................................... 61
Hình 3.44. Giao diện thơng báo khố đăng nhập thiết bị ................................... 62
Hình 3.45. API thơng báo chuỗi JWT khơng hợp lệ........................................... 63
Hình 3.46. Giao diện thơng báo người dùng khơng có quyền truy cập .............. 63

Hình 3.47. API thơng báo người dùng khơng có quyền truy cập ....................... 64
Hình 3.48. API thơng báo lỗi giới hạn lưu lượng truy cập ................................. 65
Hình 3.49. API thơng báo lỗi dữ liệu đầu vào khơng hợp lệ .............................. 66
Hình 3.50. Giao diện hiển thị dữ liệu chứa script ............................................... 66

viii


DANH MỤC BẢNG BIỂU
Bảng 2.1. Bảng departments (Khoa) ................................................................... 30
Bảng 2.3. Bảng users (Người dùng) .................................................................... 31
Bảng 2.4. Bảng user_sessions (Phiên người dùng) ............................................. 31
Bảng 2.5. Bảng user_events (Nhật ký hoạt động người dùng) ........................... 32
Bảng 2.6. Bảng semesters (Học kỳ) .................................................................... 32
Bảng 2.7. Bảng students (Sinh viên) ................................................................... 33
Bảng 2.8. Bảng projects (Đề tài) ......................................................................... 33
Bảng 2.9. Bảng project_progress (Tiến độ đồ án) .............................................. 34
Bảng 2.10. Bảng project_student (Đồ án - Sinh viên) ........................................ 35
Bảng 2.11. Bảng manager_staff (Giảng viên quản lý)........................................ 35
Bảng 2.12. Bảng reviewer_staff (Giảng viên phản biện).................................... 35
Bảng 2.13. Bảng examiner_council (Hội đồng bảo vệ) ...................................... 35
Bảng 2.14. Bảng examiner_council_user (Hội đồng bảo vệ - Người dùng) ...... 36

ix


MỞ ĐẦU
Trong những năm gần đây, nền công nghệ thông tin của nước ta đã có
những phát triển trên mọi lĩnh vực trong cuộc sống cũng như trong lịch vực
quản lý xã hội. Một trong những lĩnh vực được chú trọng nhất là các hệ thống

thơng tin quản lý nói chung. Tuy nhiên, hiện nay do quy mơ, tính phức tạp của
công việc ngày càng cao nên việc xây dựng hệ thống thông tin quản lý không
chỉ là việc lập trình đơn giản mà phải xây dựng một cách có hệ thống và đảm
bảo được các yêu cầu về an tồn thơng tin.
Việc quản lý đồ án tốt nghiệp sinh viên là một yêu cầu thiết yếu của mỗi
trường đại học. Để quản lý đồ án và lưu trữ có hiệu quả thì khơng đơn giản bởi
địi hỏi kỹ năng của người quản lý. Làm sao để vừa có thể kiểm soát được số
lượng đề tài của các khoá, các hệ đào tạo khác nhau vừa có thể lưu trữ nó làm tài
liệu cho các bạn sinh viên khố sau và đồng thời phân công giảng viên quản lý
một cách hợp lý. Việc quản lý và lưu trữ đồ án trước đây chủ yếu sử dụng
phương pháp thủ công, bản mềm, source code đồ án thường lưu trữ trên đĩa, …
chiếm diện tích lưu trữ lớn. Do đó, khi quản lý hay tìm kiếm mất nhiều thời gian
và cơng sức mà hiệu quả đem lại khơng cao, đơi khi cịn xảy ra sai sót hay mất
mát dữ liệu khơng đáng có. Hiện nay cơng tác quản lý đồ án tốt nghiệp sinh viên
của một số trường đại học nói chung và Khoa An tồn thơng tin - Học viện kỹ
thuật mật mã nói riêng cịn chưa đạt hiệu quả cao. Do đó, địi hỏi một cơng cụ
chun dụng trợ giúp cho công việc quản lý và lưu trữ đồ án tốt nghiệp sinh viên
là một nhu cầu tất yếu để đảm bảo hiệu quả và tiết kiệm được thời gian cho cán
bộ quản lý cũng như sinh viên và giảng viên.
Vì vậy, được sự hướng dẫn và giúp đỡ của ThS. Dương Xuân Hiệp, tôi đã
chọn đề tài: “Xây dựng website quản lý đồ án tốt nghiệp” làm đề tài cho đồ án
tốt nghiệp của mình. Mặc dù đã nỗ lực hết sức mình trong suốt thời gian nhận đề
tài nhưng với kiến thức có hạn của bản thân, chắc hẳn đồ án tốt nghiệp của tơi
khó tránh khỏi những thiếu sót. Tơi rất mong nhận được sự cảm thơng, những
lời góp ý và chỉ bảo tận tình của q thầy cô.
x


CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ ĐỒ ÁN
1.1. Khảo sát

Quản lý Đồ án tốt nghiệp sinh viên là một công việc rất quan trọng và
không thể thiếu trong các trường đại học nói chung và Học viện Kỹ thuật mật
mã nói riêng. Hàng năm, sau mỗi kỳ làm và bảo vệ đề tài tốt nghiệp của sinh
viên, người quản lý Đồ án tốt nghiệp sinh viên phải lưu lại các tài liệu liên quan
và các thông tin của đồ án tốt nghiệp để làm tài liệu tham khảo cho các bạn sinh
viên khóa sau. Thơng tin được lưu lại bao gồm: bản báo cáo tiến độ theo các đợt,
quyển báo cáo được lưu lại trong Khoa, các sản phẩm nghiên cứu của đồ án
được lưu trữ trên các đĩa CD đi kèm trong mỗi quyển báo cáo, nhận xét về của
đồ án như: nhận xét giáo viên hướng dẫn, nhận xét giáo viên phản biện, điểm
hội đồng bảo vệ của mỗi sinh viên. Tuy nhiên, bản mềm đồ án của các bạn sinh
viên vẫn chưa được lưu trữ lại. Danh sách giảng viên hướng dẫn, giảng viên
phản biện, hội đồng bảo vệ vẫn lưu lại thủ công trên các bản cứng.
Trong quá trình quản lý, khi người quản lý muốn tìm kiếm đề tài theo giảng
viên hướng dẫn, hay theo khoa đào tạo, … thì họ phải tìm kiếm rất thủ cơng, mất
nhiều thời gian và cơng sức cộng với việc lưu trữ lại các đồ án làm tài liệu tham
khảo cho các bạn sinh viên khóa sau rất cồng kềnh mất nhiều diện tích mà
khơng đầy đủ nhiều khi còn gây mất mát và hỏng dữ liệu.
Từ những thực tế trên, đặt ra một bài toán Quản lý Đồ án tốt nghiệp sinh
viên cho Khoa như sau: Xây dựng cơ sở dữ liệu để lưu các thơng tin liên quan
đến đồ án sinh viên, sau đó xây dựng phần mềm Quản lý Đồ án tốt nghiệp sinh
viên thực hiện các thao tác cập nhật các thông tin liên quan đến đồ án, tìm kiếm,
lưu trữ bản mềm và các sản phẩm nghiên cứu của đồ án.
1.2. Phân tích bài tốn
Quản lý Đồ án tốt nghiệp sinh viên Học viện Kỹ thuật mạt mã nhằm mục
đích quản lý và lưu trữ thông tin về đồ án tốt nghiệp sinh viên dễ dàng và chính
xác hơn, cho phép người sử dụng cập nhật, thống kê, tìm kiếm các thông tin về
Đồ án.
1



Từ những phân tích trên, có thể đưa ra các mục tiêu của hệ thống như sau:
Quản trị viên:
• Cập nhật dữ liệu và tìm kiếm thơng tin Đồ án một cách nhanh chóng,
chính xác.
• Thống kê, tìm kiếm các thông tin đồ án, giảng viên, ... theo các tiêu chí
khác nhau.
• Lưu trữ được bản mềm và các sản phẩm nghiên cứu của đồ án.
• Dễ dàng thành lập danh sách giảng viên quản lý đồ án, danh sách giảng
viên phản biện, các hội đồng bảo vệ.
Giảng viên quản lý/ Giảng viên hướng dẫn/ Giảng viên phản biện/ Thành
viên hội đồng bảo vệ:
• Tra cứu danh sách đồ án dưới sự quản lý, hướng dẫn, …
• Cập nhật báo cáo, tiến độ của sinh theo từng đợt báo cáo.
• Chấm điểm, đánh giá đồ án.
Người dùng:
• Xem các thơng tin về đồ án, giảng viên, ... một cách trực quan với các
thơng tin chi tiết đi kèm.
• Đề xuất các đề tài mới cho từng kỳ đồ án.
• Tìm kiếm đồ án, giảng viên theo các tiêu chí khác nhau: như tìm kiếm đồ
án theo khoa, theo tên, theo giảng viên hướng dẫn, …
1.3. Các yêu cầu chức năng của hệ thống
1.3.1. Chức năng quản lý đề tài
Chức năng quản lý đề tài bao gồm các tính năng cơ bản như thêm, sửa, xố
đề tài và xem thơng tin chi tiết đề tài. Giảng viên quản lý cũng có trách nhiệm
cập nhật báo cáo tiến độ của sinh viên theo từng đợt báo cáo. Điều này cho phép
giảng viên quản lý theo dõi tiến độ hoàn thành của sinh viên và đưa ra các biện
pháp hỗ trợ hoặc chỉnh sửa nếu cần thiết. Giảng viên hướng dẫn và giảng viên
phản biện có thể sử dụng tính năng nhận xét để đánh giá đề tài của sinh viên.
Hội đồng chấm điểm đề tài cũng có thể để cập nhật thơng tin điểm số sau khi
sinh viên bảo vệ thành công. Ngồi ra, hệ thống cịn cho phép quản trị viên nhập

danh sách đồ án thông qua file Excel.
2


1.3.2. Chức năng quản lý đề xuất đề tài
Chức năng quản lý đề xuất đề tài cho phép kiểm duyệt viên có thể xem
danh sách các đề xuất đề tài từ các giảng viên. Sau khi xem xét, kiểm duyệt viên
có thể từ chối hoặc phê duyệt các đề xuất này.
1.3.3. Chức năng quản lý người dùng
Chức năng quản lý người dùng cho phép người quản trị thêm mới hoặc
cập nhật thông tin tài khoản của người dùng vào hệ thống, bao gồm họ và tên,
địa chỉ, số điện thoại, email, ... Khi thêm một người dùng mới, hệ thống sẽ tự
động tạo một tài khoản và cấp quyền truy cập cho người dùng đó.
Chức năng thay đổi trạng thái tài khoản người dùng cho phép quản trị
viên tạm ngưng hoặc kích hoạt tài khoản của người dùng. Ngồi ra, quản trị viên
cũng có thể nhập danh sách người dùng thông qua file Excel. Chức năng này
cho phép quản trị viên tải lên file Excel chứa thông tin của nhiều người dùng
cùng một lúc, và hệ thống sẽ tự động thêm các người dùng này vào hệ thống.
1.3.4. Chức năng quản lý sinh viên
Chức năng quản lý sinh viên cho phép quản trị viên có thể thêm mới, cập
nhật hoặc xố sinh viên. Ngồi ra, quản trị viên cũng có thể nhập danh sách sinh
viên thông qua file Excel.
1.3.5. Chức năng quản lý giảng viên quản lý
Chức năng cho phép quản trị viên phân công giảng viên quản lý cho các
nhóm đồ án. Giảng viên quản lý sẽ có thể cập nhập báo cáo tiến độ cho các đồ
án do mình quản lý.
1.3.6. Chức năng quản lý giảng viên phản biện
Chức năng cho phép quản trị viên phân công giảng viên phản biện để
chấm các nhóm đồ án. Giảng viên phản biện sẽ có thể nhận xét, đánh giá và đề
nghị cho phép sinh viên được bảo vệ đồ án hay không.

1.3.7. Chức năng quản lý hội đồng bảo vệ
Chức năng cho phép quản trị viên thành lập các hội đồng bảo vệ. Sau khi
sinh viên bảo vệ đồ án thành công, hội đồng sẽ thực hiện cho điểm và thư ký hội
đồng sẽ cập nhật điểm của đồ án lên hệ thống.

3


1.4. Các yêu cầu an toàn của hệ thống
1.4.1. Xác thực
Phương thức xác thực cơ bản là sử dụng tài khoản và mật khẩu của người
dùng để xác thực. Sau khi xác thực bằng tài khoản và mật khẩu xong cần có một
phương thức xác thực khác để duy trì trạng thái đã đăng nhập của người dùng,
và đó là phương thức sử dụng JWT.
Ngồi ra, để tăng cường tính bảo mật thì người dùng có thể bật chức năng
xác thực hai yếu tố. Có hai hình thức nhận mã xác thực hai yếu tố là thông qua
email hoặc thông qua ứng dụng Authentication của bên thứ ba. Nếu người dùng
nhập sai mã xác thực quá ba lần, hệ thống sẽ khố chặn tài khoản đăng nhập trên
thiết bị đó trong 30 phút.
1.4.2. Phân quyền
Các tài khoản người dùng trong hệ thống đều được phân quyền rõ ràng, và
chỉ một loại quyền duy nhất. Việc phần quyền nhóm người dùng được thực hiện
theo nguyên tắc “Đặc quyền tối thiểu”, tức từng nhóm người dùng sẽ chỉ có
quyền thực hiện đúng các nhiệm vụ của người đó trong hệ thống. Ví dụ, cán bộ
giảng viên sẽ chỉ có thể thực hiện các chức năng như tra cứu đồ án, xem thông
tin đồ án và đề xuất đồ án. Còn kiểm duyệt viên chỉ có thể thực hiện các chức
năng tra cứu và phê duyệt các đồ án đã đề xuất, …
1.4.3. Lọc dữ liệu đầu vào chống một số tấn công phổ biến
Tất cả dữ liệu được gửi tới máy chủ hệ thống, từ người dùng, từ bên thứ
ba… đều sẽ cần được làm sạch qua các hàm lọc làm sạch dữ liệu, hàm lọc chống

các tấn công phổ biến như SQL injection, XSS… Trước khi được sử dụng, được
lưu vào cơ sở dữ liệu…
1.4.4. Mã hoá dữ liệu nhạy cảm
Các thông tin thông thường sẽ được lưu vào cơ sở dữ liệu dưới dạng rõ,
cịn các thơng tin nhạy cảm thì sẽ được lưu dưới dạng băm hoặc dạng mã hóa.
Cụ thể, mật khẩu đăng nhập của người dùng, hệ thống sẽ chỉ lưu dạng băm có
kèm muối, hệ thống không hề biết mật khẩu dạng rõ của người dùng.

4


1.4.5. Xử lý lỗi
Các thông báo lỗi được thông báo tới người dùng đều là những thông báo
lỗi đã được giản lược, loại bỏ hồn tồn các thơng tin về kĩ thuật. Các thông báo
lỗi này sẽ là các thông tin chung chỉ phục vụ mục đích thơng báo rằng thao tác
đó đã thất bại hoặc là các hướng dẫn người dùng thực hiện lại thao tác theo cách
hợp lệ.
1.4.6. Kiểm toán
Các hoạt động của người dùng, quản trị viên, kiểm duyệt viên tương tác
với hệ thống sẽ được lưu lại vào từng file csv theo từng ngày để thuận tiện cho
công việc truy vết sau này. Các hoạt động sẽ được ghi lại bao gồm: đăng nhập,
đăng xuất, đổi mật khẩu, thay đổi thông tin cá nhân, phê duyệt đồ án, thêm mới
đồ …
1.5. Tìm hiểu ngơn ngữ lập trình sử dụng
1.5.1. Hệ quản trị cơ sở dữ liệu MySQL
MySQL là một hệ quản trị cơ sở dữ liệu (DBMS) mã nguồn mở được sử
dụng rộng rãi trên toàn thế giới. Được phát triển bởi công ty MySQL AB và sau
đó được Sun Microsystems và Oracle Corporation mua lại, MySQL đã trở thành
một trong những DBMS phổ biến nhất trên thế giới.
MySQL được xây dựng trên ngôn ngữ lập trình C và C++ và hỗ trợ nhiều

hệ điều hành khác nhau như Windows, Linux, macOS và các hệ điều hành khác.
MySQL hỗ trợ nhiều loại lưu trữ dữ liệu, bao gồm InnoDB, MyISAM, Memory,
CSV và Archive, đáp ứng nhu cầu lưu trữ và truy xuất dữ liệu của các ứng dụng
khác nhau.
Với khả năng tích hợp với nhiều ngơn ngữ lập trình như PHP, Java, Python
và Javascript, MySQL giúp cho việc tương tác và quản lý dữ liệu trở nên dễ
dàng hơn. MySQL cung cấp các tính năng an tồn và bảo mật, bao gồm hệ
thống kiểm sốt truy cập người dùng, mã hóa dữ liệu, chống lại các cuộc tấn
công SQL Injection và các cuộc tấn công khác.
MySQL có khả năng sao lưu và phục hồi dữ liệu giúp đảm bảo an toàn
cho cơ sở dữ liệu. Bên cạnh đó, MySQL cũng cung cấp các tính năng quản lý cơ
5


sở dữ liệu như tạo, sửa, xoá và truy vấn dữ liệu. Điều này giúp cho các nhà phát
triển và quản trị viên cơ sở dữ liệu có thể thực hiện các hoạt động quản lý cơ sở
dữ liệu một cách dễ dàng và hiệu quả.
MySQL cũng hỗ trợ các tính năng tiên tiến như đa luồng, phân vùng dữ
liệu, index và truy vấn dữ liệu phức tạp. Điều này giúp cho việc truy xuất và xử
lý dữ liệu trở nên nhanh chóng và hiệu quả hơn. Ngồi ra, MySQL cũng hỗ trợ
các tính năng khác như đồng bộ hóa và sao chép dữ liệu, giúp cho việc quản lý
dữ liệu trong môi trường phân tán trở nên dễ dàng hơn.
1.5.2. NestJS
NestJS là một framework mã nguồn mở được xây dựng trên nền tảng
Node.js và TypeScript, cung cấp một kiến trúc ứng dụng có cấu trúc, tổ chức tốt
và dễ bảo trì. Với các tính năng mạnh mẽ như Dependency Injection,
Middleware, Pipe và Exception Filters, NestJS giúp cho việc phát triển ứng
dụng web trở nên dễ dàng hơn và tối ưu hóa được quy trình phát triển.
Một trong những tính năng đáng chú ý của NestJS là Dependency
Injection, cho phép người dùng sử dụng các đối tượng hoặc module khác trong

ứng dụng một cách dễ dàng, giúp cho quá trình phát triển trở nên linh hoạt hơn.
NestJS cung cấp cho người phát triển nhiều tính năng bảo mật để giúp bảo vệ
ứng dụng khỏi các lỗ hổng bảo mật và các cuộc tấn cơng.
• Middleware: NestJS hỗ trợ việc sử dụng Middleware cho phép can thiệp
vào quá trình xử lý request, kiểm tra dữ liệu, xác thực, lọc và xử lý dữ liệu
trước khi tiến hành xử lý các nghiệp vụ.
• Passport: NestJS hỗ trợ việc sử dụng Passport để xác thực người dùng.
Passport là một middleware xác thực phổ biến cho Node.js, cung cấp các
chiến lược xác thực đa dạng như Local, JWT, OAuth, ...
• Guards: NestJS cung cấp tính năng Guards để kiểm sốt quyền truy cập
vào các thành phần khác nhau của ứng dụng. Guards có thể được sử dụng
để xác định xem một người dùng có được phép truy cập vào một tài
nguyên hay không.

6


• Encryption: NestJS cung cấp các tính năng mã hóa để bảo vệ dữ liệu và
mật khẩu của người dùng. Bằng cách sử dụng các thuật tốn mã hóa như
bcrypt để mã hóa mật khẩu của người dùng để bảo vệ chúng khỏi các
cuộc tấn cơng.
• Input Validation: NestJS hỗ trợ việc kiểm tra đầu vào để bảo vệ ứng dụng
khỏi các lỗ hổng bảo mật. Bằng cách sử dụng class-validator và classtransformer, ta có thể kiểm tra đầu vào của người dùng và chuyển đổi
chúng thành đối tượng hợp lệ.
• CSRF Protection: NestJS hỗ trợ việc bảo vệ ứng dụng của bạn khỏi cuộc
tấn công Cross-Site Request Forgery (CSRF). Bằng cách sử dụng tính
năng CSRF của NestJS, ta có thể đảm bảo rằng yêu cầu đến ứng dụng của
bạn chỉ được gửi từ các nguồn tin cậy.
NestJS còn cung cấp cho người dùng một hệ thống module, cho phép
người dùng xây dựng các module độc lập và kết hợp chúng với nhau để tạo

thành một ứng dụng hoàn chỉnh. Ngồi ra, NestJS cũng tích hợp sẵn các thư
viện phổ biến như Express, Fastify, GraphQL, WebSocket, TypeORM,
Sequelize, Mongoose, Firebase, AWS, và nhiều thư viện khác để giúp người
dùng xây dựng các ứng dụng web và dịch vụ đa dạng.
1.5.3. Angular
Angular là một framework phát triển ứng dụng web được xây dựng và
duy trì bởi Google. Angular được phát triển từ phiên bản AngularJS ban đầu vào
năm 2010. Phiên bản đầu tiên của Angular (Angular 2) được phát hành vào năm
2016 và đã trở thành một trong những framework phổ biến nhất hiện nay.
Angular được phát triển dựa trên kiến trúc MVVM (Model-ViewViewModel) và sử dụng TypeScript, một ngôn ngữ lập trình mã nguồn mở, phát
triển bởi Microsoft. TypeScript là một phần mở rộng của JavaScript và cung cấp
cho người lập trình nhiều tính năng hơn để phát triển ứng dụng web đáp ứng và
dễ bảo trì hơn.

7


Angular cung cấp một loạt các tính năng và cơng cụ cho phát triển ứng
dụng web. Các tính năng chính của Angular bao gồm:
• Khả năng phát triển ứng dụng đáp ứng (responsive): Angular cung cấp
một loạt các công cụ để phát triển ứng dụng web, giúp ứng dụng hoạt
động tốt trên các thiết bị khác nhau.
• Khả năng tương tác với API: Angular cung cấp các công cụ để tương tác
với các API bằng cách sử dụng HTTP Client và các cơng cụ khác.
• Tính năng bảo mật: Angular cung cấp các tính năng bảo mật như XSS
(Cross Site Scripting) và CSRF (Cross Site Request Forgery) để bảo vệ
ứng dụng khỏi các cuộc tấn cơng.
• Khả năng tạo các ứng dụng đơn trang (Single Page Applications):
Angular cho phép bạn tạo các ứng dụng đơn trang mà không cần tải lại
trang, giúp cải thiện trải nghiệm người dùng.

Tính năng kiểm thử: Angular cung cấp các công cụ để kiểm thử ứng dụng
bằng cách sử dụng các thư viện kiểm thử như Jasmine và Protractor.

8


CHƯƠNG 2. PHÂN TÍCH, THIẾT KẾ HỆ THƠNG QUẢN LÝ ĐỒ ÁN
2.1. Các chức năng chính của hệ thống

Hệ thống quản lý đồ án
tốt nghiệp
Quản lý
người
dùng

Quản lý
sinh viên

Giảng viên
quản lý

Quản lý đồ Quản lý đề
xuất đồ án
án

Giảng
viên
phản
biện


Hội đồng
bảo vệ

Hình 2.1. Biểu đồ phân rã chức năng hệ thống
2.1.1. Chức năng quản lý người dùng
Quản lý người dùng
Xem danh
sách người
dùng

Thêm người
dùng

Xem, chỉnh
sửa thông tin
người dùng

Nhập danh
sách người
dùng qua file

Thay đổi
trạng thái
người dùng

Hình 2.2. Biểu đồ phân rã chức năng quản lý người dùng
2.1.2. Chức năng quản lý sinh viên
Quản lý sinh
viên


Xem danh sách
sinh viên

Cập nhật thông
tin sinh viên

Thêm sinh viên

Nhập danh sách
sinh viên qua file

Hình 2.3. Biểu đồ phân rã chức năng quản lý sinh viên

9


2.1.3. Chức năng quản lý đề tài
Quản lý đề tài

Xem danh
sách đồ án

Cập nhật
Thêm đồ án thông tin đồ
án

Nhập/ xuất
danh sách
đồ án qua
file


Đề xuất đồ
án

Hình 2.4. Biểu đồ phân rã chức năng quản lý đề tài
2.1.4. Chức năng quản lý đề xuất đề tài
Quản lý đề xuất đề tài

Xem danh sách đồ án
đã đề xuất

Xem thơng tin/ Xét
duyệt

Duyệt

Từ chối

Hình 2.5. Biểu đồ phân rã chức năng quản lý đề xuất đề tài
2.1.5. Chức năng quản lý giảng viên quản lý
Quản lý giảng viên quản

Xem danh sách
nhóm quản lý

Thêm nhóm
quản lý

Cập nhật thơng
tin nhóm


Xố nhóm

Thành lập danh
sách

Ngẫu nhiên

Thủ cơng

Hình 2.6. Biểu đồ phân rã chức năng quản lý giảng viên quản lý
10


2.1.6. Chức năng quản lý giảng viên phản biện
Quản lý giảng viên phản
biện
Xem danh sách
nhóm phản biện

Thêm nhóm
quản lý

Cập nhật thơng
tin nhóm

Thành lập danh
sách

Xố nhóm


Ngẫu nhiên

Thủ cơng

Hình 2.7. Biểu đồ phân rã chức năng quản lý giảng viên phản biện
2.1.7. Chức năng hội đồng bảo vệ
Hội đồng bảo vệ
Xem danh
sách hội
đồng

Thêm hội
đồng

Cập nhật
thơng tin hội
đồng

Xuất danh
sách hội
đồng

Xố hội đồng

Thành lập tổ
hội đồng
Ngẫu
nhiên
Thủ cơng


Hình 2.8. Biểu đồ phân rã chức năng quản lý hội đồng bảo vệ
2.1.8. Chức năng quản lý tài khoản cá nhân
Quản lý tài khoản cá nhân

Đổi mật khẩu

Xem/Thay đổi
thơng tin

Thay đổi hình thức
xác thực 2 bước

Xem phiên đăng
nhập/ nhật ký
hoạt động

Hình 2.9. Biểu đồ phân rã chức năng quản lý tài khoản cá nhân
11


2.2. Biểu đồ use case
2.2.1. Các tác nhân của hệ thống





Khách vãng lai
Người dùng (giảng viên)

Quản trị viên
Kiểm duyệt viên

2.2.2. Biểu đồ use case tổng quát

Hình 2.10. Biểu đồ use case tổng quát
Mô tả:
Trên đây là biểu đồ use case tổng quát của hệ thống, nó thể hiện tất cả các
tác nhân có trong hệ thống, tất cả các chức năng trong hệ thống mà từng tác
nhân có thể tác động được.

12


2.2.3. Biểu đồ use case quản lý đề tài

Hình 2.11. Biểu đồ use case quản lý đề tài
Mô tả:
Giảng viên và Quản trị viên có thể sử dụng chức năng Quản lý đề tài sau
khi đã đăng nhập vào hệ thống và đều thao tác được các chức năng cơ bản như
tra cứu và xem thông tin chi tiết đồ án. Giảng viên thơng thường có thể đề xuất
đồ án mới cho từng đợt đồ án. Giảng viên được phân cơng quản lý đồ án có thể
cập nhật báo cáo của sinh viên trong các đợt báo cáo tiến độ. Giảng viên hướng
dẫn và giảng viên phản biện có thể thực hiện nhận xét/ đánh giá kết quả nghiên
cứu đồ án của sinh viên. Đồng thời cũng đưa ra đề nghị cho sinh viên được bảo
vệ đồ án hay không. Sau khi sinh viên bảo vệ đồ án thành công, thư ký hội đồng
có thể cập nhật điểm số của đồ án lên hệ thống.
Quản trị viên có thể thêm mới, cập nhật thơng tin hoặc xố đồ án. Ngồi
ra, quản trị viên cũng có thể thêm mới danh sách đồ án thông qua file Excel.


13


×