Xây dựng ứng dụng hỗ trợ định hướng học tập cho sinh viên khoa Mạng máy tính & Truyền thông

NC-Student support application

Trong bối cảnh số hóa giáo dục và nhu cầu tự quản lý học tập ngày càng tăng cao, sinh viên cần một công cụ hỗ trợ hiệu quả trong việc theo dõi tiến độ học tập, quản lý bảng điểm và lập kế hoạch học kỳ. Xuất phát từ thực tế đó, khóa luận này đã xây dựng hệ thống NC_Score – một nền tảng web hỗ trợ sinh viên quản lý điểm số và chương trình đào tạo một cách trực quan và linh hoạt.

Hệ thống được thiết kế theo kiến trúc phân lớp hiện đại, sử dụng NextJS cho giao diện người dùng và NestJS cho backend. Dữ liệu được lưu trữ bằng MongoDB, các tệp được xử lý qua Cloudinary, và các tác vụ bất đồng bộ được điều phối thông qua RabbitMQ. Người dùng có thể đăng nhập bằng tài khoản Google, đồng thời hệ thống kiểm tra tên miền email để đảm bảo tính hợp lệ.

Các chức năng chính của hệ thống bao gồm: nhập điểm bằng tay, nhập từ file HTML bảng điểm, và từ file lịch học .ics; hiển thị bảng điểm theo nhiều chế độ khác nhau như theo học kỳ, khối kiến thức, chương trình đào tạo; quản lý danh sách môn học và nhập chương trình đào tạo từ file Excel dành cho quản trị viên.

Đồ án này không chỉ hoàn thành các mục tiêu đề ra ban đầu, mà còn đặt nền tảng cho các hướng phát triển trong tương lai như tích hợp trí tuệ nhân tạo (AI) để tư vấn chọn môn học, định hướng nghề nghiệp và triển khai thực tế phục vụ Đoàn – Hội trong việc hỗ trợ sinh viên tại các đơn vị đào tạo.

TÁC GIẢ

Lê Thị Thùy Trang, Lê Hoàng Vũ

GIẢNG VIÊN HƯỚNG DẪN

NGÀNH

Năm:

TỔNG QUAN

Trong thời đại số hoá hiện nay, việc ứng dụng công nghệ thông tin vào giáo dục ngày càng trở nên phổ biến và cần thiết. Đặc biệt tại các trường đại học, việc hỗ trợ sinh viên trong quá trình học tập, theo dõi kết quả học tập và lập kế hoạch học tập phù hợp là vô cùng quan trọng. 

Hiện nay, tại khoa Mạng máy tính và Truyền thông, sinh viên thường gặp khó khăn trong việc theo dõi tiến độ học tập, số tín chỉ tích lũy, cũng như xác định các học phần còn thiếu để đảm bảo điều kiện tốt nghiệp đúng hạn. Việc tra cứu thông tin này thường mất nhiều thời gian, không trực quan và dễ gây nhầm lẫn nếu chỉ sử dụng bảng điểm giấy hoặc hệ thống thông tin đào tạo truyền thống. 

Xuất phát từ thực tiễn đó, nhóm sinh viên chúng em đã phát triển một ứng dụng web có tên gọi NC-Score1 – hệ thống hỗ trợ sinh viên quản lý điểm số, thống kê tín chỉ và đánh giá khả năng tốt nghiệp. Đây không chỉ là một sản phẩm công nghệ hỗ trợ sinh viên khoa Mạng máy tính và Truyền thông, mà còn là cơ hội để tôi áp dụng các kiến thức lập trình web, thiết kế hệ thống, cơ sở dữ liệu và trí tuệ nhân tạo Artifial Intelligence (AI) vào một bài toán thực tế trong môi trường giáo dục. 

Mục tiêu nghiên cứu 

Xây dựng một ứng dụng web hỗ trợ sinh viên khoa Mạng máy tính và Truyền thông quản lý điểm số, theo dõi số tín chỉ đã tích lũy, các học phần còn thiếu, và đánh giá điều kiện tốt nghiệp một cách chính xác, trực quan, và dễ sử dụng. 

Đối tượng nghiên cứu 

Ứng dụng hướng tới đối tượng sử dụng là sinh viên khoa Mạng máy tính và Truyền thông tại các trường đại học đang học theo hệ thống tín chỉ. 

Phạm vi nghiên cứu 

Đề tài tập trung vào việc xây dựng hệ thống có giao diện đơn giản, dễ thao tác, với các chức năng chính gồm: nhập bảng điểm, phân tích tín chỉ, hiển thị trạng thái học tập, và đánh giá khả năng tốt nghiệp dựa trên chương trình đào tạo cụ thể. Hệ thống chưa tích hợp xác thực sinh viên với hệ thống của nhà trường, dữ liệu điểm số được nhập thủ công hoặc import từ tệp bảng điểm. 

Phương pháp nghiên cứu 

Đề tài sử dụng các phương pháp và công nghệ sau: 

• Phân tích yêu cầu người dùng từ khảo sát thực tế sinh viên khoa Mạng máy tính và Truyền thông. 

• Thiết kế kiến trúc hệ thống theo mô hình MVC. 

• Xây dựng giao diện người dùng bằng NextJS.

• Phát triển backend bằng NestJS, xử lý logic và tính toán tín chỉ. 

• Sử dụng cơ sở dữ liệu MongoDB để lưu trữ thông tin người dùng và bảng điểm. 

• Thực hiện kiểm thử và đánh giá hiệu quả sử dụng hệ thống thông qua phản hồi của người dùng thực tế. 

THIẾT KẾ ỨNG DỤNG

Mô hình phân rã chức năng

image 52

Mô hình phân rã chức năng thể hiện cách hệ thống NC Score được tổ chức thành các chức năng chính và các chức năng con tương ứng, nhằm phục vụ cho mục tiêu quản lý điểm và đào tạo trong môi trường giáo dục. 

Sơ đồ phân rã chức năng của hệ thống bao gồm các thành phần sau: 

• Quản lý điểm: Bao gồm các chức năng liên quan đến việc theo dõi và xử lý điểm số của sinh viên: 

⋄ Quản lý điểm/tín chỉ. 

⋄ Thêm/Xoá/Sửa điểm. 

⋄ Thêm/Xoá/Sửa lịch học. 

• Quản lý chương trình đào tạo: Cho phép quản trị nội dung đào tạo: 

⋄ Quản lý chương trình. 

⋄ Thêm/Xoá/Sửa chương trình. 

• Quản lý sinh viên: Cung cấp thông tin liên quan đến sinh viên: 

⋄ Xem danh sách sinh viên. 

⋄ Xem điểm sinh viên. 

• Quản lý môn học: Hỗ trợ kiểm soát dữ liệu môn học: 

⋄ Xem danh sách môn học. 

⋄ Thêm/Xoá/Sửa môn học. 

Mỗi chức năng được chia thành các nhiệm vụ cụ thể nhằm tăng tính linh hoạt, dễ bảo trì và thuận tiện cho việc phát triển hệ thống. Mô hình phân rã này đóng vai trò quan trọng trong việc định hướng thiết kế kiến trúc tổng thể của hệ thống NC Score.

Sơ đồ use-case

image 53
image 54

Mô hình trình tự 

Hệ thống được xây dựng với kiến trúc phân lớp bao gồm các thành phần chính: Frontend (NextJS), Backend (NestJS), Cơ sở dữ liệu (MongoDB) và dịch vụ lưu trữ tệp (Cloudinary). Frontend và Backend giao tiếp với nhau chủ yếu qua Restful API. Mỗi thành phần đóng một vai trò quan trọng trong luồng xử lý dữ liệu tổng thể. 

Hệ thống sử dụng kiến trúc RESTful API để trao đổi dữ liệu giữa client và server. Dữ liệu được lưu trữ trong MongoDB và được truy xuất thông qua các API endpoint của từng dịch vụ tương ứng. 

Hầu hết các luồng đều đảm bảo tính bảo mật thông qua cơ chế xác thực bằng JWT (JSON Web Token), đảm bảo rằng chỉ người dùng hợp lệ mới có thể truy xuất thông tin cá nhân của họ. 

image 55
image 56

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Kết luận 

Sau quá trình nghiên cứu và phát triển hệ thống hỗ trợ quản lý điểm số sinh viên mang tên “NC_Score”, nhóm chúng em đã xây dựng được một nền tảng web hoạt động ổn định với các chức năng chính như: 

• Cho phép sinh viên đăng nhập bằng tài khoản Google, kèm theo kiểm tra tên miền email để đảm bảo quyền truy cập hợp lệ. 

• Cung cấp các phương thức linh hoạt để nhập bảng điểm cá nhân, bao gồm: nhập thủ công, tải lên từ file HTML, và từ file lịch học định dạng .ics. 

• Hiển thị bảng điểm theo nhiều chế độ: theo học kỳ, khối kiến thức, chương trình đào tạo…, hỗ trợ sinh viên dễ dàng theo dõi quá trình học tập.

• Cho phép quản trị viên quản lý danh sách môn học, kiểm tra bảng điểm sinh viên và nhập chương trình đào tạo từ file Excel. Hệ thống sử dụng kiến trúc hiện đại với NextJS cho frontend, NestJS cho backend, kết nối với cơ sở dữ liệu MongoDB, lưu trữ ảnh qua Cloudinary và xử lý bất đồng bộ qua RabbitMQ.

Hạn chế 

Trong quá trình xây dựng hệ thống, nhóm đã gặp phải một số khó khăn và giới hạn như: 

• Việc trích xuất và xử lý dữ liệu từ file HTML và .ics đôi khi gặp sai sót do định dạng đầu vào không đồng nhất giữa các hệ thống đào tạo. 

• Không thể trích xuất dữ liệu điểm từ file PDF được in ra từ web trường. 

• Giao diện người dùng còn đơn giản, chưa tối ưu trải nghiệm cho thiết bị di động. 

• Chưa tích hợp tính năng phân quyền nâng cao giữa sinh viên và quản trị viên. 

Hướng phát triển

Trong tương lai, chúng em định hướng phát triển hệ thống theo các hướng sau: • Phối hợp cùng Đoàn – Hội sinh viên: Mở rộng hệ thống để phục vụ công tác hỗ trợ và quản lý sinh viên tại cấp khoa hoặc trường, như thống kê kết quả học tập toàn khoa, phát hiện sinh viên cần hỗ trợ học tập,… 

• Nâng cấp giao diện và trải nghiệm người dùng: Thiết kế lại frontend theo hướng thân thiện, hiện đại, responsive, tích hợp dashboard trực quan. 

• Tích hợp trí tuệ nhân tạo (AI): 

⋄ Gợi ý lựa chọn môn học phù hợp cho học kỳ kế tiếp, dựa trên tiến độ học và lộ trình chương trình đào tạo. 

⋄ Định hướng nghề nghiệp sơ bộ dựa trên các môn đã học, kết quả học tập và xu hướng ngành nghề hiện tại. 

• Triển khai hệ thống thực tế: Đóng gói và triển khai hệ thống trên máy chủ thật hoặc nền tảng đám mây để thử nghiệm trong môi trường sinh viên thực tế.