6 Chỉnh sửa thông tin Khả năng cho phép cựu sinh viên cập nhật thông tin cá nhân như số điện thoại, địa chỉ,công việc trong tài khoản của mình.. Đặc tả các Use-case Nhóm Use Case 1: Q
YÊU CẦU (REQUIREMENTS)
Đặt vấn đề (Problem statement)
Cơ sở dữ liệu về cựu sinh viên đóng vai trò vô cùng quan trọng đối với mọi cơ sở giáo dục Thông tin chi tiết về cựu sinh viên không chỉ giúp nhà trường duy trì liên lạc với các thế hệ sinh viên cũ mà còn hỗ trợ nhiều mục đích khác như xác minh thông tin, nghiên cứu xu hướng, và đánh giá hiệu quả của chương trình đào tạo Những dữ liệu này cho phép nhà trường so sánh kiến thức và kỹ năng thực tế của cựu sinh viên với yêu cầu của thị trường lao động, từ đó rút ra những bài học quý giá để điều chỉnh và nâng cao chất lượng đào tạo Tuy nhiên, việc quản lý cựu sinh viên bằng các phương pháp truyền thống thường gặp nhiều khó khăn Dữ liệu không được cập nhật kịp thời, dễ bị phân tán, và thiếu một cái nhìn tổng quan về cộng đồng cựu sinh viên Điều này dẫn đến sự mất kết nối và hạn chế khả năng hỗ trợ của nhà trường đối với cựu sinh viên.
1.1.2 Giải pháp Để khắc phục những hạn chế trên, việc phát triển ứng dụng quản lý cựu sinh viên là giải pháp hiệu quả và cần thiết Ứng dụng này tự động hóa quy trình quản lý, cho phép cựu sinh viên chủ động cập nhật thông tin cá nhân như nghề nghiệp, địa chỉ, và các hoạt động xã hội Họ có thể dễ dàng tham gia vào các sự kiện và hoạt động của hội cựu sinh viên, cũng như kết nối với những người đồng môn và nhà trường Bên cạnh đó, ứng dụng cung cấp cho nhà trường một công cụ quản lý mạnh mẽ, giúp họ theo dõi được sự phát triển của cựu sinh viên, hỗ trợ tốt hơn trong các chương trình hướng nghiệp và hợp tác.
Hệ thống này không chỉ giúp nâng cao khả năng quản lý mà còn là cầu nối để nhà trường và cựu sinh viên cùng nhau phát triển.
Thuật ngữ (Glossary)
STT Thuật ngữ Định nghĩa
1 Cựu sinh viên Sinh viên đã hoàn thành chương trình học và tốt nghiệp tại cơ sở giáo dục.
2 Admin Người quản lý hệ thống, có trách nhiệm kiểm tra, xác thực thông tin tài khoản và phê duyệt các yêu cầu đăng ký từ cựu sinh viên.
3 Tài khoản Hồ sơ người dùng được tạo trong hệ thống quản lý cựu sinh viên, bao gồm thông tin cá nhân như tên, email, số điện thoại, năm tốt nghiệp, ngành học, v.v.
4 Đăng nhập Quá trình cựu sinh viên sử dụng tên đăng nhập và mật khẩu để truy cập vào hệ thống quản lý.
5 Thay đổi mật khẩu Quá trình cựu sinh viên thay đổi mật khẩu sau khi đăng nhập và truy cập vào hệ thống.
6 Chỉnh sửa thông tin Khả năng cho phép cựu sinh viên cập nhật thông tin cá nhân như số điện thoại, địa chỉ, công việc trong tài khoản của mình.
7 Xác thực tài khoản Quy trình admin kiểm tra và phê duyệt thông tin đăng ký của cựu sinh viên để đảm bảo tính chính xác và hợp lệ trước khi kích hoạt tài khoản.
8 Xác thực thông tin chỉnh sửa
Quy trình admin xác thực những thay đổi mà cựu sinh viên đã cập nhật trong tài khoản để đảm bảo tính đúng đắn và cập nhật vào hệ thống.
9 Sự kiện cựu sinh viên Các hoạt động do hội cựu sinh viên hoặc nhà trường tổ chức nhằm duy trì liên lạc, giao lưu giữa cựu sinh viên và nhà trường.
10 Cập nhật thông tin việc làm
Quá trình cựu sinh viên hoặc admin hệ thống cập nhật thông tin việc làm, vị trí công việc và doanh nghiệp của cựu sinh viên.
Bảng 1 Danh sách thuật ngữ
Thông số kỹ thuật bổ sung
Hệ thống phải đảm bảo tính bảo mật cao cho dữ liệu cá nhân của cựu sinh viên và thông tin quản trị viên.
Mọi thao tác chỉnh sửa và truy cập vào dữ liệu nhạy cảm đều cần được xác thực và phân quyền rõ ràng (ví dụ: phân quyền cho admin và cựu sinh viên).
Dữ liệu phải được mã hóa khi lưu trữ và khi truyền tải trên mạng để đảm bảo an toàn.
Hệ thống phải có khả năng xử lý đồng thời nhiều yêu cầu từ cựu sinh viên, nhất là khi có các sự kiện lớn hoặc khi nhiều người cùng truy cập để đăng ký hoặc cập nhật thông tin.
Tốc độ phản hồi của hệ thống phải nhanh, với thời gian phản hồi tối đa không quá
2 giây cho mỗi tác vụ (ví dụ: đăng nhập, xem thông tin cá nhân, chỉnh sửa thông tin).
Hệ thống phải luôn sẵn sàng 24/7 để cựu sinh viên có thể truy cập và cập nhật thông tin bất cứ lúc nào.
Thời gian bảo trì và cập nhật hệ thống phải được thông báo trước và thực hiện vào các khoảng thời gian ít người truy cập nhất.
1.3.4 Khả năng mở rộng (Scalability)
Hệ thống phải có khả năng mở rộng để đáp ứng lượng người dùng lớn hơn theo thời gian, đặc biệt khi số lượng cựu sinh viên tăng lên và nhu cầu sử dụng tăng cao.
Cần thiết lập hệ thống cơ sở dữ liệu có khả năng mở rộng để lưu trữ thông tin hàng chục nghìn cựu sinh viên mà không làm giảm hiệu năng.
1.3.5 Khả năng phục hồi sau sự cố (Recoverability)
Hệ thống phải có cơ chế sao lưu và phục hồi dữ liệu để đảm bảo dữ liệu không bị mất trong trường hợp sự cố hệ thống.
Thời gian phục hồi sau sự cố không quá 1 giờ để đảm bảo người dùng có thể truy cập lại hệ thống trong thời gian ngắn nhất.
1.3.6 Khả năng tương thích (Compatibility)
Hệ thống phải tương thích với nhiều trình duyệt và thiết bị khác nhau (ví dụ: máy tính để bàn, điện thoại di động, máy tính bảng).
Cần đảm bảo giao diện người dùng (UI) có thể điều chỉnh linh hoạt theo kích thước màn hình khác nhau và hoạt động mượt mà trên các hệ điều hành phổ biến như Windows, macOS, iOS, Android.
1.3.7 Tính dễ bảo trì (Maintainability)
Mã nguồn và cấu trúc hệ thống phải được thiết kế rõ ràng, dễ hiểu để có thể dễ dàng bảo trì, sửa lỗi và cập nhật tính năng mới.
Cần có hệ thống giám sát để tự động phát hiện và thông báo sự cố cho nhóm phát triển hoặc quản trị viên ngay lập tức.
1.3.8 Khả năng sử dụng (Usability)
Giao diện người dùng phải dễ sử dụng, trực quan và thân thiện, giúp cựu sinh viên có thể nhanh chóng đăng ký tài khoản và cập nhật thông tin mà không cần hướng dẫn phức tạp.
Cần có chức năng trợ giúp hoặc hướng dẫn sử dụng tích hợp trực tiếp trên giao diện hệ thống.
Mô hình hóa chức năng
1.4.1 Các yêu cầu chức năng
1.4.1.1 Yêu cầu chức năng 1: Quản lý cựu sinh viên
Mô tả: Hệ thống cho phép thêm mới, xóa, và cập nhật thông tin của cựu sinh viên. Đồng thời, lưu trữ lịch sử thay đổi thông tin của từng cựu sinh viên.
Ví dụ: o Cho phép quản lý thêm mới, xóa, hoặc cập nhật các thông tin như tên, năm tốt nghiệp, ngành học, địa chỉ, email, công việc hiện tại của cựu sinh viên. o Lưu trữ và hiển thị lịch sử cập nhật thông tin, giúp theo dõi những thay đổi quan trọng. o Cung cấp chức năng tìm kiếm và lọc thông tin cựu sinh viên theo ngành học, năm tốt nghiệp, hoặc địa chỉ hiện tại.
1.4.1.2 Yêu cầu chức năng 2: Quản lý thông tin việc làm
Mô tả: Ghi nhận và cập nhật thông tin việc làm của cựu sinh viên, tạo báo cáo về tình trạng nghề nghiệp và khả năng kết nối với doanh nghiệp.
Ví dụ: o Ghi nhận các thông tin về vị trí làm việc hiện tại, công ty, ngành nghề của cựu sinh viên. o Tạo báo cáo tổng quan về tỷ lệ có việc làm, lĩnh vực hoạt động, và sự thăng tiến trong công việc của cựu sinh viên theo thời gian. o Cho phép nhà trường liên hệ với các doanh nghiệp cựu sinh viên đang làm việc để mở rộng cơ hội hợp tác.
1.4.1.3 Yêu cầu chức năng 3: Quản lý sự kiện
Mô tả: Theo dõi và quản lý các sự kiện dành cho cựu sinh viên, tạo và gửi lời mời tham gia sự kiện.
Ví dụ: o Tạo mới, chỉnh sửa, hoặc xóa sự kiện như hội nghị, hội thảo, họp mặt cựu sinh viên. o Gửi lời mời tham gia sự kiện đến các cựu sinh viên qua email hoặc thông báo trên ứng dụng. o Theo dõi số lượng cựu sinh viên tham gia sự kiện, và thu thập phản hồi sau sự kiện để cải thiện chất lượng tổ chức.
1.4.1.4 Yêu cầu chức năng 4: Quản lý admin và phân quyền
Mô tả: Quản lý các tài khoản người dùng và phân quyền truy cập cho từng vai trò, đặc biệt là quyền truy cập của từng khoa, phòng ban trong trường.
Ví dụ: o Tạo và quản lý tài khoản người dùng với thông tin cá nhân như tên, vai trò (quản lý, nhân viên khoa, cán bộ hội cựu sinh viên). o Phân quyền truy cập khác nhau cho từng vai trò, giới hạn các quyền như xem, chỉnh sửa thông tin cựu sinh viên hoặc quản lý sự kiện. o Theo dõi hoạt động của các tài khoản người dùng để đảm bảo tính minh bạch và bảo mật trong hệ thống.
1.4.1.5 Yêu cầu chức năng 5: Bảo mật thông tin
Mô tả: Đảm bảo tính bảo mật và an toàn của dữ liệu cựu sinh viên bằng cách sử dụng các biện pháp bảo mật tiên tiến.
Ví dụ: o Sử dụng các biện pháp mã hóa dữ liệu để bảo vệ thông tin cá nhân và nghề nghiệp của cựu sinh viên khỏi các truy cập trái phép. o Thiết lập các chính sách bảo mật và phân quyền truy cập chặt chẽ để giới hạn quyền xem và chỉnh sửa thông tin quan trọng. o Hỗ trợ sao lưu và khôi phục dữ liệu tự động để bảo đảm tính liên tục và an toàn trong quản lý thông tin.
Hình 1 Sơ đồ Use-case a Mô tả cơ bản về hệ thống quản lý sinh viên tốt nghiệp:
Mục đích: Hệ thống này được thiết kế để quản lý thông tin về sinh viên đã tốt nghiệp, theo dõi việc làm của họ, và cung cấp các thống kê liên quan đến việc làm của sinh viên. b Các nhân tố (Actors):
Hệ thống: Là đối tượng thụ động, thực hiện các chức năng theo yêu cầu của các nhân tố khác.
Quản lý: Người có quyền truy cập và điều khiển toàn bộ hệ thống, bao gồm việc nhập liệu, cập nhật dữ liệu, và tạo báo cáo.
Quản lý sự kiện sinh viên: Người chịu trách nhiệm quản lý các sự kiện liên quan đến sinh viên tốt nghiệp. c Các use case chính:
- UC 1.1: Quản lý người dùng
Hình 2 Use-case quản lý người dùng
2) Quản lý sinh viên tốt nghiệp:
- UC 1.2.1: Nhập DS sinh viên đã tốt nghiệp
Hình 3 Use-case nhập DS sinh viên
- UC 1.2.2: Thống kê sinh viên tốt nghiệp toàn trường
- UC 1.2.3: Thống kê sinh viên tốt nghiệp từng khoa
- UC 1.2.4: Thống kê sinh viên tốt nghiệp từng khóa
Hình 4 Use-case thống kê sinh viên tốt nghiệp
3) Quản lý việc làm của sinh viên:
- UC 1.3.1: Cập nhật thông tin việc làm của SV
- UC 1.3.2: Cập nhật thông tin việc làm của SV theo từng cấp độ
Hình 5 Use-case cập nhật thông tin việc làm của sinh viên
- UC 1.3.3: Thống kê việc làm của SV
- UC 1.3.4: Thống kê việc làm của SV cấp độ trường, khoa
Hình 6 Use-case thống kê việc làm của sinh viên
- UC 1.4.1: Quản lý sự kiện
Hình 7 Use-case quản lý sự kiện
- UC 1.4.2: Thống kê sự kiện
Hình 8 Use-case thống kê sự kiện
Hệ thống sẽ cung cấp các báo cáo chi tiết về tình hình việc làm của sinh viên, số lượng sinh viên tốt nghiệp theo các tiêu chí khác nhau, và thông tin về các sự kiện Các báo cáo này sẽ giúp ban quản lý nhà trường, các khoa, và các đơn vị liên quan có cái nhìn tổng quan về tình hình của sinh viên tốt nghiệp, từ đó đưa ra các quyết định phù hợp.
Đặc tả các Use-case
Nhóm Use Case 1: Quản lý người dùng
UC1.1 a Quản lý Tài Khoản người dùng (admin) : o Mô tả ngắn gọn: Chức năng này cho phép quản trị viên thêm, sửa, xóa và xem thông tin của các tài khoản người dùng trong hệ thống. o Tác nhân thực hiện: Quản trị viên o Luồng sự kiện chính:
1 Quản trị viên truy cập vào module quản lý người dùng.
2 Hệ thống hiển thị danh sách các người dùng hiện có.
3 Quản trị viên chọn hành động (thêm, sửa, xóa) và thực hiện.
4 Hệ thống cập nhật thông tin người dùng vào cơ sở dữ liệu. o Tiền điều kiện: Quản trị viên đã đăng nhập vào hệ thống. o Hậu điều kiện: Thông tin người dùng được cập nhật thành công.
UC1.1 b Quản lý Tài Khoản người dùng (Của người dùng): o Mô tả ngắn gọn: Chức năng này cho phép người dùng thêm, sửa, xóa và xem thông tin của tài khoản người dùng trong hệ thống. o Tác nhân thực hiện: Người Dùng (Cựu Sinh Viên) o Luồng sự kiện chính:
1 Sinh viên truy cập vào Ứng dụng bằng tài khoản được cấp.
2 Hệ thống hiển thị thông tin tài khoản của Sinh Viên.
3 Sinh viên chọn hành động (thêm, sửa, xóa thông tin ) và thực hiện.
4 Hệ thống cập nhật thông tin người dung o Tiền điều kiện: Sinh Viên đã đăng nhập vào hệ thống. o Hậu điều kiện: Thông tin người dùng được cập nhật thành công.
UC1.1c Quản lý Tài Khoản người dùng (Cấp trường): o Mô tả ngắn gọn: Chức năng này cho phép Cán bộ thêm, sửa, xóa và xem thông tin của các tài khoản người dùng đã học tại trường có trong hệ thống. o Tác nhân thực hiện: Cán bộ (Cấp trường) o Luồng sự kiện chính:
1 Cán bộ truy cập vào module quản ly theo tài khoản được cung cấp.
2 Hệ thống hiển thị danh sách các người dùng hiện có.
3 Cán bộ chọn hành động (thêm, sửa, xóa) và thực hiện.
4 Hệ thống cập nhật thông tin người dùng vào cơ sở dữ liệu. o Tiền điều kiện: Cán bộ đã đăng nhập được vào hệ thống. o Hậu điều kiện: Thông tin người dùng được cập nhật thành công.
UC1.1d Quản lý Tài Khoản người dùng (Cấp Khoa): o Mô tả ngắn gọn: Chức năng này cho phép Cán bộ thêm, sửa, xóa và xem thông tin của các tài khoản người dùng đã học tại trường và nằm trong khoa có trong hệ thống. o Tác nhân thực hiện: Cán bộ (Cấp Khoa) o Luồng sự kiện chính:
1 Cán bộ truy cập vào module quản ly theo tài khoản được cung cấp.
2 Hệ thống hiển thị danh sách các người dùng hiện có.
3 Cán bộ chọn hành động (thêm, sửa, xóa) và thực hiện.
4 Hệ thống cập nhật thông tin người dùng vào cơ sở dữ liệu. o Tiền điều kiện: Cán bộ đã đăng nhập được vào hệ thống. o Hậu điều kiện: Thông tin người dùng được cập nhật thành công.
Nhóm Use Case 2: Quản lý sinh viên tốt nghiệp
UC1.2.1 Nhập danh sách sinh viên đã tốt nghiệp: o Mô tả ngắn gọn: Chức năng này cho phép nhập thông tin của các sinh viên mới tốt nghiệp vào hệ thống, bao gồm thông tin cá nhân, ngành học, năm tốt nghiệp, v.v. o Tác nhân thực hiện: Quản trị viên o Luồng sự kiện chính:
1 Quản trị viên chọn chức năng nhập danh sách sinh viên.
2 Hệ thống hiển thị form nhập liệu.
3 Quản trị viên điền thông tin sinh viên và nhấn nút lưu.
4 Hệ thống lưu thông tin vào cơ sở dữ liệu. o Tiền điều kiện: Quản trị viên đã đăng nhập vào hệ thống. o Hậu điều kiện: Thông tin sinh viên được lưu trữ thành công.
UC1.2.2 Thống kê sinh viên tốt nghiệp toàn trường: o Mô tả ngắn gọn: Chức năng này cho phép thống kê tổng số sinh viên tốt nghiệp của toàn trường. o Tác nhân thực hiện: Quản trị viên, người dùng có quyền truy cập o Luồng sự kiện chính:
1 Người dùng chọn chức năng thống kê.
2 Hệ thống hiển thị kết quả thống kê tổng số sinh viên tốt nghiệp. o Tiền điều kiện: Hệ thống đã có dữ liệu về sinh viên tốt nghiệp. o Hậu điều kiện: Kết quả thống kê được hiển thị.
UC1.2.3 Thống kê sinh viên tốt nghiệp từng khoa: o Mô tả ngắn gọn: Chức năng này cho phép thống kê số lượng sinh viên tốt nghiệp theo từng khoa. o Tác nhân thực hiện: Quản trị viên, người dùng có quyền truy cập o Luồng sự kiện chính: Tương tự như UC1.2.2, nhưng thay vì thống kê toàn trường, hệ thống sẽ cho phép chọn khoa để thống kê.
UC1.2.4 Thống kê sinh viên tốt nghiệp từng khóa: o Mô tả ngắn gọn: Chức năng này cho phép thống kê số lượng sinh viên tốt nghiệp theo từng khóa. o Tác nhân thực hiện: Quản trị viên, người dùng có quyền truy cập o Luồng sự kiện chính: Tương tự như UC1.2.2, nhưng thay vì thống kê toàn trường, hệ thống sẽ cho phép chọn khóa để thống kê.
Nhóm Use Case 3: Quản lý việc làm của sinh viên
UC1.3.1 Cập nhật thông tin việc làm của sinh viên: o Mô tả ngắn gọn: Chức năng này cho phép cập nhật thông tin việc làm của sinh viên sau khi tốt nghiệp. o Tác nhân thực hiện: Quản trị viên, sinh viên o Luồng sự kiện chính:
1 Người dùng chọn sinh viên cần cập nhật.
2 Hệ thống hiển thị form cập nhật thông tin việc làm.
3 Người dùng điền thông tin và nhấn lưu.
4 Hệ thống cập nhật thông tin vào cơ sở dữ liệu.
PHÂN TÍCH TRƯỜNG HỢP SỬ DỤNG (USE-CASE ANALYSIS)
Phân tích kiến trúc hệ thống
Cấu trúc chung: a Sơ đồ lớp phân tích:
Hình 16 Sơ đồ lớp phân tích chung
- Actor: Tác nhân tham gia sử dụng hệ thống.
- Form: Form là lớp trung gian thể hiện sự tương tác giữa hệ thống và những gì. bên ngoài hệ thống Ở đây là giao diện giữa người dùng và hệ thống.
- Control: Lớp điều điều khiển thực hiện chức năng chính của UC.
- Entity: Lớp thực thể chứa những thông tin tồn tại và được lưu trữ lâu dài trong hệ thống.
- API: Lớp điều khiển thực hiện việc nhận/trả các API.
- Database: Cơ sở dữ liệu. b Sơ đồ tuần tự
Hình 17 Sơ đồ tuần tự chung
Thực thi trường hợp sử dụng (Use-case relizations)
a Quản lý tài khoản người dung
- Sơ đồ lớp phân tích
Hình 18 Sơ đồ lớp phân tích quản lý tài khoản người dùng
Hình 19 Sơ đồ tuần tự quản lý tài khoản người dùng b Quản lý cựu sinh viên
- Sơ đồ lớp phân tích
Hình 20 Sơ đồ lớp phân tích quản lý cựu sinh viên
Hình 21 Sơ đồ tuần tự quản lý cựu sinh viên c Quản lý sự kiện
- Sơ đồ lớp phân tích
Hình 22 Sơ đồ lớp phân tích quản lý sự kiện
Hình 23 Sơ đồ tuần tự quản lý sự kiện
THIẾT KẾ (USE-CASE DESIGN)
Xác định các thành phần thiết kế (Identify design elements)
3.1.1 Xác định các lớp (Identify classes) a Lớp Alumni (Cựu sinh viên)
- Thuộc tính: o alumniID: String – ID duy nhất của cựu sinh viên. o fullName: String – Tên đầy đủ. o graduationYear: Int – Năm tốt nghiệp. o department: String – Khoa/ngành học. o contactInfo: Map – Thông tin liên hệ (ví dụ: email, số điện thoại). o currentJob: Job – Công việc hiện tại, thuộc đối tượng Job.
- Phương thức: o updateContactInfo(newContactInfo: Map): Void – Cập nhật thông tin liên hệ. o addJobHistory(newJob: Job): Void – Thêm công việc mới vào lịch sử công việc. o viewProfile(): Alumni – Trả về hồ sơ cựu sinh viên hiện tại. b Lớp Event (Sự kiện)
- Thuộc tính: o eventID: String – ID duy nhất của sự kiện. o title: String – Tên sự kiện. o date: Date – Ngày diễn ra sự kiện. o location: String – Địa điểm tổ chức. o participants: List – Danh sách các cựu sinh viên tham gia sự kiện.
- Phương thức: o addParticipant(alumni: Alumni): Void – Thêm cựu sinh viên vào danh sách tham gia. o removeParticipant(alumni: Alumni): Void – Xóa cựu sinh viên khỏi danh sách tham gia. o getEventDetails(): Event – Lấy thông tin chi tiết của sự kiện. c Lớp Admin (Quản trị viên)
- Thuộc tính: o adminID: String – ID của quản trị viên. o username: String – Tên đăng nhập. o password: String – Mật khẩu. o permissions: List – Danh sách các quyền của quản trị viên.
- Phương thức: o approveAlumni(alumniID: String): Boolean – Phê duyệt tài khoản cựu sinh viên. o verifyUpdates(): Void – Xác thực các thay đổi của cựu sinh viên. o manageEvent(event: Event): Void – Tạo, chỉnh sửa, hoặc xóa sự kiện. d Lớp Job (Công việc)
- Thuộc tính: o jobID: String – ID công việc. o alumniID: String – ID của cựu sinh viên liên kết. o position: String – Vị trí công việc. o company: String – Công ty. o startDate: Date – Ngày bắt đầu làm việc.
- Phương thức: o addJobDetails(position: String, company: String, startDate: Date, endDate: Date?): Void – Thêm chi tiết công việc. o updateJobDetails(jobID: String, newDetails: Job): Boolean – Cập nhật thông tin công việc. e Lớp Department (Ngành học)
- Thuộc tính: o departmentID: String – ID của khoa/ngành học. o name: String – Tên khoa/ngành học. o alumniList: List – Danh sách các cựu sinh viên của khoa.
- Phương thức: o getAlumniList(): List – Trả về danh sách cựu sinh viên thuộc khoa. o getDepartmentDetails(): Department – Lấy thông tin chi tiết của khoa/ngành học.
3.1.2 Xác định các hệ thống con và giao diện (Identify subsystems and interfaces) Để nâng cao hiệu quả quản lý và phát triển hệ thống quản lý cựu sinh viên, hệ thống được chia thành các hệ thống con với các giao diện tương ứng, nhằm hỗ trợ cựu sinh viên và quản trị viên thao tác thuận tiện và quản lý dữ liệu dễ dàng hơn Dưới đây là các hệ thống con chính và giao diện tương ứng của hệ thống: a Hệ thống con Quản lý Cựu Sinh Viên (Alumni Management Subsystem)
- Chức năng: o Quản lý thông tin cá nhân, liên hệ, và quá trình nghề nghiệp của cựu sinh viên, bao gồm các thao tác thêm mới, chỉnh sửa và lưu trữ thông tin cá nhân và công việc. o Hệ thống cũng cho phép cập nhật thời gian bắt đầu làm việc của cựu sinh viên.
- Giao diện người dùng: o Giao diện Hồ sơ cá nhân: Cho phép cựu sinh viên xem và cập nhật thông tin cá nhân như tên, khoa/ngành học, năm tốt nghiệp, và thông tin liên hệ. o Giao diện Lịch sử công việc: Cung cấp chức năng xem và cập nhật lịch sử công việc, bao gồm vị trí, công ty, thời gian làm việc, cũng như ngày bắt đầu công việc đầu tiên (employmentStartDate). o Giao diện Quản lý tài khoản: Hỗ trợ quản trị viên trong việc xem xét, xác thực thông tin đăng ký của cựu sinh viên để đảm bảo tính chính xác và phù hợp. b Hệ thống con Quản lý Sự Kiện (Event Management Subsystem)
- Chức năng: o Quản lý các sự kiện cựu sinh viên, bao gồm việc tạo mới sự kiện, chỉnh sửa thông tin sự kiện, đăng ký tham gia và theo dõi số lượng người tham dự. o Hệ thống còn hỗ trợ gửi thông báo hoặc lời mời tới các cựu sinh viên qua email hoặc thông báo trên ứng dụng.
- Giao diện người dùng: o Giao diện Tạo sự kiện: Cho phép quản trị viên tạo mới sự kiện với thông tin như tên sự kiện, mô tả, thời gian, địa điểm. o Giao diện Đăng ký tham gia sự kiện: Cho phép cựu sinh viên đăng ký tham gia sự kiện và nhận thông tin chi tiết về các sự kiện sắp diễn ra. o Giao diện Theo dõi sự kiện: Dành cho quản trị viên để xem và quản lý danh sách các cựu sinh viên tham gia từng sự kiện. c Hệ thống con Quản lý Tài khoản và Bảo mật (Account and Security Management Subsystem)
- Chức năng: o Đảm bảo an toàn cho thông tin cá nhân của cựu sinh viên và dữ liệu quản trị viên, quản lý các tài khoản người dùng, xác thực, và o Quản lý hệ thống phân quyền để đảm bảo chỉ những người có quyền mới có thể truy cập thông tin quan trọng.
- Giao diện người dùng: o Giao diện Đăng nhập/Đăng ký: Cho phép cựu sinh viên đăng ký tài khoản mới và đăng nhập vào hệ thống một cách an toàn. o Giao diện Quản lý quyền truy cập: Cung cấp cho quản trị viên công cụ để phân quyền và hạn chế quyền truy cập của người dùng (ví dụ: chỉ có cựu sinh viên mới có thể chỉnh sửa hồ sơ của họ). o Giao diện Quản lý tài khoản: Cho phép quản trị viên xem và quản lý các tài khoản, xác thực thay đổi của cựu sinh viên để đảm bảo tính bảo mật và chính xác. d Hệ thống con Báo cáo và Thống kê (Reporting and Analytics Subsystem)
- Chức năng: o Tạo các báo cáo thống kê về tình trạng việc làm của cựu sinh viên, tỷ lệ tham gia sự kiện và các báo cáo về hệ thống người dùng, giúp nhà trường có cái nhìn tổng quan để đưa ra quyết định phù hợp.
Thiết kế trường hợp sử dụng (Use-case design)
3.2.1 Thiết kế các biểu đồ tuần tự (Design sequence diagrams)
Hình 26 Sơ đồ tuần tự thể hiện thao tác giữa người dùng và hệ thống
- Lớp giao diện (hiển thị thông tin và các tùy chọn thao tác cho người dùng),
- Lớp điều khiển (xử lý các yêu cầu từ giao diện),
- Lớp thực thể (các đối tượng chứa dữ liệu cần lưu trữ),
- Lớp cơ sở dữ liệu (lưu trữ và truy xuất thông tin).
3.2.2 Thiết kế biểu đồ lớp (Class diagrams)
Hình 27 Biểu đồ lớp hệ thống quản lý cựu sinh viên
Các lớp chính trong biểu đồ bao gồm:
- Lớp Cựu sinh viên (Alumni): Chứa thông tin cá nhân của cựu sinh viên như tên, năm tốt nghiệp, và công việc hiện tại.
- Lớp Tài khoản: Quản lý thông tin đăng nhập và quyền truy cập cho mỗi người dùng.Lớp Sự kiện: Theo dõi các sự kiện và thông tin liên quan để cựu sinh viên có thể tham gia.
- Lớp Admin: Cung cấp quyền quản lý cho người dùng admin, với các chức năng kiểm tra và duy trì dữ liệu hệ thống.
Thiết kế cơ sở dữ liệu (Database design)
3.3.1 Lược đồ cơ sở dữ liệu
Hình 28 Lược đồ cơ sở dữ liệu
3.3.2 Chi tiết các bảng a Bảng Alumni
- id (PK): ID của cựu sinh viên
- first_name: Họ của cựu sinh viên
- last_name: Tên của cựu sinh viên
- graduation_year : Năm tốt nghiệp
- department_id (FK): Liên kết đến bảng Departments
- phone_number: Số điện thoại
- current_job_title: Chức danh công việc hiện tại b Bảng Courses
- id (PK): ID của khóa học
- courses_name: Tên khóa học
- department_id (FK): Liên kết đến bảng Departments
- course_duration: Thời gian học của khóa (ví dụ: 4 năm, 6 tháng) c Bảng Departments
- id (PK): ID của khoa/bộ môn
- department_name: Tên của khoa/bộ môn d Bảng EmploymentHistory
- id (PK): ID của lịch sử làm việc
- alumni_id (FK): Liên kết đến bảng Alumni
- company_name: Tên công ty
- job_title: Chức danh công việc
- start_date: Ngày bắt đầu công việc
- end_date: Ngày kết thúc công việc (có thể để trống nếu đang làm việc) e Bảng Events
- id (PK): ID của sự kiện
- event_name: Tên sự kiện
- event_date: Ngày diễn ra sự kiện
- location: Địa điểm tổ chức
- description: Mô tả sự kiện f Bảng ContactInformation
- id (PK): ID của thông tin liên hệ
- alumni_id (FK): Liên kết đến bảng Alumni
- address: Địa chỉ cư trú
- email: Email liên hệ khác (nếu có)
- phone_number: Số điện thoại khác (nếu có) g Bảng Alumni_Course
- id (PK): ID của bảng liên kết
- alumni_id (FK): Liên kết đến bảng Alumni
- course_id (FK): Liên kết đến bảng Courses Ghi chú:
- PK: Primary Key (Khóa chính)
- FK: Foreign Key (Khóa ngoại)
CÀI ĐẶT
Lựa chọn công nghệ
Hình 29 Sơ đồ kiến trúc Để đảm bảo hệ thống quản lý cựu sinh viên hoạt động ổn định, giao diện thân thiện và tương thích với nhiều thiết bị, nhóm đã chọn các công nghệ front-end hiện đại cùng với các công cụ backend và database: a Ngôn ngữ lập trình:
- PHP: Sử dụng cho phần backend, PHP là ngôn ngữ phổ biến trong phát triển web với nhiều thư viện hỗ trợ và khả năng tích hợp với MySQL.
- JavaScript: Được sử dụng cho các thao tác phía client, cải thiện trải nghiệm người dùng qua các tương tác không đồng bộ (AJAX), giảm thời gian tải lại trang và giúp giao diện trở nên linh hoạt hơn. b Framework:
- Laravel: Laravel là framework PHP được sử dụng để xây dựng và quản lý backend Với các tính năng như routing, authentication và ORM
(Eloquent), Laravel giúp tối ưu hóa quá trình phát triển, quản lý cơ sở dữ liệu và bảo mật.
- Bootstrap: Là framework CSS giúp xây dựng giao diện người dùng nhanh chóng và nhất quán Với Bootstrap, hệ thống sẽ có giao diện thân thiện với người dùng, dễ dàng điều chỉnh để phù hợp với các kích thước màn hình khác nhau.
- Vue.js (tùy chọn): Sử dụng Vue.js để hỗ trợ các tương tác phức tạp và động trên giao diện, giúp cải thiện UX và mang lại cảm giác trực quan hơn cho người dùng Vue.js cũng dễ dàng tích hợp với Laravel, cho phép xây dựng các component UI linh hoạt. c Front-end:
- HTML & CSS: Sử dụng HTML5 và CSS3 để xây dựng cấu trúc và phong cách cho giao diện người dùng Với HTML5, nhóm có thể sử dụng các tag semantic để tăng khả năng truy cập và thân thiện với SEO.
- JavaScript và jQuery: JavaScript và jQuery được dùng để thực hiện các tác vụ động như cập nhật dữ liệu theo thời gian thực, xử lý form, và quản lý các sự kiện người dùng (như click, hover).
- AJAX: Công nghệ AJAX được tích hợp để cập nhật dữ liệu mà không cần tải lại trang, giúp cải thiện hiệu năng và trải nghiệm người dùng khi thực hiện các thao tác như tìm kiếm hoặc cập nhật thông tin cựu sinh viên.
- Font Awesome và Google Fonts: Sử dụng thư viện icon Font Awesome và Google Fonts để tạo điểm nhấn cho giao diện, giúp hệ thống dễ nhận diện và tăng tính thẩm mỹ. d Cơ sở dữ liệu:
- MySQL: Sử dụng MySQL để lưu trữ và quản lý thông tin về cựu sinh viên và các dữ liệu liên quan MySQL có khả năng mở rộng và dễ dàng tích hợp với các framework PHP như Laravel. e API:
- RESTful API: Các RESTful API được sử dụng để xử lý yêu cầu giữa frontend và backend, đảm bảo dữ liệu luôn được truyền tải chính xác và nhanh chóng qua định dạng JSON. f Công cụ hỗ trợ phát triển:
- Composer: Quản lý các package và dependency cho PHP, đặc biệt quan trọng khi làm việc với Laravel.
- Git: Sử dụng Git để quản lý mã nguồn, giúp các thành viên trong nhóm phối hợp làm việc, theo dõi và khôi phục mã nguồn khi cần.
- Postman: Công cụ hỗ trợ kiểm thử API, giúp nhóm kiểm tra tính chính xác và bảo mật của các endpoint trước khi triển khai.
Cấu trúc mã nguồn
a Thư mục chính của dự án
Hình 1 Các thư mục mã nguồn
STT Thành phần Mô tả
1 /app Chứa các lớp xử lý logic của ứng dụng
2 /resources/views/customers Chứa các tệp giao diện người dùng cho từng chức năng của hệ thống, như quản lý cựu sinh viên, sự kiện và việc làm.
3 /database/migrations Các tệp migration dùng để quản lý và cấu trúc cơ sở dữ liệu, dễ dàng triển khai và cập nhật cấu trúc bảng.
4 /routes Chứa các tệp định tuyến (routes) giúp điều hướng các yêu cầu từ người dùng đến các Controller xử lý tương ứng.
Bảng 2 Các thư mục chính của mã nguồn b Các thành phần chính trong mã nguồn
- Alumni: Đại diện cho thực thể cựu sinh viên, quản lý các thông tin cá nhân như, first_name, last_name, birthdate, graduation_year, department_id, email, phone_number và current_job_title Model này tương tác với bảng Alumni trong cơ sở dữ liệu.
- Department: Đại diện cho các khoa hoặc bộ môn, với các thuộc tính như department_name, giúp tổ chức dữ liệu của cựu sinh viên theo khoa hoặc bộ môn Model này liên kết với bảng Departments.
- Course: Quản lý thông tin về các khóa học, gồm courses_name, department_id, và course_duration Model này cho phép hệ thống theo dõi các khóa học mà cựu sinh viên đã tham gia và liên kết với bảng Courses.
- EmploymentHistory: Đại diện cho quá trình làm việc của cựu sinh viên,bao gồm company_name, job_title, start_date, và end_date Model này liên kết với bảng EmploymentHistory để lưu trữ lịch sử công việc của cựu sinh viên, giúp nhà trường theo dõi các bước tiến trong sự nghiệp của họ.
- Event: Chứa các thông tin về sự kiện liên quan đến cựu sinh viên, với các thuộc tính như event_name, event_date, location, và description Model này tương ứng với bảng Events để quản lý các sự kiện mà cựu sinh viên có thể tham gia.
- ContactInformation: Đại diện cho thông tin liên hệ bổ sung của cựu sinh viên, như address, email, và phone_number Model này hỗ trợ cập nhật và lưu trữ thêm thông tin liên lạc của cựu sinh viên trong bảng ContactInformation.
- AlumniCourse: Là bảng liên kết giữa Alumni và Course, model này quản lý mối quan hệ giữa các cựu sinh viên và các khóa học mà họ đã hoàn thành.
- AlumniController: Xử lý các thao tác quản lý cựu sinh viên, bao gồm tạo mới, cập nhật, xóa và hiển thị thông tin Controller này đảm bảo rằng dữ liệu của cựu sinh viên được quản lý chính xác và bảo mật.
- CourseController: Quản lý các thông tin liên quan đến khóa học, cho phép thêm, sửa, xóa và truy xuất thông tin các khóa học Controller này cũng có thể tạo báo cáo về các khóa học đã được cựu sinh viên tham gia.
- EmploymentHistoryController: Đảm nhiệm việc cập nhật và theo dõi lịch sử làm việc của cựu sinh viên Controller này giúp cập nhật công việc mới và hiển thị lịch sử nghề nghiệp của từng cựu sinh viên.
- EventController: Phụ trách quản lý các sự kiện cho cựu sinh viên. Controller này hỗ trợ các thao tác thêm mới, chỉnh sửa, xóa và liệt kê sự kiện, giúp nhà trường dễ dàng tổ chức và quản lý các sự kiện cộng đồng.
- ContactInformationController: Xử lý thông tin liên hệ bổ sung của cựu sinh viên Controller này cho phép cập nhật và quản lý thêm các chi tiết liên hệ như địa chỉ và số điện thoại phụ.
- Alumni Profile View: Giao diện để hiển thị và chỉnh sửa thông tin của cựu sinh viên, cho phép quản trị viên xem chi tiết và cập nhật thông tin cá nhân.
- Event Management View: Giao diện quản lý sự kiện, cung cấp các chức năng để quản trị viên dễ dàng thêm mới, chỉnh sửa hoặc xóa các sự kiện.
- Employment History View: Cho phép quản trị viên và cựu sinh viên xem lịch sử công việc, bổ sung thêm kinh nghiệm làm việc mới hoặc cập nhật thông tin công việc.
- Course View: Giao diện hiển thị và quản lý thông tin các khóa học, hỗ trợ tìm kiếm, sắp xếp và thống kê các khóa học mà cựu sinh viên đã tham gia. c Tích hợp và bảo mật