ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG CÔNG CỤ HỖ TRỢ CÔNG TÁC GIAO ĐỀ TÀI BÁO CÁO TỐT NGHIỆP Ngành: An toàn thông tin Mã số: 7.48.02.02 Hà Nội, 2018 MụC LụC Danh mục kí hiệu và viết tắt iv Danh mục hình vẽ v Danh mục bảng vi Lời cảm ơn vii Lời nói đầu viii Chương 1. Khảo sát quy trình đăng ký và giao đề tài báo cáo tốt nghiệp 1 1.1. Quy trình đăng ký và giao đề tài báo cáo tốt nghiệp hiện hành 1 1.1.1. Thông báo kêu gọi đề xuất đề tài 1 1.1.2. Phê duyệt danh sách đề tài 2 1.1.3. Công bố danh sách đề tài và danh sách sinh viên đủ điều kiện làm đồ án tốt nghiệp 2 1.1.4. Đăng ký đề tài đồ án tốt nghiệp 2 1.1.5. Công bố kết quả đăng ký 3 1.1.6. Sau khi đăng ký đề tài 3 1.2. Một số hạn chế của quy trình hiện hành 3 1.3. Bài toán xây dựng công cụ hỗ trợ giao đề tài báo cáo tốt nghiệp 4 1.3.1. Yêu cầu chung 4 1.3.2. Yêu cầu về chức năng cho người quản trị 4 1.3.3. Yêu cầu về chức năng cho người hướng dẫn 4 1.3.4. Yêu cầu về chức năng cho sinh viên 5 1.4. Dự kiến những lợi ích đem lại từ công cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp 5 Chương 2. Phân tích thiết kế công cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp 6 2.1. Xây dựng biểu đồ Usecase 6 2.1.1. Biểu đồ Usecase Thành viên 6 2.1.2. Biểu đồ Usecase Admin 7 2.1.3. Biểu đồ Usecase Người hướng dẫn 9 2.1.4. Biểu đồ Usecase Sinh viên 10 2.2. Kịch bản cho các Usecase 12 2.2.1. Kịch bản chức năng Đăng nhập 12 2.2.2. Kịch bản chức năng Đăng xuất 13 2.2.3. Kịch bản chức năng Cập nhật thông tin 13 2.2.4. Kịch bản chức năng Quản lý niên khóa 14 2.2.5. Kịch bản chức năng Quản lý đợt đồ án 15 2.2.6. Kịch bản chức năng Quản lý quyền hạn 17 2.2.7. Kịch bản chức năng Quản lý thành viên 18 2.2.8. Kịch bản chức năng Quản lý đề tài người hướng dẫn 20 2.2.9. Kịch bản chức năng Phê duyệthủy duyệt đề tài người hướng dẫn đề xuất 21 2.2.10. Kịch bản chức năng Quản lý nhóm 23 2.2.11. Kịch bản chức năng đăng kýhủy đăng ký đề tài sinh viên 25 2.2.12. Kịch bản chức năng phê duyệthủy duyệt đơn đăng ký đề tài sinh viên 26 Chương 3. Xây dựng ứng dụng công cụ hỗ trợ công tác giao đề tái báo cáo tốt nghiệp 28 3.1. Lựa chọn ngôn ngữ lập trình 28 3.1.1. Giới thiệu ngôn ngữ lập trình PHP và hệ quản trị CSDL MySQL 28 3.1.2. Đặc điểm nổi bật của PHP và hệ quản trị CSDL MySQL 29 3.1.3. Mô hình MVC và HMVC 30 3.1.4. Lý do lựa chọn Framework 32 3.1.5. Framework CodeIgniter 32 3.2. Phân tích thiết kế cơ sở dữ liệu 34 3.2.1. Cơ sở dữ liệu tổng quát 34 3.2.2. Bảng thành viên 34 3.2.3. Bảng niên khóa 35 3.2.4. Bảng đợt đồ án 36 3.2.5. Bảng quyền hạn 36 3.2.6. Bảng đề tài 37 3.2.7. Bảng nhóm 37 3.2.8. Bảng đơn đăng ký đề tài 38 3.3. Phân tích các mối hiểm họa đối với một ứng dụng web và phương pháp phòng chống 38 3.3.1. Cross Site Scripting (XSS) 38 3.3.2. SQL Injection 39 3.3.3. Cross Site Request Forgeries (CSRF) 40 3.4. Lập trình cài đặt ứng dụng 42 3.4.1. Cấu trúc tổng quan ứng dụng 42 3.4.2. Module quản lý niên khóa 43 3.4.3. Module quản lý đợt đồ án 43 3.4.4. Module quản lý nhóm 44 3.4.5. Module template trang chủ và template truy cập không được phép 44 3.4.6. Module quản lý quyền hạn 45 3.4.7. Module tempalte header, footer, sidebar 45 3.4.8. Module quản lý đề tài quản trị viên 46 3.4.9. Module quản lý đề tài người hướng dẫn 47 3.4.10. Module quản lý đề tài sinh viên 47 3.4.11. Module quản lý thành viên 48 3.5. Giao diện ứng dụng 49 Kết luận 51 Tài liệu tham khảo 52 Phụ lục 53 DANH MụC KÍ HIệU VÀ VIếT TắT CSDL Cơ sở dữ liệu CSRF Cross Site Request Forgery HTML HyperText Markup Language HTTP HyperText Transfer Protocol HMVC Hierarchical ModelViewController MVC ModelViewController PHP Hypertext Preprocessor SQL Structured Query Language XSS Cross Site Scripting DANH MụC HÌNH Vẽ Hình 2.1 Biểu đồ Usecase Thành viên 6 Hình 2.2 Biểu đồ Usecase Admin 7 Hình 2.3 Biểu đồ Usecase Người hướng dẫn 9 Hình 2.4 Biểu đồ Usecase Sinh viên 10 Hình 3.1 Mô hình MVC (ModelViewController) 30 Hình 3.2 Mô hình HMVC (Hierarchical ModelViewController) 31 Hình 3.3 Cơ sở dữ liệu tổng quát 34 Hình 3.4 Mô tả phương pháp sử dụng Token ngăn chặn tấn công CSRF 41 Hình 3.5 Cấu trúc ứng dụng theo mô hình HMVC 42 Hình 3.6 Module quản lý niên khóa 43 Hình 3.7 Module quản lý đợt đồ án 43 Hình 3.8 Module quản lý nhóm 44 Hình 3.9 Module template trang chủ và template truy cập không được phép 44 Hình 3.10 Module quản lý quyền hạn 45 Hình 3.11 Module template header, footer, sidebar 45 Hình 3.12 Module quản lý đề tài quản trị viên 46 Hình 3.13 Module quản lý đề tài người hướng dẫn 47 Hình 3.14 Module quản lý đề tài sinh viên 47 Hình 3.15 Module quản lý thành viên 48 Hình 3.16 Giao diện danh sách thành viên hệ thống 49 Hình 3.17 Giao diện danh sách đề tài ngưới hướng dẫn 49 Hình 3.18 Giao diện quản lý nhóm 50 Hình 3.19 Giao diện danh sách đề tài khả dụng 50 DANH MụC BảNG Bảng 2.1 Kịch bản chức năng đăng nhập 12 Bảng 2.2 Kịch bản chức năng đăng xuất 13 Bảng 2.3 Kịch bản chức năng cập nhật thông tin 13 Bảng 2.4 Kịch bản chức năng quản lý niên khóa 14 Bảng 2.5 Kịch bản chức năng quản lý đợt đồ án 15 Bảng 2.6 Kịch bản chức năng quản lý quyền hạn 17 Bảng 2.7 Kịch bản chức năng quản lý thành viên 18 Bảng 2.8 Kịch bản chức năng quản lý đề tài người hướng dẫn 20 Bảng 2.9 Kịch bản chức năng phê duyệthủy duyệt đề tài người hướng dẫn 21 Bảng 2.10 Kịch bản chức năng quản lý nhóm 23 Bảng 2.11 Kịch bản chức năng đăng kýhủy đăng ký đề tài sinh viên 25 Bảng 2.12 Kịch bản chức năng phê duyệthủy duyệt đơn đăng ký đề tài sinh viên 26 Bảng 3.1 Bảng thành viên (tbl_user) 34 Bảng 3.2 Bảng niên khóa (tbl_academic_year) 35 Bảng 3.3 Bảng đợt đồ án (tbl_topic_batch) 36 Bảng 3.4 Bảng quyền hạn (tbl_role) 36 Bảng 3.5 Bảng đề tài (tbl_topic) 37 Bảng 3.6 Bảng nhóm (tbl_group) 38 Bảng 3.7 Bảng đơn đăng ký đề tài (tbl_reg) 38 LờI CảM ƠN Em xin gửi lời cảm ơn chân thành và sâu sắc đến các thầy cô trong Khoa An toàn thông tin, cũng như tất cả các thầy cô Học viện Kỹ thuật mật mã đã truyền đạt kiến thức, kinh nghiệm quý báu của mình cho em trong suốt quá trình học tập và nghiên cứu tại Học viện. Em xin gửi lời cảm ơn đặc biệt đến TS. Nguyễn Tuấn Anh, người đã truyền niềm đam mê nghiên cứu, sáng tạo cho em. Thầy là người đã tận tình hướng dẫn, hỗ trợ và tạo điều kiện tốt nhất để em hoàn thành đồ án này. Mặc dù đã nỗ lực cố gắng song đồ án này chắc chắn không thể tránh khỏi những hạn chế, thiếu sót. Em mong nhận được sự góp ý của quý thầy cô và các bạn. SINH VIÊN THỰC HIỆN ĐỒ ÁN Bùi Xuân Trường LờI NÓI ĐầU Ngày nay, với sự phát triển mạnh mẽ của khoa học công nghệ nói chung và công nghệ thông tin nói riêng, với những tính năng ưu việt, sự tiên dụng và được ứng dụng rộng rãi. Công nghệ thông tin đã trở thành nhân tố quan trọng, là một phần không thể thiếu được của nhiều ngành nghề, nó giúp tối ưu hóa hiệu quả công việc, tăng năng suất lao động. Cùng với sự phát triển của công nghệ, con người đã xây dựng lên rất nhiều ứng dụng để phục vụ cho nhu cầu và lợi ích của xã hội. Trong đó, phần mềm ứng dụng phục vụ cho công việc luôn là một trong những vấn đề cấp thiết mà các nhà lập trình viên luôn quan tâm. Dưới sự gợi ý của thầy giáo hướng dẫn TS. Nguyễn Tuấn Anh về một phần mềm ứng dụng có thể hỗ trợ công tác đăng ký và giao đề tài báo cáo tốt nghiệp tại Khoa An toàn thông tin. Yêu cầu của bài toán ứng dụng mới đáp ứng được công tác nghiệp vụ của các bên liên quan, giúp tối ưu hóa hiệu quả công việc, giải quyết được những bất cập, hạn chế của quy trình giao đồ án hiện hành,… Giờ đây, chỉ cần một chiếc máy tính nhỏ gọn có kết nối với internet có thể giúp quản lý và lưu trữ dữ liệu trong quá trình đăng ký đề tài báo cáo tốt nghiệp. Mục tiêu đặt ra khi thực hiện đồ án là: 1. Khảo sát quy trình đăng ký và giao đề tài báo cáo tốt nghiệp hiện hành. 2. Phân tích thiết kế và xây dựng ứng dụng công cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp tại Khoa An toàn thông tin. Sau khoảng thời gian thực hiện đồ án, cơ bản các mục tiêu về chức năng đã đáp ứng được, tuy nhiên sẽ không thể tránh khỏi những hạn chế, thiếu sót. Rất mong nhận được sự góp ý của quý thầy cô cũng như các bạn học viên để đề tài báo cáo này được hoàn thiện hơn. Em xin chân thành cảm ơn CHƯƠNG 1. KHảO SÁT QUY TRÌNH ĐĂNG KÝ VÀ GIAO Đề TÀI BÁO CÁO TốT NGHIệP Hàng năm, Học viện Kỹ thuật mật mã tổ chức các đợt đồ án tốt nghiệp cho sinh viên, trước mỗi đợt đồ án Học viện sẽ ra yêu cầu kêu gọi đề xuất đề tài và gửi tới các chuyên gia, người có chuyên môn có thể hướng dẫn sinh viên làm đồ án tốt nghiệp trong và ngoài Học viện. Sau khi hết thời hạn nhận đề xuất đề tài, Khoa An toàn thông tin sẽ tổng hợp danh sách đề tài từ người hướng dẫn và được thông qua bởi Hội đồng xét duyệt của Học viện trước khi công bố cho sinh viên đăng ký. Điều này nảy sinh bất cập khi người hướng dẫn muốn chỉnh sửa thông tin đề tài của mình khi danh sách đề tài đã được gửi về Khoa, quá trình chỉnh sửa sẽ trải qua nhiều công đoạn gây khó khăn cho các bên. Sau khi danh sách đề tài được công bố trên website của Học viện, sinh viên có thể tìm hiểu thông tin đề tài, yêu cầu đặt ra của người hướng để quyết định lựa chọn đề tài. Sinh viên đăng ký nên chọn nhiều hơn 1 phương án đề tài vì có thể đề tài mong muốn đăng ký đã có sinh viên khác đăng ký sớm hơn mình. Do sinh viên không nắm được đề tài nào còn khả dụng, đề tài nào đã có sinh viên đăng ký dẫn đến việc trao đổi thông tin giữa người hướng dẫn và sinh viên phải thực hiện nhiều lần gây mất thời gian, hiệu quả công việc không cao. Chuyên ngành An toàn thông tin được mở từ năm 2004 cho tới nay đã có 9 khóa sinh viên tốt nghiệp ra trường và hiện tại khóa An toàn thông tin 10 đang trong quá trình làm đồ án tốt nghiệp. Năm 2018, Học viện tổ chức tuyển sinh chuyên ngành An toàn thông tin với 420 chỉ tiêu. Số lượng sinh viên ngày càng tăng qua các năm dẫn đến nguy cơ nhầm lẫn, sai sót trong quá trình vận hành thống kê, lưu trữ, sửa đổi. Việc xây dựng và phát triển một ứng dụng có thể giúp hỗ trợ công tác quản lý và đăng ký đồ án tốt nghiệp tại Khoa An toàn thông tin trở nên rất cần thiết. Nó giúp tối ưu hóa thời gian, tăng hiệu quả công việc, khắc phục được những hạn và bất cập trong quy trình hiện hành. 1.1. Quy trình đăng ký và giao đề tài báo cáo tốt nghiệp hiện hành 1.1.1. Thông báo kêu gọi đề xuất đề tài Hàng năm, Học viện Kỹ thuật mật mã kêu gọi đề xuất đề tài và gửi tới các chuyên gia, người có chuyên môn có thể hướng dẫn sinh viên làm đồ án tốt nghiệp trong và ngoài Học viện. Đây là quá trình đầu tiên trong quy trình giao đồ án tốt nghiệp cho sinh viên. Trước mỗi đợt đăng ký đồ án, Khoa An toàn thông tin của Học viện sẽ ra thông báo kêu gọi đề xuất đề tài. Từ đó, các chuyên gia, người có chuyên môn,… sẽ tìm hiểu và đăng ký danh sách đề tài gửi về Khoa An toàn thông tin. Người hướng dẫn nếu có đề tài đề xuất có thể biên soạn và gửi nội dung đề tài qua thư điện tử hoặc gửi trực tiếp đến Khoa An toàn thông tin. 1.1.2. Phê duyệt danh sách đề tài Sau khi hết thời hạn nhận đề xuất đề tài từ người hướng dẫn, Khoa An toàn thông tin sẽ tổng hợp các đề tài được đăng ký. Để xét duyệt đề tài thông thường gồm 2 bước: Bước 1: Do khoa An toàn thông tin đảm nhiệm loại bỏ các đề tài trùng lặp, đề tài không phù hợp với sinh viên, đề tài đã làm của năm trước,... Bước 2: Sau khi duyệt sơ bộ thì danh sách đề tài sẽ được duyệt lại một lần nữa bởi Hội đồng xét duyệt đề tài của Học viện. 1.1.3. Công bố danh sách đề tài và danh sách sinh viên đủ điều kiện làm đồ án tốt nghiệp Sinh viên phải hoàn thành số lượng học phần quy định và điểm tĩnh lũy phải đạt đủ mới có thể nhận đồ án. Những sinh viên chưa đủ điều kiện làm đồ án sẽ phải đăng ký học bổ sung và học cải thiện cho đến khi đáp ứng đủ điều kiện mới được đăng ký. Đối với những sinh viên khóa trước, muốn thực hiện đồ án phải làm đơn trình lên Khoa An toàn thông tin từ đó khoa sẽ xem xét về đơn yêu cầu của sinh viên trước khi cho phép sinh viên được tham gia đợt đồ án. Danh sách đề tài và danh sách sinh viên đủ kiểu kiện làm đồ án tốt nghiệp sau khi được thông qua bởi Hội đồng xét duyệt của Học viện sẽ được công bố trên website của Học viện. 1.1.4. Đăng ký đề tài đồ án tốt nghiệp Sinh viên tìm hiểu danh sách đề tài và lựa chọn đề tài phù hợp với bản thân. Nếu có vấn đề liên quan đến đề tài nào đó, muốn được làm rõ thì có thể liên hệ trực tiếp với người hướng dẫn (Có thông tin liên hệ kèm theo mỗi đề tài). Mỗi đề tài đều có phần mô tả, phần yêu cầu về kiến thức và kỹ năng để có thể thực hiện đề tài. Sinh viên cần tìm đọc kỹ những thông tin này để cân nhắc về việc đăng ký. Sinh viên nên lựa chọn nhiều hơn 1 phương án đề tài, bởi có thể có sinh viên khác cũng muốn đăng ký và kịp đăng ký sớm hơn mình. 1.1.5. Công bố kết quả đăng ký Việc công bố được thực hiện qua thông báo trên website chính thức của Học viện Kỹ thuật mật mã. Kết quả đăng ký đề tài cũng được công bố trên website của Học viện. 1.1.6. Sau khi đăng ký đề tài Kể từ khi đăng ký đề tài thành công, sinh viên cần liên hệ trực tiếp với người hướng dẫn để bắt đầu nhận các chỉ thị cần thiết cho việc làm đồ án, bao gồm việc xây dựng đề cương đồ án tốt nghiệp để nộp về Khoa An toàn thông tin theo kế hoạch. 1.2. Một số hạn chế của quy trình hiện hành Đối với người hướng dẫn: Người hướng dẫn sau khi gửi danh sách đề xuất đề tài về Khoa An toàn thông tin, nếu muốn chỉnh sửa hoặc thay đổi thông tin về đề tài nào đó sẽ phải biên soạn lại nội dung và thực hiện gửi lại. Việc này trải qua nhiều công đoạn, nhiều bước dẫn đến khó khăn cho các bên. Không kiểm tra trực tiếp được những đề tài nào đề xuất đã được Khoa An toàn thông tin phê duyệt, những đề tài nào đã bị loại bỏ. Phải chờ danh sách đề tài công bố chính thức trên website của Học viện. Một số đề tài có nhiều hơn 1 sinh viên mong muốn đăng ký. Dẫn đến việc số lượng sinh viên đăng ký hẹn gặp người hướng dẫn để trao đổi về đề tài gây mất nhiều thời gian. Không kiểm tra trực tiếp được những đề tài nào đã được Khoa An toàn thông tin phê duyệt nhưng chưa có sinh viên đăng ký. Đối với sinh viên: Không nắm được những đề tài nào khả dụng, những đề tài nào sinh viên đăng ký đã được người hướng dẫn phê duyệt nên việc hẹn gặp người hướng dẫn diễn ra nhiều lần gây mất thời gian cho các bên. Không kiểm tra được những đề tài nào có sinh viên khác cùng đăng ký. Việc đăng ký đề tài theo nhóm không khả dụng. Đối với khoa An toàn thông tin: Việc tổng hợp đề tài đề xuất từ người hướng dẫn và phê duyệt vẫn thực hiện thực hiện thủ công. Số lượng sinh viên ngày càng tăng qua các năm nên nguy cơ nhầm lẫn, sai sót không thể tránh khỏi. Khả năng lưu trữ, tìm kiếm, sửa đổi còn gặp nhiều khó khăn, hạn chế. 1.3. Bài toán xây dựng công cụ hỗ trợ giao đề tài báo cáo tốt nghiệp Qua phân tích, làm rõ những khó khăn mà các bên liên quan gặp phải trong quy trình đăng ký và giao đồ án tốt nghiệp tại Khoa An toàn thông tin có thể nhận thấy rằng cần phải có một giải pháp thích hợp, giúp giải quyết những khó khăn đó cho các bên. Hiện nay, ứng dụng web là một giải pháp được sử dụng phổ biến trong các hệ thống quản lý. Vì vậy, bài toán được đặt ra ở đây là phát triển một ứng dụng web hỗ trợ quy trình đăng ký và giao đề tài đồ án tốt nghiệp tại Khoa An toàn thông tin với định hướng có thể mở rộng để áp dụng cho cả các đơn vị khác. Cụ thể các yêu cầu như sau 1.3.1. Yêu cầu chung Sản phẩm phải hướng đến đối tượng sử dụng là 3 bên chính liên quan đến quy trình đăng ký và giao đồ án tốt nghiệp: người quản trị, người hướng dẫn, và sinh viên. Sản phẩm phải phù hợp với quy trình đăng ký, giao đồ án hiện được áp dụng và dự kiến được áp dụng tại Khoa An toàn thông tin, bao gồm việc đăng ký đồ án theo nhóm sinh viên. Sản phẩm phải có giao diện thân thiện, dễ tiếp cận cho từng đối tượng sử dụng. Sản phẩm phải được đảm bảo an toàn, chống lại các tấn công phổ biến. Sản phẩm phải được thiết kế với khả năng nâng cấp, mở rộng. 1.3.2. Yêu cầu về chức năng cho người quản trị Người quản trị được cung cấp khả năng: Quản lý quyền hạn, phân vùng làm việc của các thành viên trong hệ thống. Thêm, bớt, chỉnh sửa thông tin về người hướng dẫn và sinh viên trong hệ thống. Quản lý phê duyệthủy duyệt đề tài người hướng dẫn đề xuất. Quản lý việc đăng ký đề tài theo từng đợt đồ án, niên khóa. Tổng hợp thông tin, xuất thông tin về đề tài, sinh viên, người hướng dẫn thành báo cáo. 1.3.3. Yêu cầu về chức năng cho người hướng dẫn Người hướng dẫn được cũng cấp khả năng: Cập nhật thông tin cá nhân, thay đổi mật khẩu tài khoản. Thêm, bớt, chỉnh sửa thông tin về danh sách đề tài đề xuất. Quản lý đề tài sinh viên đăng ký, phê duyệthủy duyệt, loại bỏ đơn đăng ký đề tài của sinh viên trong hệ thống. 1.3.4. Yêu cầu về chức năng cho sinh viên Sinh viên được cung cấp khả năng: Cập nhật thông tin cá nhân, thay đổi mật khẩu tài khoản. Thêm, bớt, chỉnh sửa, quản lý thông tin nhóm. Quản lý đăng ký đề tài, đăng kýhủy đăng ký đề tài trong hệ thống. Xem danh sách các sinh viên cùng đăng ký 1 đề tài. 1.4. Dự kiến những lợi ích đem lại từ công cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp Dựa vào mô tả bài toàn ở trên, có thể thấy việc xây dựng công cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp là cần thiết, cụ thể đem lại một số lợi ích sau Đối với người quản trị: Quản lý quyền hạn hệ thống, từ đó quyết định phân vùng làm việc của từng nhóm đối tượng trong hệ thống. Quản lý thành viên hệ thống, thêm, bớt, chỉnh sửa thông tin thành viên. Quản lý đề tài phê duyệthủy duyệt của người hướng dẫn đề xuất. Tổng hợp thông tin, xuất thông tin về đề tài, sinh viên, người hướng dẫn thành báo cáo một cách đơn giản và dễ sử dụng. Đối với người hướng dẫn: Cập nhật thông tin cá nhân, đổi mật khẩu tài khoản. Thêm, bớt, chỉnh sửa thông tin danh sách đề tài đề xuất. Phê duyệthủy duyệt, loại bỏ đơn đăng ký đề tài của sinh viên trong hệ thống một cách tối ưu và linh hoạt. Đối với sinh viên: Cập nhật thông tin cá nhân, đổi mật khẩu tài khoản. Sinh viên có thể dễ dàng tìm kiếm thông tin đề tài, người hướng dẫn, giúp tối ưu hóa thời gian (Danh sách đề tài đã được công bố rõ ràng trên hệ thống). Sinh viên có thể đăng ký đề tài theo nhóm. Việc đăng kýhủy đăng ký đề tài trở nên dễ dàng và thuận tiện. Sinh viên có thể kiểm tra những đề tài nào khả dụng, những đề tài nào có cùng sinh viên mong muốn đăng ký trên hệ thống sau đó sẽ đưa ra quyết định về việc đăng ký đề tài và liên hệ với người hướng dẫn. CHƯƠNG 2. PHÂN TÍCH THIếT Kế CÔNG Cụ Hỗ TRợ CÔNG TÁC GIAO Đề TÀI BÁO CÁO TốT NGHIệP Trong ứng dụng này, do quy mô về giới hạn và tầm hoạt động của hệ thống ở mức trung bình, nên em sẽ lựa chọn phân tích thiết kế và mô tả các kịch bản hoạt động thông qua biểu đồ Usecase (Use Case Diagram). Biểu đồ Usecase chỉ ra một số lượng các tác nhân ngoại cảnh và mối liên kết của chúng đối với Usecase mà hệ thống cung cấp. Một Usecase là một lời miêu tả của một chức năng mà hệ thống cung cấp. Lời miêu tả này được trình bày dưới dạng các kịch bản hoạt động và thể kèm theo biểu đồ hoạt động. 2.1. Xây dựng biểu đồ Usecase 2.1.1. Biểu đồ Usecase Thành viên Hình 2.1 Biểu đồ Usecase Thành viên Tóm tắt: Tên ca sử dụng: Thành viên. Tác nhân: Thành viên. Mục đích: Quản lý đăng nhập, đăng xuất, cập nhật thông tin. Mô tả chức năng: Hệ thống có 3 đối tượng chính: người quản trị, người hướng dẫn, và sinh viên. Cả 3 đối tượng đều có chức năng đăng nhập, đăng xuất, cập nhật thông tin tài khoản trên hệ thống. 2.1.2. Biểu đồ Usecase Admin Hình 2.2 Biểu đồ Usecase Admin Tóm tắt: Tên ca sử dụng: Admin. Tác nhân: Admin. Mục đích: quản lý quyền hạn, quản lý niên khóa, quản lý đợt đồ án, quản lý thành viên, quản lý đề tài người hướng dẫn đề xuất, quản lý đề tài sinh viên đăng ký đã được người hướng dẫn phê duyệt. Mô tả chức năng: Quản lý quyền hạn: thêm, bớt, chỉnh sửa quyền hạn, xem danh sách quyền hạn, chức năng tìm kiếm theo từ khóa. Quản lý niên khóa: thêm, bớt, chỉnh sửa niên khóa, xem danh sách niên khóa. Quản lý đợt đồ án: thêm, bớt, chỉnh sửa đợt đồ án, xem danh sách đợt đồ án. Quản lý thành viên: thêm, bớt, chỉnh sửa thành viên, xem danh sách thành viên, chi tiết thành viên, chức năng tìm kiếm và lọc theo từ khóa (Thành viên bao gồm: người quản trị, người hướng dẫn, sinh viên). Quản lý đề tài người hướng dẫn đề xuất: xem danh sách đề tài người hướng dẫn đề xuất, chi tiết đề tài người hướng dẫn đề xuất, chức năng phê duyệthủy duyệt đề tài của người hướng dẫn đề xuất, tìm kiếm và lọc theo từ khóa. Quản lý đề tài sinh viên đăng ký đã được người hướng dẫn phê duyệt: xem danh sách đề tài sinh viên đăng ký đã được người hướng dẫn phê duyệt, chi tiết đề tài sinh viên đăng ký đã được người hướng dẫn phê duyệt, chức năng tìm kiếm và lọc theo từ khóa, xuất thông tin dữ liệu thành báo cáo. 2.1.3. Biểu đồ Usecase Người hướng dẫn Hình 2.3 Biểu đồ Usecase Người hướng dẫn Tóm tắt: Tên ca sửa dụng: Người hướng dẫn Tác nhân: Người hướng dẫn Mục đích: Quản lý danh sách đề tài, quản lý danh sách đề tài sinh viên đăng ký. Mô tả chức năng: Quản lý danh sách đề tài của tôi: thêm, bớt, chỉnh sửa danh sách đề tài; xem danh sách đề tài, chi tiết đề tài, chức năng tìm kiếm theo từ khóa. Quản lý danh sách đề tài sinh viên đăng ký: xem danh sách đề tài sinh viên đăng ký, chi tiết đề tài sinh viên đăng ký, chức năng tìm kiếm theo từ khóa. Chức năng phê duyệthủy duyệt, xóa bỏ đề tài sinh viên đăng ký. 2.1.4. Biểu đồ Usecase Sinh viên Hình 2.4 Biểu đồ Usecase Sinh viên Tóm tắt: Tên ca sử dụng: Sinh viên Tác nhân: Sinh viên Mục đích: Quản lý nhóm, quản lý đề tài khả dụng, quản lý đề tài nhóm đăng ký, quản lý đề tài được phê duyệt. Mô tả chức năng: Quản lý nhóm: tạo nhóm, tham gia nhóm, rời nhóm, xem thông tin nhóm. Quản lý đề tài khả dụng: xem danh sách đề tài khả dụng, chi tiết đề tài khả dụng, danh sách nhóm cùng đăng ký đề tài, chức năng đăng ký đề tài, tìm kiếm đề tài theo từ khóa. Quản lý đề tài nhóm đăng ký: xem danh sách đề tài nhóm đăng ký, chi tiết đề tài nhóm đăng ký, chức năng hủy đề tài đăng ký. Quản lý đề tài được phê duyệt: xem danh sách đề tài được phê duyệt, chi tiết đề tài được phê duyệt. 2.2. Kịch bản cho các Usecase 2.2.1. Kịch bản chức năng Đăng nhập Bảng 2.1 Kịch bản chức năng đăng nhập Tên Usecase Đăng nhập Mục đích Mô tả cách thành viên đăng nhập vào hệ thống. Tác nhân Người quản trị, Người hướng dẫn, Sinh viên. Tiền điều kiện Là thành viên của hệ thống và được cấp tài khoản. Hậu điều kiện Nếu đăng nhập thành công, tác nhân sẽ được truy cập vào hệ thống. Kích hoạt Tác nhân chọn chức năng đăng nhập. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn đăng nhập vào hệ thống. 1. Hệ thống yêu cầu tác nhân nhập “Username” và “Password”. 2. Tác nhân nhập “Username” và “Password” và click nút “Đăng nhập”. 3. Hệ thống xác nhận tài khoản có hợp lệ không, nếu không hợp lệ thì thực hiện luồng A1, nếu hợp lệ thì chuyển thành viên vào hệ thống (Mặc định là trang chủ). Luồng sự kiện rẽ nhánh: Luồng A1: Nhập sai “Username” hoặc “Password”, “Username” không tồn tại trên hệ thống, tài khoản bị vô hiệu hóa. Hệ thống trở lại giao diện đăng nhập và hiển thị thông báo lỗi. Mối hiểm họa có thể xảy ra: Nguy cơ từ các cuộc tấn công XSS, SQL Injection từ form đăng nhập nếu như dữ liệu đầu vào không được chuẩn hóa. Nguy cơ từ các cuộc tấn công CSRF bằng cách sử dụng dụng quyền chứng thực của người dùng đối với một ứng dụng website. Dựa vào đó hacker có thể thực hiện chèn mã độc hay link đến website mà người dùng chứng thực. Cách phòng chống: Thực hiện chuẩn hóa dữ liệu đầu vào thông qua các bộ lọc. Lựa chọn phương thức POST thay cho phương thức GET đối với những form truyền dữ liệu quan trọng cần được bảo mật. Sử dụng Capcha, Token, kiểm tra địa chỉ IP, vv… 2.2.2. Kịch bản chức năng Đăng xuất Bảng 2.2 Kịch bản chức năng đăng xuất Tên Usecase Đăng xuất Mục đích Mô tả cách thành viên đăng xuất hệ thống. Tác nhân Người quản trị, Người hướng dẫn, Sinh viên. Tiền điều kiện Đã đăng nhập vào hệ thống. Hậu điều khiện Nếu ca sử dụng này thành công, tác nhân sẽ thoát khỏi hệ thống. Kích hoạt Tác nhân chọn chức năng đăng xuất. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn đăng xuất khỏi hệ thống. 1. Tác nhân click “Thoát” trên hệ thống. 2. Hệ thống xác nhận tác vụ đăng xuất và chuyển tác nhân đến trang đăng nhập. 2.2.3. Kịch bản chức năng Cập nhật thông tin Bảng 2.3 Kịch bản chức năng cập nhật thông tin Tên Usecase Cập nhật thông tin Mục đích Mô tả cách thành viên cập nhật thông tin cá nhân. Tác nhân chính Người quản trị, Người hướng dẫn, Sinh viên. Tiền điều kiện Đã đăng nhập vào hệ thống. Hậu điều khiện Nếu ca sử dụng này thành công, dữ liệu thông tin tác nhân sẽ được thay đổi. Kích hoạt Tác nhân chọn chức năng “Thông tin cá nhân”. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn cập nhật thông tin cá nhân. 1. Tác nhân click chọn “Cập nhật thông tin” trên hệ thống. Hệ thống chuyển tác nhân tới trang “Cập nhật thông tin”. 2. Tác nhân bổ sung thông tin cá nhân hoặc chỉnh sửa thông tin cá nhân và click “Cập nhật”. 3. Hệ thống cập nhật thông tin cá nhân, chuyển tác nhân về trang “Thông tin cá nhân” và hiển thị thông báo thành công. Mối hiểm họa có thể xảy ra: Dữ liệu được nhập vào từ tác nhân có thể do vô tình hoặc cố ý dẫn đến phát sinh lỗi thay đổi cấu trúc lưu trữ dữ liệu trong hệ thống. Dữ liệu được GET xuống từ URL không được chuẩn hóa trước khi thực hiện truy vấn. Cách phòng chống: Thực hiện chuẩn hóa dữ liệu đầu vào thông qua các bộ lọc. Dữ liệu được GET xuống từ URL cần được chuẩn hóa và ép kiểu trước khi thực hiện truy truy vấn. 2.2.4. Kịch bản chức năng Quản lý niên khóa Bảng 2.4 Kịch bản chức năng quản lý niên khóa Tên Usecase Quản lý niên khóa Mục đích Mô tả quản lý niên khóa của người quản trị. Tác nhân chính Người quản trị. Tiền điều kiện Đã đăng nhập hệ thống và có quyền hạn Admin. Hậu điều khiện Nếu ca sử dụng này thành công, dữ liệu về niên khóa sẽ được thêm vào, sửa đổi hay xóa khỏi hệ thống. Trong các trường hợp khác, hệ thống ở trạng thái không thay đổi. Kích hoạt Tác nhân chọn mục “Danh sách niên khóa”. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn quản lý niên khóa. 1. Tác nhân click chọn “Niên khóa”, hệ thống sẽ hiển thị mục “Danh sách niên khóa”. 2. Tác nhân click chọn “Danh sách niên khóa”, hệ thống chuyển tác nhân đến trang “Quản lý niên khóa”. 3. Tác nhân chọn hành động muốn thực hiện: 3.1. Thêm: Tác nhân chọn chức năng “Thêm mới niên khóa”, hệ thống sẽ chuyển tác nhân đến trang “Thêm mới niên khóa”. Tác nhân nhập mới dữ liệu trong form và click “Thêm mới”. Hệ thống sẽ kiểm tra xem dữ liệu có hợp lệ không, nếu không hợp lệ thực hiện luồng A1, nếu hợp lệ sẽ thêm mới niên khóa, chuyển tác nhân đến trang “Danh sách niên khóa” và hiển thị thông báo thành công. 3.2. Sửa: Tác nhân chọn chức năng “Chỉnh sửa niên khóa”, hệ thống sẽ chuyển tác nhân đến trang “Chỉnh sửa niên khóa”. Tác nhân tiến hành chỉnh sửa dữ liệu trong form và click “Cập nhật”. Hệ thống sẽ kiểm tra dữ liệu có hợp lệ không, nếu không hợp lệ sẽ thực hiện luồng A1, nếu hợp lệ sẽ chỉnh sửa niên khóa, chuyển tác nhân đến trang “Danh sách niên khóa” và hiển thị ra thông báo thành công. 3.3. Xóa: Tác nhân chọn chức năng “Xóa”, hệ thống sẽ hiển thị thông báo để xác minh xem tác nhân có muốn xóa thật sự hay không? Nếu tác nhân chấp nhận xóa, hệ thống sẽ tiến hành xóa niên khóa, chuyển tác nhân đến trang “Danh sách niên khóa” và hiển thị thông báo thành công. Luồng sự kiện rẽ nhánh: Luồng A1: Nhập thiếu các trường quy định bắt buộc trong form hoặc dữ liệu nhập vào không hợp lệ. Hệ thống hiển thị thông báo lỗi. Mối hiểm họa có thể xảy ra: Dữ liệu được nhập vào từ tác nhân có thể do vô tình hoặc cố ý dẫn đến phát sinh lỗi thay đổi cấu trúc lưu trữ dữ liệu trong hệ thống. Dữ liệu được GET xuống từ URL không được chuẩn hóa trước khi thực hiện truy vấn. Cách phòng chống: Thực hiện chuẩn hóa dữ liệu đầu vào thông qua các bộ lọc. Dữ liệu được GET xuống từ URL cần được chuẩn hóa và ép kiểu trước khi thực hiện truy truy vấn. 2.2.5. Kịch bản chức năng Quản lý đợt đồ án Bảng 2.5 Kịch bản chức năng quản lý đợt đồ án Tên Usecase Quản lý đợt đồ án Mục đích Mô tả quản lý đợt đồ án của quản trị viên. Tác nhân chính Quản trị viên. Tiền điều kiện Đã đăng nhập hệ thống và có quyền hạn Admin. Hậu điều khiện Nếu ca sử dụng này thành công, dữ liệu về đợt đồ án sẽ được thêm vào, sửa đổi hay xóa khỏi hệ thống. Trong các trường hợp khác, hệ thống ở trạng thái không thay đổi. Kích hoạt Tác nhân chọn mục “Danh sách đợt đồ án”. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn quản lý đợt đồ án. 1. Tác nhân click chọn “Niên khóa”, hệ thống sẽ hiển thị mục “Danh sách đợt đồ án”. 2. Tác nhân click chọn “Danh sách đợt đồ án”, hệ thống chuyển tác nhân đến trang “Quản lý đợt đồ án”. 3. Tác nhân chọn hành động muốn thực hiện: 3.1. Thêm: Tác nhân chọn chức năng “Thêm mới đợt đồ án”, hệ thống sẽ chuyển tác nhân đến trang “Thêm mới đợt đồ án”. Tác nhân chọn chức năng “Thêm mới đợt đồ án”, hệ thống sẽ chuyển tác nhân đến trang “Thêm mới đợt đồ án”. Tác nhân nhập mới dữ liệu trong form và click “Thêm mới”. Hệ thống sẽ kiểm tra xem dữ liệu có hợp lệ không, nếu không hợp lệ thực hiện luồng A1, nếu hợp lệ sẽ thêm mới đợt đồ án, chuyển tác nhân đến trang “Danh sách đợt đồ án” và hiển thị thông báo thành công. 3.2. Sửa: Tác nhân chọn chức năng “Chỉnh sửa đợt đồ án”, hệ thống sẽ chuyển đến giao diện “Chỉnh sửa đợt đồ án”. Tác nhân tiến hành chỉnh sửa dữ liệu trong form và click “Cập nhật”. Hệ thống sẽ kiểm tra dữ liệu có hợp lệ không, nếu không hợp lệ sẽ thực hiện luồng A1, nếu hợp lệ sẽ chỉnh sửa đợt đồ án, chuyển tác nhân đến trang “Danh sách đợt đồ án” và hiển thị thông báo thành công. 3.3. Xóa: Tác nhân chọn chức năng “Xóa”, hệ thống sẽ hiển thị thông báo để xác minh xem tác nhân có muốn xóa thật sự hay không? Nếu tác nhân chấp nhận xóa, hệ thống sẽ tiến hành xóa đợt đồ án, chuyển tác nhân đến trang “Danh sách đợt đồ án” và hiển thị thông báo thành công. Luồng sự kiện rẽ nhánh: Luồng A1: Nhập hoặc chọn thiếu các trường quy định bắt buộc trong form hoặc dữ liệu nhập vào không hợp lệ. Hệ thống hiển thị thông báo lỗi. Mối hiểm họa có thể xảy ra: Dữ liệu được nhập vào từ tác nhân có thể do vô tình hoặc cố ý dẫn đến phát sinh lỗi thay đổi cấu trúc lưu trữ dữ liệu trong hệ thống. Dữ liệu được GET xuống từ URL không được chuẩn hóa trước khi thực hiện truy vấn. Cách phòng chống: Thực hiện chuẩn hóa dữ liệu đầu vào thông qua các bộ lọc. Dữ liệu được GET xuống từ URL cần được chuẩn hóa và ép kiểu trước khi thực hiện truy truy vấn. 2.2.6. Kịch bản chức năng Quản lý quyền hạn Bảng 2.6 Kịch bản chức năng quản lý quyền hạn Tên Usecase Quản lý quyền hạn Mục đích Mô tả quản lý quyền hạn của quản trị viên. Tác nhân chính Quản trị viên. Tiền điều kiện Đã đăng nhập hệ thống và có quyền hạn Admin. Hậu điều khiện Nếu ca sử dụng này thành công, dữ liệu về quyền hạn sẽ được thêm vào, sửa đổi hay xóa khỏi hệ thống. Trong các trường hợp khác, hệ thống ở trạng thái không thay đổi. Kích hoạt Tác nhân chọn mục “Quyền hạn”. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn quản lý quyền hạn. 1. Tác nhân click chọn “Quyền hạn”. 2. Tác nhân chọn hành động muốn thực hiện: 2.1. Thêm: Tác nhân chọn chức năng “Thêm mới”, hệ thống chuyển tác nhân đến trang “Thêm mới quyền hạn”. Tác nhân nhập mới dữ liệu trong form, tích chọn quyền hạn và click “Thêm mới”. Hệ thống sẽ kiểm tra xem dữ liệu có hợp lệ không, nếu không hợp lệ thực hiện luồng A1, nếu hợp lệ sẽ thêm mới quyền hạn, chuyển tác nhân đến trang “Danh sách quyền hạn” và hiển thị thông báo thành công. 2.2. Sửa: Tác nhân chọn chức năng “Chỉnh sửa quyền hạn”, hệ thống sẽ chuyển đến trang “Chỉnh sửa quyền hạn”. Tác nhân tiến hành chỉnh sửa dữ liệu trong form, tích chọn quyền hạn và click “Cập nhật”. Hệ thống sẽ kiểm tra dữ liệu có hợp lệ không, nếu không hợp lệ sẽ thực hiện luồng A1, nếu hợp lệ sẽ chỉnh sửa quyền hạn, chuyển tác nhân đến trang “Danh sách quyền hạn” và hiển thị thông báo thành công. 2.3. Xóa: Tác nhân chọn chức năng “Xóa”, hệ thống sẽ hiển thị thông báo để xác minh xem tác nhân có muốn xóa thật sự hay không? Nếu tác nhân chấp nhận xóa, hệ thống sẽ tiến hành xóa quyền hạn, chuyển đến trang “Danh sách quyền hạn” và hiển thị thông báo thành công. 2.4. Tìm kiếm: Tác nhân nhập từ khóa tìm kiếm. Hệ thống sẽ trả về danh sách quyền hạn theo từ khóa tìm kiếm. Luồng sự kiện rẽ nhánh: Luồng A1: Nhập hoặc chọn thiếu các trường quy định bắt buộc trong form hoặc dữ liệu nhập vào không hợp lệ. Hệ thống hiển thị thông báo lỗi. Mối hiểm họa có thể xảy ra: Dữ liệu được nhập vào từ tác nhân có thể do vô tình hoặc cố ý dẫn đến phát sinh lỗi thay đổi cấu trúc lưu trữ dữ liệu trong hệ thống. Dữ liệu được GET xuống từ URL không được chuẩn hóa trước khi thực hiện truy vấn. Cách phòng chống: Thực hiện chuẩn hóa dữ liệu đầu vào thông qua các bộ lọc. Dữ liệu được GET xuống từ URL cần được chuẩn hóa và ép kiểu trước khi thực hiện truy truy vấn. 2.2.7. Kịch bản chức năng Quản lý thành viên Bảng 2.7 Kịch bản chức năng quản lý thành viên Tên Usecase Quản lý thành viên Mục đích Mô tả quản lý thành viên của quản trị viên. Tác nhân chính Quản trị viên. Tiền điều kiện Đã đăng nhập hệ thống và có quyền hạn Admin. Hậu điều khiện Nếu ca sử dụng này thành công, dữ liệu về thành viên sẽ được thêm vào, sửa đổi trên hệ thống. Trong các trường hợp khác, hệ thống ở trạng thái không thay đổi. Kích hoạt Tác nhân chọn mục “Thành viên”. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn quản lý thành viên. 1. Tác nhân click chọn “Thành viên”. 2. Tác nhân chọn hành động muốn thực hiện: 2.1. Thêm: Tác nhân chọn chức năng “Thêm mới”, hệ thống chuyển tác nhân đến trang “Thêm mới thành viên”. Tác nhân nhập mới dữ liệu trong form, chọn các mục cần thiết và click “Thêm mới”. Hệ thống sẽ kiểm tra xem dữ liệu có hợp lệ không, nếu không hợp lệ thực hiện luồng A1, nếu hợp lệ sẽ thêm mới thành viên, chuyển tác nhân đến trang “Danh sách thành viên” và hiển thị thông báo thành công. 2.2. Sửa: Tác nhân chọn chức năng “Chỉnh sửa thành viên”, hệ thống chuyển tác nhân đến trang “Chỉnh sửa thành viên”. Tác nhân tiến hành chỉnh sửa dữ liệu trong form, chọn các mục cần thiết và click “Cập nhật”. Hệ thống sẽ kiểm tra dữ liệu có hợp lệ không, nếu không hợp lệ sẽ thực hiện luồng A1, nếu hợp lệ sẽ chỉnh sửa thành viên, chuyển tác nhân đến trang “Danh sách thành viên” và hiển thị thông báo thành công. 2.3. Tìm kiếm: Tác nhân nhập từ khóa tìm kiếm. Hệ thống sẽ trả về danh sách thành viên theo từ khóa tìm kiếm. 2.4. Lọc: Tác nhân chọn lọc theo niên khóa. Hệ thống sẽ trả về danh sách thành viên theo điều kiện lọc. Luồng sự kiện rẽ nhánh: Luồng A1: Nhập hoặc chọn thiếu các trường quy định bắt buộc trong form hoặc dữ liệu nhập vào không hợp lệ. Hệ thống hiển thị thông báo lỗi. Mối hiểm họa có thể xảy ra: Dữ liệu được nhập vào từ tác nhân có thể do vô tình hoặc cố ý dẫn đến phát sinh lỗi thay đổi cấu trúc lưu trữ dữ liệu trong hệ thống. Dữ liệu được GET xuống từ URL không được chuẩn hóa trước khi thực hiện truy vấn. Cách phòng chống: Thực hiện chuẩn hóa dữ liệu đầu vào thông qua các bộ lọc. Dữ liệu được GET xuống từ URL cần được chuẩn hóa và ép kiểu trước khi thực hiện truy truy vấn. 2.2.8. Kịch bản chức năng Quản lý đề tài người hướng dẫn Bảng 2.8 Kịch bản chức năng quản lý đề tài người hướng dẫn Tên Usecase Quản lý đề tài người hướng dẫn Mục đích Mô tả quản lý đề tài của người hướng dẫn. Tác nhân chính Người hướng dẫn. Tiền điều kiện Đã đăng nhập hệ thống và có quyền hạn người hướng dẫn. Hậu điều khiện Nếu ca sử dụng này thành công, dữ liệu về đề tài của người hướng dẫn sẽ được thêm vào, sửa đổi hay xóa khỏi hệ thống. Trong các trường hợp khác, hệ thống ở trạng thái không thay đổi. Kích hoạt Tác nhân chọn mục “Danh sách đề tài”. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn quản lý đề tài. 1. Tác nhân click chọn “Danh sách đề tài”. 2. Tác nhân chọn hành động muốn thực hiện: 2.1. Thêm: Tác nhân chọn chức năng “Thêm mới”, hệ thống sẽ chuyển đến trang “Thêm mới đề tài”. Tác nhân nhập mới dữ liệu trong form, chọn các mục cần thiết và click nút “Thêm mới”. Hệ thống sẽ kiểm tra xem dữ liệu có hợp lệ không, nếu không hợp lệ thực hiện luồng A1, nếu hợp lệ sẽ thêm mới đề tài của tác nhân, chuyển tác nhân đến trang “Danh sách đề tài của tôi” và hiển thị thông báo thành công. 2.2. Sửa: Tác nhân chọn chức năng “Chỉnh sửa đề tài”, hệ thống chuyển tác nhân đến trang “Chỉnh sửa đề tài”. Tác nhân tiến hành chỉnh sửa dữ liệu trong form, chọn các mục cần thiết và click nút “Cập nhật”. Hệ thống sẽ kiểm tra dữ liệu có hợp lệ không, nếu không hợp lệ sẽ thực hiện luồng A1, nếu hợp lệ sẽ chỉnh sửa đề tài của tác nhân, chuyển tác nhân đến trang “Danh sách đề tài của tôi” và hiển thị thông báo thành công. 2.3. Tìm kiếm: Tác nhân nhập từ khóa tìm kiếm. Hệ thống sẽ trả về danh sách đề tài theo từ khóa tìm kiếm. Luồng sự kiện rẽ nhánh: Luồng A1: Nhập hoặc chọn thiếu các trường quy định bắt buộc trong form hoặc dữ liệu nhập vào không hợp lệ. Hệ thống hiển thị thông báo lỗi. Mối hiểm họa có thể xảy ra: Dữ liệu được nhập vào từ tác nhân có thể do vô tình hoặc cố ý dẫn đến phát sinh lỗi thay đổi cấu trúc lưu trữ dữ liệu trong hệ thống. Dữ liệu được GET xuống từ URL không được chuẩn hóa trước khi thực hiện truy vấn. Cách phòng chống: Thực hiện chuẩn hóa dữ liệu đầu vào thông qua các bộ lọc. Dữ liệu được GET xuống từ URL cần được chuẩn hóa và ép kiểu trước khi thực hiện truy truy vấn. 2.2.9. Kịch bản chức năng Phê duyệthủy duyệt đề tài người hướng dẫn đề xuất Bảng 2.9 Kịch bản chức năng phê duyệthủy duyệt đề tài người hướng dẫn Tên Usecase Phê duyệthủy duyệt đề tài người hướng dẫn đề xuất Mục đích Mô tả cách phê duyệthủy duyệt đề tài của người hướng dẫn đề xuất. Tác nhân chính Quản trị viên. Tiền điều kiện Đã đăng nhập hệ thống và có quyền hạn Admin. Hậu điều khiện Nếu ca sử dụng này thành công, đề tài của người hướng dẫn đề xuất sẽ được phê duyệthủy duyệt. Khi và chỉ khi đề tài của người hướng dẫn được phê duyệt thì sinh viên mới có thể đăng ký. Trong các trường hợp khác, hệ thống ở trạng thái không thay đổi. Kích hoạt Tác nhân chọn mục “Danh sách đề tài”. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn quản lý đề tài người hướng dẫn đề xuất. 1. Tác nhân click chọn “Danh sách đề tài”, hệ thống sẽ hiển thị mục “Danh sách đề tài người hướng dẫn đề xuất”. 2. Tác nhân click chọn “Danh sách đề tài người hướng dẫn đề xuất”, hệ thống chuyển tác nhân đến trang “Danh sách đề tài người hướng dẫn đề xuất”. 3. Tác nhân chọn hành động muốn thực hiện: 3.1. Phê duyệt: Tác nhân chọn đề tài người hướng dẫn đề xuất cần phê duyệt sau đó click nút “Phê duyệt”. Hệ thống sẽ xử lý phê duyệt đề tài người hướng dẫn đề xuất, chuyển tác nhân đến trang “Danh sách đề tài người hướng dẫn đề xuất” và hiển thị thông báo thành công. 3.2. Hủy duyệt: Tương tự như hành động phê duyệt. 3.3. Tìm kiếm: Tác nhân nhập từ khóa tìm kiếm. Hệ thống sẽ trả về danh sách đề tài theo từ khóa tìm kiếm. 3.4. Lọc: Tác nhân chọn lọc theo đợt đồ án. Hệ thống sẽ trả về danh sách đề tài theo điều kiện lọc. Mối hiểm họa có thể xảy ra: Dữ liệu được GET xuống từ URL không được chuẩn hóa trước khi thực hiện truy vấn. Cách phòng chống: Dữ liệu được GET xuống từ URL cần được chuẩn hóa và ép kiểu trước khi thực hiện truy truy vấn. 2.2.10. Kịch bản chức năng Quản lý nhóm Bảng 2.10 Kịch bản chức năng quản lý nhóm Tên Usecase Quản lý nhóm Mục đích Mô tả quản lý nhóm của sinh viên. Tác nhân chính Sinh viên. Tiền điều kiện Đã đăng nhập hệ thống và có quyền hạn Sinh viên. Hậu điều khiện Nếu ca sử dụng này thành công, tác nhân có thể tạo nhóm, rời nhóm, tham gia nhóm. Trong các trường hợp khác, hệ thống ở trạng thái không thay đổi. Kích hoạt Tác nhân chọn mục “Nhóm”. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn quản lý nhóm. 1. Tác nhân click chọn “Nhóm”, hệ thống sẽ hiển thị mục “Tạo nhóm”. 2. Tác nhân chọn hành động muốn thực hiện: 2.1. Tạo nhóm: Tác nhân click chọn “Tạo nhóm”, hệ thống chuyển tác nhân đến trang “Tạo nhóm”. Tác nhân click chọn “Tạo nhóm”. Hệ thống sẽ kiểm tra điều kiện có hợp lệ không, nếu không hợp lệ thực hiện luồng A1, nếu hợp lệ sẽ tạo nhóm mới, chuyển tác nhân đến trang “Thông tin nhóm” và hiển thị thông báo thành công. 2.2. Rời nhóm: Tác nhân click chọn “Thông tin nhóm”, hệ thống chuyển tác nhân đến trang “Thông tin nhóm”. Tác nhân click chọn “Rời nhóm”. Hệ thống sẽ kiểm tra điều kiện có hợp lệ không, nếu không hợp lệ thực hiện luồng A2, nếu hợp lệ sẽ xóa nhóm tác nhân đã tạo hoặc rời nhóm tác nhân đã tham gia, chuyển tác nhân đến trang “Tạo nhóm” và hiển thị thông báo thành công. 2.3. Tham gia nhóm: Tác nhân truy cập vào đường link tham gia nhóm được gửi từ nhóm trưởng. Tác nhân click chọn “Tham gia nhóm”. Hệ thống sẽ kiểm tra điều kiện có hợp lệ không, nếu không hợp lệ thực hiện luồng A3, nếu hợp lệ sẽ tham gia vào nhóm, chuyển tác nhân đến trang “Thông tin nhóm” và hiển thị thông báo thành công. Luồng sự kiện rẽ nhánh: Luồng A1: Nếu tác nhân đã tham gia vào nhóm trước đó sẽ không thể tạo nhóm mới. Hệ thống hiển thị thông báo lỗi. Luồng A2: Nếu tác nhân là nhóm trưởng sẽ không thể rời nhóm khi vẫn còn thành viên khác trong nhóm. Điều kiện khả dụng để rời nhóm đối với nhóm trưởng là không còn thành viên nào trong nhóm. Hệ thống hiển thị thông báo lỗi. Nếu nhóm đã đăng ký đề tài hoặc đề tài đăng ký đã được người hướng dẫn phê duyệt thì các thành viên trong nhóm sẽ không thể rời nhóm. Hệ thống hiển thị thông báo lỗi. Luồng A3: Tác nhân sẽ không thể tham gia nhóm khi nhóm tham gia đã đăng ký đề tài hoặc đề tài đăng ký đã được người hướng dẫn phê duyệt. Hệ thống hiển thị thông báo lỗi. Mối hiểm họa có thể xảy ra: Dữ liệu được GET xuống từ URL không được chuẩn hóa trước khi thực hiện truy vấn. Cách phòng chống: Dữ liệu được GET xuống từ URL cần được chuẩn hóa và ép kiểu trước khi thực hiện truy truy vấn. 2.2.11. Kịch bản chức năng đăng kýhủy đăng ký đề tài sinh viên Bảng 2.11 Kịch bản chức năng đăng kýhủy đăng ký đề tài sinh viên Tên Usecase Đăng kýhủy đăng ký đề tài Mục đích Mô tả cách sinh viên đăng kýhủy đăng ký đề tài. Tác nhân chính Sinh viên. Tiền điều kiện Đã đăng nhập hệ thống và có quyền hạn Sinh viên. Hậu điều khiện Nếu ca sử dụng này thành công, tác nhân có thể đăng kýhủy đăng ký đề tài. Trong các trường hợp khác, hệ thống ở trạng thái không thay đổi. Kích hoạt Tác nhân chọn mục “Danh sách đề tài”. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn đăng kýhủy đăng ký đề tài. 1. Tác nhân click chọn “Danh sách đề tài”. 2. Tác nhân chọn hành động muốn thực hiện: 2.1. Đăng ký đề tài: Tác nhân click chọn “Danh sách đề tài khả dụng”, hệ thống chuyển tác nhân đến trang “Danh sách đề tài khả dụng”. Tác nhân click chọn “Đăng ký”. Hệ thống sẽ kiểm tra điều kiện có hợp lệ không, nếu không hợp lệ thực hiện luồng A1, nếu hợp lệ sẽ thực hiện đăng ký đề tài, chuyển tác nhân đến trang “Đề tài nhóm đăng ký” và hiển thị thông báo thành công. 2.2. Hủy đăng ký đề tài: Tác nhân click chọn “Đề tài nhóm đăng ký”, hệ thống chuyển tác nhân đến trang “Đề tài nhóm đăng ký”. Tác nhân click chọn “Hủy bỏ”. Hệ thống sẽ kiểm tra điều kiện có hợp lệ không, nếu không hợp lệ thực hiện luồng A2, nếu hợp lệ sẽ thực hiện hủy bỏ đề tài nhóm đăng ký, chuyển tác nhân đến trang “Danh sách đề tài khả dụng” và hiển thị thông báo thành công. Luồng sự kiện rẽ nhánh: Luồng A1: Sinh viên chưa tạo nhóm hoặc chưa tham gia nhóm nào. Hệ thống sẽ hiện thị thông báo lỗi. Sinh viên đăng ký đề tài không phải nhóm trưởng. Hệ thống sẽ hiển thị thông báo lỗi. Sinh viên đã đăng ký đề tài hoặc đề tài đăng ký đã được người hướng dẫn phê duyệt. Hệ thống sẽ hiển thị thông báo lỗi. Luồng A2: Sinh viên hủy đăng ký đề tài không phải nhóm trưởng. Hệ thống sẽ hiển thị thông báo lỗi. Mối hiểm họa có thể xảy ra: Dữ liệu được GET xuống từ URL không được chuẩn hóa trước khi thực hiện truy vấn Cách phòng chống: Dữ liệu được GET xuống từ URL cần được chuẩn hóa và ép kiểu trước khi thực hiện truy truy vấn. 2.2.12. Kịch bản chức năng phê duyệthủy duyệt đơn đăng ký đề tài sinh viên Bảng 2.12 Kịch bản chức năng phê duyệthủy duyệt đơn đăng ký đề tài sinh viên Tên Usecase Phê duyệthủy duyệt đơn đăng ký Mục đích Mô tả cách phê duyệthủy duyệt đơn đăng ký đề tài của sinh viên. Tác nhân chính Người hướng dẫn. Tiền điều kiện Đã đăng nhập hệ thống và có quyền hạn Người hướng dẫn. Hậu điều khiện Nếu ca sử dụng này thành công, tác nhân có thể phê duyệthủy duyệt đơn đăng ký của sinh viên. Trong các trường hợp khác, hệ thống ở trạng thái không thay đổi. Kích hoạt Tác nhân chọn mục “Danh sách đề tài”. Luồng sự kiện chính: Ca này được sử dụng khi tác nhân muốn phê duyệthủy duyệt đơn đăng ký đề tài của sinh viên. 1. Tác nhân click chọn “Danh sách đề tài”. 2. Tác nhân chọn hành động muốn thực hiện: 2.1. Phê duyệt đề tài: Tác nhân click chọn “Danh sách đề tài sinh viên đăng ký”, hệ thống chuyển tác nhân đến trang “Danh sách đề tài sinh viên đăng ký”. Tác nhân click chọn “Phê duyệt”. Hệ thống sẽ thực hiện phê duyệt đơn đăng ký đề tài của sinh viên, chuyển tác nhân trở lại trang “Danh sách đề tài sinh viên đăng ký” và hiển thị thông báo thành công. 2.2. Hủy đăng ký đề tài: Tác nhân click chọn “Danh sách đề tài sinh viên đăng ký”, hệ thống chuyển tác nhân đến trang “Danh sách đề tài sinh viên đăng ký”. Tác nhân click chọn “Hủy duyệt”. Hệ thống sẽ thực hiện hủy duyệt đơn đăng ký đề tài của sinh viên, chuyển tác nhân trở lại trang “Danh sách đề tài sinh viên đăng ký” và hiển thị thông báo thành công. Mối hiểm họa có thể xảy ra: Dữ liệu được GET xuống từ URL không được chuẩn hóa trươc khi thực hiện truy vấn. Cách phòng chống: Dữ liệu được GET xuống từ URL cần được chuẩn hóa và ép kiểu trước khi thực hiện truy truy vấn. CHƯƠNG 3. XÂY DựNG ứNG DụNG CÔNG Cụ Hỗ TRợ CÔNG TÁC GIAO Đề TÁI BÁO CÁO TốT NGHIệP Nội dung của chương tập trung chủ yếu trình bày về việc lựa chọn ngôn ngữ lập trình, phân tích thiết kế cở sở dữ liệu thông qua các bảng, hình vẽ. Tìm hiểu các mối hiểm họa có thể xảy ra đối với một ứng dụng web và phương pháp phòng chống được áp dụng đối với ứng dụng. Cuối chương sẽ mô tả về cách thức vận hành, lập trình cài đặt, và giới thiệu tổng quan về giao diện phần mềm. 3.1. Lựa chọn ngôn ngữ lập trình 3.1.1. Giới thiệu ngôn ngữ lập trình PHP và hệ quản trị CSDL MySQL Ngôn ngữ lập trình PHP: PHP (Viết tắt hồi quy “PHP: Hypertext Preprocessor”) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới. Mặt khác, PHP là ngôn ngữ hoạt động cận kề với Webserver để thông dịch các yêu cầu từ World Wide Wed, sau đó nhận các trả lời từ Websserver chuyển tải đến trình duyệt Web nhằm đáp ứng các nhu cầu nào đó. Hệ quản trị CSDL MySQL: MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. MySQL được biên dịch dựa trên các nền khác nhau như Linux, Windows... MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,… Sự kết hợp giữa PHP và My SQL: Sự kết hợp giữa PHP và MySQL tạo nên một nền tảng tốt cho trang web. Số lượng người sử dụng ngôn ngữ này càng cao trong cộng đồng lập trình web, PHP và MySQL trở nên rất thông dụng. 3.1.2. Đặc điểm nổi bật của PHP và hệ quản trị CSDL MySQL Đặc điểm nổi bật của PHP: PHP là mã nguồn mở hỗ trợ nhiều framework. Tốc độ nhanh, dễ sử dụng. Chạy trên nhiều hệ điều hành. Truy cập bấy kỳ loại CSDL nào. Luôn được cải tiến và cập nhật. Tương thích với hầu hết các Server đang sử dụng hiện nay như Apache, IIS,... Đặc điểm nổi bật của hệ quản trị CSDL Mysql: Dễ dàng sử dụng: MySQL có thể dễ dàng cài đặt. Với các công cụ bên thứ 3 làm cho nó càng dễ đơn giản hơn để có thể sử dụng. Giàu tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ một hệ quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp. Bảo mật: Có rất nhiều tính năng bảo mật, một số ở cấp cao đều được xây dựng trong MySQL. Khả năng mở rộng: MySQL có thể xử lý rất nhiều dữ liệu và hơn thế nữa nó có thể được mở rộng nếu cần thiết. Nhanh và mạnh: Việc đưa ra một số tiêu chuẩn cho phép MySQL làm việc rất hiệu quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi. 3.1.3. Mô hình MVC và HMVC Hình 3.1 Mô hình MVC (ModelViewController) Mô hình MVC (Hình ) là viết tắt của ModelViewController, đây là một mô hình được tạo ra với mục đích quản lý và xây dựng dự án phần mềm có hệ thống hơn, cho phép tách biệt các mã nghiệp vụ và giao diện thành các phần riêng biệt giúp lập trình viên có thể quản lý và chỉnh sửa dễ dàng. Trong đó: Model: Có nhiệm vụ thao tác với CSDL, nghĩa là nó chứa tất cả các hàm, các phương thức truy vấn trực tiếp với dữ liệu và Controller sẽ thông qua các hàm, phương thức đó để lấy dữ liệu rồi gửi qua View. View: Có nhiệm vụ tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML, nói các khác View chính là các giao diện mà người dùng nhìn thấy trên trình duyệt. Controller: Đóng vai trò trung gian giữa Model và View. Nó có nhiệm vụ tiếp nhận y
ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG CÔNG CỤ HỖ TRỢ CÔNG TÁC GIAO ĐỀ TÀI BÁO CÁO TỐT NGHIỆP Ngành: An tồn thơng tin Mã số: 7.48.02.02 Hà Nội, 2018 MỤC LỤC Danh mục kí hiệu viết tắt iv Danh mục hình vẽ v Danh mục bảng .vi Lời cảm ơn vii Lời nói đầu .viii Chương Khảo sát quy trình đăng ký giao đề tài báo cáo tốt nghiệp .1 1.1 Quy trình đăng ký giao đề tài báo cáo tốt nghiệp hành .1 1.1.1 Thông báo kêu gọi đề xuất đề tài 1.1.2 Phê duyệt danh sách đề tài 1.1.3 Công bố danh sách đề tài danh sách sinh viên đủ điều kiện làm đồ án tốt nghiệp 1.1.4 Đăng ký đề tài đồ án tốt nghiệp 1.1.5 Công bố kết đăng ký 1.1.6 Sau đăng ký đề tài 1.2 Một số hạn chế quy trình hành 1.3 Bài tốn xây dựng cơng cụ hỗ trợ giao đề tài báo cáo tốt nghiệp 1.3.1 Yêu cầu chung 1.3.2 Yêu cầu chức cho người quản trị 1.3.3 Yêu cầu chức cho người hướng dẫn .4 1.3.4 Yêu cầu chức cho sinh viên 1.4 Dự kiến lợi ích đem lại từ công cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp .5 Chương Phân tích thiết kế cơng cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp .6 2.1 Xây dựng biểu đồ Use-case 2.1.1 Biểu đồ Use-case Thành viên 2.1.2 Biểu đồ Use-case Admin 2.1.3 Biểu đồ Use-case Người hướng dẫn .9 2.1.4 Biểu đồ Use-case Sinh viên 10 2.2 Kịch cho Use-case 12 2.2.1 Kịch chức Đăng nhập 12 2.2.2 Kịch chức Đăng xuất 13 2.2.3 Kịch chức Cập nhật thông tin 13 2.2.4 Kịch chức Quản lý niên khóa 14 2.2.5 Kịch chức Quản lý đợt đồ án 15 2.2.6 Kịch chức Quản lý quyền hạn 17 2.2.7 Kịch chức Quản lý thành viên 18 2.2.8 Kịch chức Quản lý đề tài người hướng dẫn 20 2.2.9 Kịch chức Phê duyệt/hủy duyệt đề tài người hướng dẫn đề xuất 21 2.2.10 Kịch chức Quản lý nhóm 23 2.2.11 Kịch chức đăng ký/hủy đăng ký đề tài sinh viên 25 2.2.12 Kịch chức phê duyệt/hủy duyệt đơn đăng ký đề tài sinh viên 26 Chương Xây dựng ứng dụng công cụ hỗ trợ công tác giao đề tái báo cáo tốt nghiệp 28 3.1 Lựa chọn ngôn ngữ lập trình 28 3.1.1 Giới thiệu ngơn ngữ lập trình PHP hệ quản trị CSDL MySQL .28 3.1.2 Đặc điểm bật PHP hệ quản trị CSDL MySQL 29 3.1.3 Mơ hình MVC HMVC 30 3.1.4 Lý lựa chọn Framework .32 3.1.5 Framework CodeIgniter 32 3.2 Phân tích thiết kế sở liệu 34 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 Cơ sở liệu tổng quát .34 Bảng thành viên 34 Bảng niên khóa 35 Bảng đợt đồ án 36 Bảng quyền hạn 36 Bảng đề tài 37 Bảng nhóm 37 Bảng đơn đăng ký đề tài 38 3.3 Phân tích mối hiểm họa ứng dụng web phương pháp phòng chống 38 3.3.1 Cross Site Scripting (XSS) 38 3.3.2 SQL Injection .39 3.3.3 Cross Site Request Forgeries (CSRF) .40 3.4 Lập trình cài đặt ứng dụng 42 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 Cấu trúc tổng quan ứng dụng 42 Module quản lý niên khóa 43 Module quản lý đợt đồ án 43 Module quản lý nhóm 44 Module template trang chủ template truy cập không phép 44 3.4.6 Module quản lý quyền hạn 45 3.4.7 Module tempalte header, footer, sidebar 45 3.4.8 Module quản lý đề tài quản trị viên 46 3.4.9 Module quản lý đề tài người hướng dẫn 47 3.4.10.Module quản lý đề tài sinh viên 47 3.4.11 Module quản lý thành viên 48 3.5 Giao diện ứng dụng 49 Kết luận 51 Tài liệu tham khảo .52 Phụ lục 53 DANH MỤC KÍ HIỆU VÀ VIẾT TẮT CSDL Cơ sở liệu CSRF Cross Site Request Forgery HTML HyperText Markup Language HTTP HyperText Transfer Protocol HMVC Hierarchical Model-View-Controller MVC Model-View-Controller PHP Hypertext Preprocessor SQL Structured Query Language XSS Cross Site Scripting DANH MỤC HÌNH VẼ Hình 2.1 Biểu đồ Use-case Thành viên Hình 2.2 Biểu đồ Use-case Admin Hình 2.3 Biểu đồ Use-case Người hướng dẫn Hình 2.4 Biểu đồ Use-case Sinh viên 10 Hình 3.1 Mơ hình MVC (Model-View-Controller) .30 Hình 3.2 Mơ hình HMVC (Hierarchical Model-View-Controller) .31 Hình 3.3 Cơ sở liệu tổng quát 34 Hình 3.4 Mơ tả phương pháp sử dụng Token ngăn chặn công CSRF .41 Hình 3.5 Cấu trúc ứng dụng theo mơ hình HMVC .42 Hình 3.6 Module quản lý niên khóa 43 Hình 3.7 Module quản lý đợt đồ án .43 Hình 3.8 Module quản lý nhóm .44 Hình 3.9 Module template trang chủ template truy cập không phép 44 Hình 3.10 Module quản lý quyền hạn 45 Hình 3.11 Module template header, footer, sidebar 45 Hình 3.12 Module quản lý đề tài quản trị viên 46 Hình 3.13 Module quản lý đề tài người hướng dẫn 47 Hình 3.14 Module quản lý đề tài sinh viên 47 Hình 3.15 Module quản lý thành viên 48 Hình 3.16 Giao diện danh sách thành viên hệ thống .49 Hình 3.17 Giao diện danh sách đề tài ngưới hướng dẫn .49 Hình 3.18 Giao diện quản lý nhóm .50 Hình 3.19 Giao diện danh sách đề tài khả dụng 50 DANH MỤC BẢNG Bảng 2.1 Kịch chức đăng nhập 12 Bảng 2.2 Kịch chức đăng xuất .13 Bảng 2.3 Kịch chức cập nhật thông tin 13 Bảng 2.4 Kịch chức quản lý niên khóa 14 Bảng 2.5 Kịch chức quản lý đợt đồ án 15 Bảng 2.6 Kịch chức quản lý quyền hạn 17 Bảng 2.7 Kịch chức quản lý thành viên 18 Bảng 2.8 Kịch chức quản lý đề tài người hướng dẫn 20 Bảng 2.9 Kịch chức phê duyệt/hủy duyệt đề tài người hướng dẫn 21 Bảng 2.10 Kịch chức quản lý nhóm .23 Bảng 2.11 Kịch chức đăng ký/hủy đăng ký đề tài sinh viên 25 Bảng 2.12 Kịch chức phê duyệt/hủy duyệt đơn đăng ký đề tài sinh viên26 Bảng 3.1 Bảng thành viên (tbl_user) .34 Bảng 3.2 Bảng niên khóa (tbl_academic_year) .35 Bảng 3.3 Bảng đợt đồ án (tbl_topic_batch) 36 Bảng 3.4 Bảng quyền hạn (tbl_role) .36 Bảng 3.5 Bảng đề tài (tbl_topic) 37 Bảng 3.6 Bảng nhóm (tbl_group) 38 Bảng 3.7 Bảng đơn đăng ký đề tài (tbl_reg) 38 LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành sâu sắc đến thầy cô Khoa An tồn thơng tin, tất thầy cô Học viện Kỹ thuật mật mã truyền đạt kiến thức, kinh nghiệm quý báu cho em suốt trình học tập nghiên cứu Học viện Em xin gửi lời cảm ơn đặc biệt đến TS Nguyễn Tuấn Anh, người truyền niềm đam mê nghiên cứu, sáng tạo cho em Thầy người tận tình hướng dẫn, hỗ trợ tạo điều kiện tốt để em hoàn thành đồ án Mặc dù nỗ lực cố gắng song đồ án chắn tránh khỏi hạn chế, thiếu sót Em mong nhận góp ý quý thầy cô bạn SINH VIÊN THỰC HIỆN ĐỒ ÁN Bùi Xuân Trường LỜI NÓI ĐẦU Ngày nay, với phát triển mạnh mẽ khoa học cơng nghệ nói chung cơng nghệ thơng tin nói riêng, với tính ưu việt, tiên dụng ứng dụng rộng rãi Công nghệ thông tin trở thành nhân tố quan trọng, phần thiếu nhiều ngành nghề, giúp tối ưu hóa hiệu cơng việc, tăng suất lao động Cùng với phát triển công nghệ, người xây dựng lên nhiều ứng dụng để phục vụ cho nhu cầu lợi ích xã hội Trong đó, phần mềm ứng dụng phục vụ cho công việc vấn đề cấp thiết mà nhà lập trình viên quan tâm Dưới gợi ý thầy giáo hướng dẫn TS Nguyễn Tuấn Anh phần mềm ứng dụng hỗ trợ cơng tác đăng ký giao đề tài báo cáo tốt nghiệp Khoa An tồn thơng tin u cầu tốn ứng dụng đáp ứng công tác nghiệp vụ bên liên quan, giúp tối ưu hóa hiệu công việc, giải bất cập, hạn chế quy trình giao đồ án hành,… Giờ đây, cần máy tính nhỏ gọn có kết nối với internet giúp quản lý lưu trữ liệu trình đăng ký đề tài báo cáo tốt nghiệp Mục tiêu đặt thực đồ án là: Khảo sát quy trình đăng ký giao đề tài báo cáo tốt nghiệp hành Phân tích thiết kế xây dựng ứng dụng công cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp Khoa An tồn thơng tin Sau khoảng thời gian thực đồ án, mục tiêu chức đáp ứng được, nhiên tránh khỏi hạn chế, thiếu sót Rất mong nhận góp ý quý thầy cô bạn học viên để đề tài báo cáo hoàn thiện Em xin chân thành cảm ơn! 10 PHỤ LỤC Hướng dẫn sử dụng ứng dụng công cụ hỗ trợ công tác giao đề tài báo tốt nghiệp Phân vùng làm việc chung Đăng nhập: Nhập thông tin “Tên đăng nhập” “Mật khẩu” Click “Đăng nhập” Đăng xuất: Click chọn biểu tượng góc bên phải Click “Thốt” Cập nhật thơng tin: 56 Click chọn biểu tượng góc bên phải Click chọn “Thông tin cá nhân” Nhập thông tin cá nhân Click “Cập nhật” Phân vùng làm việc quản trị viên Quản lý niên khóa Thêm niên khóa: Click chọn “Niên khóa” Click chọn “Danh sách niên khóa” Nhập thơng tin thêm niên khóa Click “Thêm mới” Chỉnh sửa niên khóa: 57 Click chọn “Niên khóa” Click chọn “Danh sách niên khóa” Click chọn niên khóa muốn chỉnh sửa Nhập thơng tin chỉnh sửa niên khóa Click “Cập nhật” Xóa niên khóa: Click chọn “Niên khóa” Click chọn “Danh sách niên khóa” Click chọn niên khóa muốn xóa Quản lý đợt đồ án Thêm đợt đồ án: 58 Click chọn “Niên khóa” Click chọn “Danh sách đợt đồ án” Nhập thông tin thêm đợt đồ án Click “Thêm mới” Chỉnh sửa đợt đồ án: Click chọn “Niên khóa” Click chọn “Danh sách đợt đồ án” Click chọn đợt đồ án muốn chỉnh sửa Nhập thông tin chỉnh sửa đợt đồ án Click “Cập nhật” Xóa đợt đồ án: 59 Click chọn “Niên khóa” Click chọn “Danh sách đợt đồ án” Click chọn đợt đồ án muốn xóa Quản lý thành viên Thêm thành viên: Click chọn “Thành viên” Click chọn “Thêm mới” Nhập thông tin thêm thành viên vào form Click “Thêm mới” Chỉnh sửa thành viên: 60 Click chọn “Thành viên” Click chọn “Danh sách thành viên” Click chọn thành viên muốn chỉnh sửa Nhập thông tin chỉnh sửa thành viên Click “Cập nhật” 61 Quản lý quyền hạn Thêm quyền hạn: Click chọn “Quyền hạn” Click chọn “Thêm mới” Nhập thông tin thêm quyền hạn tích chọn quyền Click “Thêm mới” Chỉnh sửa quyền hạn: Click chọn “Quyền hạn” Click chọn “Thêm mới” Click chọn quyền hạn muốn chỉnh sửa 62 Nhập thông tin chỉnh sửa quyền hạn tích chọn quyền Click “Cập nhật” Xóa quyền hạn: Click chọn “Quyền hạn” Click chọn “Danh sách quyền hạn” Click chọn quyền hạn muốn xóa 63 Quản lý đề tài Phê duyệt danh sách đề tài người hướng dẫn đề xuất: Click chọn “Danh sách đề tài” Click chọn “DS đề tài người hướng dẫn đề xuất” Click chọn phê duyệt/hủy duyệt đề tài người hướng dẫn đề xuất Quản lý danh sách đề tài sinh viên đăng ký người hướng dẫn phê duyệt: Click chọn “Danh sách đề tài” Click chọn “DS đề tài sinh viên đăng ký người hướng dẫn phê duyệt” 64 Phân vùng làm việc người hướng dẫn Quản lý đề tài Thêm đề tài: Click chọn “Danh sách” Click chọn “Thêm mới” Nhập thông tin thêm đề tài Click “Thêm mới” 65 Chỉnh sửa đề tài: Click chọn “Danh sách đề tài” Click chọn “DS đề tài tôi” Click chọn đề tài muốn chỉnh sửa 66 Nhập thông tin chỉnh sửa đề tài Click “Cập nhật” Xóa đề tài: Click chọn “Danh sách đề tài” Click chọn “Danh sách đề tài tôi” Click chọn đề tài muốn xóa Phê duyệt/hủy duyệt, xóa đề tài sinh viên đăng ký: Click chọn “Danh sách đề tài” Click chọn “Danh sách đề tài tôi” Click phê duyệt/hủy duyệt đề tài sinh viên đăng ký Click xóa đề tài sinh viên đăng ký Phân vùng làm việc sinh viên 67 Quản lý nhóm Tạo nhóm: Click chọn “Nhóm” Click chọn “Tạo nhóm” Click “Tạo nhóm” Gửi lời mời cho thành viên khác tham gia vào nhóm Xóa thành viên khỏi nhóm Rời nhóm 68 Quản lý đề tài Đăng ký đề tài: Click chọn “Danh sách đề tài” Click chọn “DS đề tài khả dụng” Click “Đăng ký” Hủy đăng ký đề tài: Click chọn “Danh sách đề tài” Click chọn “Đề tài nhóm đăng ký” Click “Hủy bỏ” 69 Đề tài nhóm đăng ký người hướng dẫn phê duyệt: Click chọn “Danh sách đề tài” Click chọn “Đề tài phê duyệt” 70 ... ích đem lại từ công cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp Dựa vào mô tả tồn trên, thấy việc xây dựng công cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp cần thiết, cụ thể đem lại... ích đem lại từ công cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp .5 Chương Phân tích thiết kế cơng cụ hỗ trợ công tác giao đề tài báo cáo tốt nghiệp .6 2.1 Xây dựng biểu đồ Use-case... đề tài báo cáo tốt nghiệp Mục tiêu đặt thực đồ án là: Khảo sát quy trình đăng ký giao đề tài báo cáo tốt nghiệp hành Phân tích thiết kế xây dựng ứng dụng công cụ hỗ trợ công tác giao đề tài báo