Bối cảnh và vấn đề nghiên cứu
Trong môi trường giáo dục đại học, mỗi năm các cơ sở đào tạo tiếp nhận hàng nghìn sinh viên mới nhập học. Đây là giai đoạn chuyển tiếp quan trọng khi người học bắt đầu bước vào môi trường học tập mới, sống xa gia đình và phải tự thích ứng với các phương thức quản lý đào tạo. Trong quá trình đó, sinh viên mới, sinh viên đang theo học, cựu sinh viên cùng các bậc phụ huynh và học sinh có nhu cầu rất lớn về việc tìm hiểu thông tin, giải đáp các thắc mắc liên quan đến quy chế đào tạo, định hướng ngành nghề, cơ hội nghề nghiệp tương lai cũng như các vấn đề sinh hoạt ngoại khóa ngoài giảng đường.
Theo phân tích hiện trạng được tác giả trình bày, mô hình tư vấn truyền thống tại các trường đại học hiện nay chủ yếu thông qua các phòng ban chức năng trực tiếp và đang bộc lộ những hạn chế rõ rệt:
- Sinh viên và phụ huynh bắt buộc phải đến trực tiếp các văn phòng, phòng ban để gặp bộ phận tư vấn, gây nhiều khó khăn và tốn kém về thời gian di chuyển, đặc biệt đối với những người ở xa hoặc phụ huynh học sinh ở các tỉnh thành khác.
- Đội ngũ nhân sự tại các phòng ban tư vấn truyền thống có số lượng giới hạn, dẫn đến tình trạng quá tải trong các đợt cao điểm (nhập học, đăng ký môn học, xét tốt nghiệp), khiến việc giải đáp thắc mắc không thể diễn ra kịp thời và đầy đủ.
Trước thực trạng đó, đề tài "Xây dựng hệ thống tư vấn sinh viên sử dụng MERN Stack" của sinh viên Trần Nhật Hào và Trần Thanh Phương, dưới sự hướng dẫn của ThS. Nguyễn Hữu Trung tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (khóa 2020 – 2024), đã được thực hiện nhằm giải quyết các tồn tại trên bằng một giải pháp công nghệ đa nền tảng.
Mục tiêu nghiên cứu của đề tài được xác định cụ thể gồm 2 nội dung chính:
- Xây dựng hệ thống tư vấn cho sinh viên trên cả hai nền tảng ứng dụng Website và ứng dụng Di động, kết nối trực tuyến người học với đội ngũ tư vấn viên gồm các giảng viên và sinh viên ưu tú của nhà trường.
- Vận dụng toàn diện bộ công nghệ MERN Stack (MongoDB, Express.js, React, Node.js) kết hợp cùng framework React Native để thiết kế và phát triển toàn bộ hệ thống từ phía máy khách đến máy chủ.
Đối tượng và phạm vi nghiên cứu của đồ án:
- Đối tượng nghiên cứu: Quy trình tiếp nhận, điều phối, trả lời và kiểm duyệt thắc mắc của sinh viên; các kỹ thuật phân tích thiết kế hệ thống phần mềm hướng dịch vụ và cơ chế tương tác thời gian thực giữa các tác nhân.
- Phạm vi không gian: Nghiên cứu và mô hình hóa dữ liệu dựa trên cơ cấu tổ chức các khoa, bộ môn và phòng ban chức năng thực tế tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.
- Phạm vi thời gian: Đề tài được triển khai thực hiện từ ngày 19/03/2024 đến ngày 11/07/2024 theo 10 giai đoạn công việc cụ thể (từ tìm hiểu cơ sở lý thuyết, viết đề cương, khảo sát phân tích thiết kế, xây dựng cơ sở dữ liệu, lập trình chức năng quản trị, tư vấn viên, người dùng cho đến kiểm thử và hoàn thiện báo cáo tốt nghiệp).
Cơ sở lý thuyết và phương pháp
Đồ án xây dựng nền tảng lý luận và kỹ thuật dựa trên các công nghệ phần mềm hiện đại xoay quanh hệ sinh thái JavaScript đồng nhất:
- MongoDB: Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (document-oriented), sử dụng định dạng nhị phân BSON (Binary JSON) để tổ chức dữ liệu. MongoDB có đặc tính linh hoạt về cấu trúc (schema-less), cho phép mở rộng quy mô lưu trữ dễ dàng và tối ưu hóa tốc độ truy xuất dữ liệu mà không bị ràng buộc bởi các mô hình quan hệ bảng cứng nhắc của RDBMS.
- Express.js: Framework tối giản chạy trên môi trường Node.js phía máy chủ, giữ vai trò xử lý định tuyến (routing), tiếp nhận và điều phối các yêu cầu HTTP, tích hợp các lớp phần mềm trung gian (middleware) để xây dựng hệ thống giao diện lập trình ứng dụng RESTful API phục vụ giao tiếp giữa máy khách và máy chủ.
- React (React.js): Thư viện JavaScript mã nguồn mở dùng để xây dựng giao diện người dùng (UI) cho ứng dụng web dưới dạng ứng dụng đơn trang (Single Page Application - SPA). React sử dụng cú pháp JSX kết hợp HTML trong JavaScript, cơ chế Virtual DOM giúp tối ưu hóa hiệu suất hiển thị bằng cách chỉ cập nhật các thành phần thực sự thay đổi, và mô hình component hóa cho phép tái sử dụng mã nguồn giao diện.
- React Native: Framework phát triển ứng dụng di động đa nền tảng dựa trên nền tảng React và JavaScript, cho phép biên dịch và tương tác trực tiếp với các thành phần giao diện gốc (native components) trên cả hai hệ điều hành Android và iOS, giúp dùng chung logic nghiệp vụ và giảm chi phí bảo trì.
- Node.js: Môi trường thực thi JavaScript ngoài trình duyệt xây dựng trên nền tảng V8 JavaScript Engine của Google Chrome, vận hành theo mô hình hướng sự kiện (event-driven) và cơ chế vào/ra bất đồng bộ không chặn (asynchronous non-blocking I/O), cho phép xử lý hiệu quả hàng loạt kết nối đồng thời với mô hình đơn luồng (single-threaded).
- Hệ thống quản lý phiên bản Git và nền tảng GitHub: Được ứng dụng trong toàn bộ vòng đời phát triển dự án để quản trị mã nguồn, theo dõi lịch sử chỉnh sửa và phối hợp làm việc nhóm giữa hai thành viên phát triển.
Phương pháp nghiên cứu thực tế được nhóm tác giả vận dụng gồm:
- Phương pháp khảo sát, phân tích hiện trạng và nghiệp vụ tư vấn học đường thực tế để trích xuất 11 nhóm yêu cầu chức năng nghiệp vụ, phân nhóm quyền hạn hệ thống và xác lập 7 chỉ tiêu phi chức năng.
- Phương pháp phân tích và thiết kế phần mềm hướng đối tượng: Sử dụng mô hình Use Case để mô hình hóa hành vi của 6 nhóm tác nhân; xây dựng 11 lược đồ tuần tự (Sequence Diagram) để chuẩn hóa các luồng xử lý dữ liệu phức tạp.
- Phương pháp thiết kế cơ sở dữ liệu phi quan hệ: Xây dựng cấu trúc các collection trên MongoDB đảm bảo tính nhất quán dữ liệu cho các thực thể người dùng, câu hỏi, câu trả lời, tin nhắn và lịch sử kiểm duyệt.
- Phương pháp thực nghiệm phần mềm: Thiết lập môi trường phát triển máy chủ và máy khách cục bộ, chạy thử ứng dụng trên môi trường web và máy ảo di động, kiểm thử từng chức năng theo các kịch bản định trước.
Nguồn dữ liệu của đề tài bao gồm các tệp dữ liệu mẫu khởi tạo hệ thống (Mock Data) phục vụ cài đặt cơ sở dữ liệu ban đầu, cùng các quy định tổ chức hành chính khoa, bộ môn và danh mục lĩnh vực tư vấn học thuật của nhà trường.
Thiết kế và triển khai
Hệ thống tư vấn sinh viên được thiết kế theo kiến trúc phân tầng toàn diện (Full-stack Architecture), sử dụng JavaScript làm ngôn ngữ duy nhất xuyên suốt toàn bộ các tầng ứng dụng.
Kiến trúc công nghệ và phân bổ hệ thống
- Tầng giao diện máy khách (Client Tier):
- Ứng dụng Web: Xây dựng bằng ReactJS, chạy tại địa chỉ cổng phát triển cục bộ (
http://localhost:5173/), phân chia giao diện thành 23 màn hình chức năng bao quát toàn bộ quyền hạn từ khách, người dùng, tư vấn viên, trưởng nhóm đến quản trị viên.
- Ứng dụng Di động: Xây dựng bằng React Native, cung cấp 20 màn hình giao diện tối ưu hóa cho thiết bị di động, hỗ trợ tư vấn viên và sinh viên tương tác linh hoạt mọi lúc mọi nơi.
- Tầng xử lý máy chủ và ứng dụng (Application & Server Tier):
- Xây dựng trên nền tảng Node.js kết hợp framework Express.js, đảm nhận việc xử lý các tuyến đường dẫn (routing), tích hợp middleware xác thực, phân quyền tài khoản và xử lý logic nghiệp vụ.
- Cung cấp hệ thống RESTful API kết nối trao đổi dữ liệu với cả hai nền tảng web và mobile thông qua định dạng JSON.
- Tầng cơ sở dữ liệu (Database Tier):
- Cơ sở dữ liệu MongoDB đảm nhiệm việc lưu trữ toàn bộ dữ liệu nghiệp vụ của hệ thống dưới dạng các collection BSON. Quá trình triển khai được cấu hình thông qua các biến môi trường nội bộ để kết nối an toàn với máy chủ backend.
Ma trận yêu cầu phi chức năng
Hệ thống được thiết kế đáp ứng nghiêm ngặt các tiêu chuẩn chất lượng kỹ thuật được tác giả lượng hóa trong tài liệu:
| STT |
Nội dung yêu cầu |
Tiêu chuẩn |
Mô tả chi tiết kỹ thuật |
| 1 |
Tốc độ xử lý hiển thị và đặt câu hỏi |
Hiệu quả |
Thời gian tải trang hiển thị câu hỏi và thời gian đặt câu hỏi không quá 3 giây. |
| 2 |
Tốc độ tìm kiếm câu hỏi |
Hiệu quả |
Thời gian thực hiện tác vụ tìm kiếm dữ liệu không quá 3 giây. |
| 3 |
Tối ưu hóa thời gian tư vấn |
Hiệu quả |
Tiết kiệm thời gian xử lý và phản hồi so với phương thức tư vấn truyền thống. |
| 4 |
Kiểm soát điều phối câu hỏi |
Hiệu quả |
Phân bổ câu hỏi chính xác theo từng khoa và chuyển đến đúng tư vấn viên có chuyên môn lĩnh vực tương ứng. |
| 5 |
Trực quan hóa giao diện người dùng |
Tiện dụng |
Thiết kế giao diện rõ ràng, giúp người dùng tập trung vào các thông tin cần thiết. |
| 6 |
Thao tác sử dụng |
Tiện dụng |
Các thao tác nhập, xuất và chỉnh sửa dữ liệu đơn giản, gần gũi với thói quen người dùng. |
| 7 |
Bảo mật khôi phục mật khẩu |
Bảo mật |
Thời gian gửi và nhận mã xác thực OTP qua email không quá 60 giây. |
Quy trình triển khai và môi trường thử nghiệm
Quá trình cài đặt và thử nghiệm phần mềm được văn bản tài liệu hóa qua các bước chi tiết tại Chương 6:
- Chuẩn bị file dữ liệu mẫu để nhập liệu ban đầu cho hệ thống.
- Cài đặt cơ sở dữ liệu MongoDB và kiểm tra trạng thái hoạt động của cơ sở dữ liệu.
- Cài đặt môi trường runtime Node.js và khởi tạo dịch vụ Express.js xử lý phía server.
- Cài đặt thư viện React.js cho ứng dụng web và thiết lập tệp cấu hình biến môi trường kết nối API.
- Cài đặt framework React Native, thiết lập máy ảo di động (Android Emulator) và cấu hình các biến môi trường cho ứng dụng mobile.
- Chạy thử nghiệm đồng thời hệ thống máy chủ, trang web và ứng dụng di động để đánh giá độ trễ và tính toàn vẹn của các luồng nghiệp vụ.
Nội dung chính theo từng chương
Chương 1: Cơ sở lý thuyết
Chương 1 cung cấp nền tảng kiến thức kỹ thuật chi tiết về bộ công nghệ MERN Stack. Tác giả giải thích bản chất từng thành phần: MongoDB (cơ sở dữ liệu NoSQL lưu trữ BSON linh hoạt), Express.js (framework định tuyến và middleware cho Node.js), React (thư viện component hóa xây dựng SPA với Virtual DOM cho web), React Native (phát triển ứng dụng di động native đa nền tảng), và Node.js (môi trường máy chủ bất đồng bộ hướng sự kiện). Chương này làm rõ lý do lựa chọn bộ công nghệ: tiết kiệm chi phí đào tạo và nhân lực nhờ tính đồng nhất của ngôn ngữ JavaScript, tận dụng hệ sinh thái mã nguồn mở, nâng cao tốc độ phản hồi nhờ kiến trúc non-blocking I/O, thân thiện với các công cụ tìm kiếm (SEO), khả năng bảo mật tốt và dễ dàng mở rộng khi phát triển các tính năng trao đổi thông tin thời gian thực.
Chương 2: Khảo sát phân tích và thiết kế
Chương 2 tập trung phân tích thực trạng tư vấn học đường và xây dựng các bảng đặc tả yêu cầu phần mềm. Tác giả chỉ rõ các nhược điểm về cản trở địa lý và sự thiếu hụt nhân sự tại các phòng ban truyền thống. Trên cơ sở đó, chương thiết lập 3 bảng chuẩn hóa:
- Bảng 2.1 (Yêu cầu chức năng nghiệp vụ): Xác định 11 yêu cầu cốt lõi gồm Quản lý khoa, Quản lý lĩnh vực, Quản lý người dùng, Quản lý câu hỏi, Quản lý câu trả lời, Quản lý tin nhắn, Quản lý Feedback, Quản lý FAQs, Tìm kiếm câu hỏi, Phân quyền tài khoản và Người dùng đặt câu hỏi.
- Bảng 2.2 (Yêu cầu chức năng hệ thống): Phân định chi tiết quyền hạn cho 6 nhóm đối tượng (Khách, Người dùng, Tư vấn viên, Trưởng nhóm, Giám sát viên, Quản trị viên).
- Bảng 2.3 (Yêu cầu phi chức năng): Lượng hóa các chỉ số hiệu năng (tải trang ≤3s, tìm kiếm ≤3s, OTP ≤60s, phân luồng chính xác khoa/lĩnh vực).
Chương 3: Mô hình hóa yêu cầu
Chương 3 chi tiết hóa toàn bộ hành vi hệ thống thông qua các bảng định danh use case và mô hình ca sử dụng cho từng tác nhân. Tác giả thiết lập hệ thống bảng phân loại với mã định danh khoa học:
- Khách (Guest - tiền tố GUE): 12 ca sử dụng từ GUE-XTC (Xem trang chủ) đến GUE-CTTVV (Chi tiết thông tin tư vấn viên).
- Người dùng (User - tiền tố USE): 13 ca sử dụng bao gồm USE-DCH (Đặt câu hỏi), USE-XTB (Xem thông báo), USE-YTCH (Yêu thích câu hỏi), USE-XTE (Xác thực email), USE-DSHT (Danh sách hội thoại), USE-NT (Phản hồi tin nhắn).
- Tư vấn viên (Counsellor - tiền tố COU): 9 ca sử dụng chính như COU-TK (Xem thống kê), COU-DSCH (Xem câu hỏi chờ), COU-TL (Trả lời câu hỏi), COU-TLCK (Trả lời công khai), COU-TLQTN (Trả lời qua tin nhắn), COU-CT (Chuyển tiếp câu hỏi).
- Trưởng nhóm (Department Head - tiền tố DEP): 18 ca sử dụng bao quát việc duyệt câu trả lời (DEP-DYD, DEP-KDYD), quản lý lĩnh vực (DEP-QLLV, DEP-TTLV), quản lý nhân sự (DEP-QLTVV, DEP-TLVTVV), quản lý FAQ và nhắc nhở tư vấn viên.
- Giám sát viên (Supervisor - tiền tố SUP): 3 ca sử dụng gồm SUP-TK (Xem thống kê), SUP-DSNN (Danh sách khoa cần nhắc nhở), SUP-NN (Nhắc nhở khoa).
- Quản trị viên (Admin - tiền tố ADM): 14 ca sử dụng về quản lý khoa (ADM-QLK, ADM-TK, ADM-CTN, ADM-PPNS), quản lý người dùng (ADM-QLND, ADM-TTND, ADM-TNV) và quản lý tin tức (ADM-TT, ADM-TTT, ADM-XTT).
Chương này cũng cung cấp đầy đủ các bảng đặc tả ca sử dụng chi tiết (từ Bảng 3.8 đến 3.73), mô tả rõ ràng Pre-Conditions, Post-Conditions, Basic Flow và Alternative Flow.
Chương 4: Thiết kế phần mềm
Chương 4 mô tả kiến trúc logic thông qua hệ thống lược đồ tuần tự (Sequence Diagram) và thiết kế cơ sở dữ liệu. 11 lược đồ tuần tự thể hiện sự tương tác qua lại giữa Actor, Giao diện (Boundary), Bộ xử lý (Controller) và Cơ sở dữ liệu (Database) cho các nghiệp vụ: Đăng nhập, Xem câu hỏi đã trả lời, Xem thư viện câu hỏi, Xem tin tức, Xem danh sách tư vấn viên, Đặt câu hỏi, Trả lời công khai, Trả lời qua tin nhắn, Phản hồi tin nhắn, Duyệt câu trả lời, và Gửi phản hồi (từ chối duyệt). Lược đồ cơ sở dữ liệu NoSQL được thiết kế chi tiết nhằm lưu trữ các mối quan hệ giữa khoa, lĩnh vực tư vấn, người dùng, câu hỏi, câu trả lời, bình luận, tin nhắn hội thoại và nhật ký kiểm duyệt.
Chương 5: Giao diện và xử lý
Chương 5 trình bày toàn bộ kết quả trực quan hóa hệ thống phần mềm trên cả hai môi trường:
- Phiên bản Web: Minh họa chi tiết 23 màn hình từ giao diện dành cho khách/người dùng (Trang chủ, Thư viện câu hỏi, Danh sách tư vấn viên, Tin tức, Thông tin cá nhân, Lịch sử tư vấn), giao diện cho tư vấn viên (Danh sách câu hỏi chờ, Chi tiết câu hỏi, Xem phản hồi từ trưởng nhóm), giao diện cho trưởng nhóm (Thống kê, Quản lý lĩnh vực, Quản lý nhân sự, Quản lý FAQs, Duyệt câu trả lời), đến giao diện của quản trị viên (Thống kê, Quản lý khoa, Quản lý người dùng, Quản lý tin tức).
- Phiên bản Di động: Giới thiệu 20 màn hình trên ứng dụng mobile tương ứng với các tác nhân, hỗ trợ tính năng xem và trả lời tin nhắn trực tiếp, duyệt câu hỏi, tra cứu FAQ, đặt câu hỏi nhanh và quản lý danh mục phân quyền.
Chương 6: Cài đặt và thử nghiệm
Chương 6 hướng dẫn chi tiết quy trình chuẩn bị mã nguồn và các bước triển khai kỹ thuật. Nội dung bao gồm các bước cài đặt hệ quản trị cơ sở dữ liệu MongoDB và nạp dữ liệu mẫu; cấu hình môi trường Node.js và cài đặt các gói phụ thuộc Express.js; thiết lập dự án React.js cho web client; cấu hình React Native cùng môi trường máy ảo Android; khai báo tệp biến môi trường .env kết nối giữa client và server; và quy trình chạy thử nghiệm toàn bộ hệ thống để xác minh sự vận hành chính xác của các luồng nghiệp vụ.
Phần kết luận
Phần kết luận tổng kết những kết quả đã hoàn thành trong đồ án, đánh giá ưu điểm về tính tiện lợi, đồng bộ công nghệ và tốc độ phản hồi; phân tích các nhược điểm còn tồn đọng trong quá trình thử nghiệm; và vạch ra định hướng phát triển phần mềm trong tương lai.
Kết quả và đóng góp
Đồ án đã đạt được các kết quả cụ thể sau quá trình nghiên cứu và thực hiện:
- Xây dựng thành công hệ thống phần mềm tư vấn sinh viên hoạt động đồng bộ trên 2 nền tảng: ứng dụng Web (ReactJS) và ứng dụng Di động (React Native), vận hành trên nền tảng máy chủ Node.js/Express.js và cơ sở dữ liệu MongoDB.
- Thiết kế và triển khai đầy đủ 11 nhóm chức năng nghiệp vụ, phân định rõ ràng quyền hạn và giao diện thao tác cho 6 nhóm tác nhân (Khách, Người dùng, Tư vấn viên, Trưởng nhóm, Giám sát viên, Quản trị viên).
- Chuẩn hóa 63 ca sử dụng với mã định danh cụ thể, xây dựng 11 lược đồ tuần tự chi tiết và hoàn thiện thiết kế 43 màn hình giao diện (23 màn hình web và 20 màn hình di động).
- Thiết lập quy trình kiểm duyệt nội dung 2 lớp chặt chẽ: Câu hỏi gửi đến được phân loại chính xác theo khoa và lĩnh vực chuyên môn; câu trả lời của tư vấn viên phải trải qua khâu thẩm định của Trưởng nhóm (duyệt công khai hoặc từ chối kèm phản hồi lý do) trước khi xuất bản lên thư viện câu hỏi chung.
- Đảm bảo các chỉ số hiệu năng kỹ thuật: Tốc độ tải trang, đặt câu hỏi và tìm kiếm đạt chuẩn dưới 3 giây; quy trình gửi mã xác thực OTP khôi phục mật khẩu hoàn tất trong 60 giây.
Đóng góp của đồ án so với phương thức tư vấn truyền thống:
- Tạo lập một kênh tương tác học đường trực tuyến từ xa, giúp sinh viên, phụ huynh và cựu sinh viên dễ dàng đặt câu hỏi mọi lúc mọi nơi mà không phải đến trực tiếp các văn phòng của nhà trường.
- Tự động hóa quá trình điều phối câu hỏi đến đúng giảng viên và nhân sự có chuyên môn theo từng khoa và lĩnh vực cụ thể, nâng cao độ chính xác và chất lượng của câu trả lời.
- Giúp giảm tải áp lực công việc trực tiếp cho các phòng ban chức năng truyền thống của nhà trường, rút ngắn thời gian chờ đợi phản hồi của người học.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đồ án (dựa trên phạm vi và nội dung văn bản):
- Hệ thống mới dừng lại ở việc cài đặt, cấu hình và chạy thử nghiệm trên môi trường máy chủ phát triển cục bộ (
localhost:5173) và thiết bị máy ảo di động với tập dữ liệu mẫu, chưa được triển khai thử nghiệm thực tế trên môi trường sản xuất (production server) với lưu lượng truy cập lớn của toàn trường.
- Việc phân loại câu hỏi hiện vẫn hoàn toàn phụ thuộc vào thao tác chọn thủ công khoa và lĩnh vực của người gửi, chưa tích hợp các giải pháp tự động nhận diện hay phân loại nội dung câu hỏi.
Hướng phát triển tiếp theo được tác giả đề xuất:
- Tiếp tục tối thiện hóa và nâng cấp giao diện người dùng trên cả hai nền tảng web và di động nhằm tăng cường tính thân thiện và tiện dụng.
- Khắc phục các khiếm khuyết phần mềm phát sinh trong quá trình thử nghiệm thực tế.
- Triển khai cài đặt hệ thống lên hạ tầng máy chủ thực tế của nhà trường để đưa vào vận hành thử nghiệm phục vụ cán bộ, giảng viên và sinh viên.
- Mở rộng thêm các tính năng phân tích số liệu nâng cao cho Giám sát viên và Quản trị viên nhằm theo dõi toàn diện chất lượng tư vấn của từng khoa.
Giá trị tham khảo
Đồ án là tài liệu tham khảo có giá trị chuyên môn cao cho các đối tượng:
- Sinh viên các ngành Công nghệ phần mềm, Công nghệ thông tin và Hệ thống thông tin đang thực hiện đồ án tốt nghiệp hoặc các dự án công nghệ phần mềm chuyên ngành.
- Các lập trình viên quan tâm đến giải pháp Full-stack JavaScript, đặc biệt là phương pháp kết hợp bộ công nghệ MERN Stack với framework React Native trên cùng một hệ thống API backend.
- Các cán bộ quản lý giáo dục, phòng công tác sinh viên tại các trường đại học, cao đẳng đang tìm kiếm mô hình chuyển đổi số quy trình tiếp nhận và giải đáp thông tin học đường.
Các phần nội dung đáng tham khảo nhất trong văn bản gồm:
- Chương 2 và Chương 3: Cung cấp phương pháp khảo sát nghiệp vụ chặt chẽ, cách phân rã yêu cầu thành các bảng chức năng, phi chức năng và đặc biệt là kỹ thuật viết đặc tả Use Case chi tiết với đầy đủ luồng sự kiện cơ bản, luồng sự kiện thay thế và tiền/hậu điều kiện.
- Chương 4: Cung cấp hệ thống 11 lược đồ tuần tự trực quan, giúp người đọc nắm vững cách mô hình hóa luồng tương tác giữa giao diện, bộ điều khiển và cơ sở dữ liệu NoSQL trong các bài toán xác thực, kiểm duyệt và trao đổi tin nhắn.
- Chương 6: Cung cấp tài liệu hướng dẫn thực hành cấu hình môi trường MERN Stack và thiết lập biến môi trường kết nối đa nền tảng một cách bài bản, dễ tái lập.
Câu hỏi thường gặp
1. Hệ thống tư vấn sinh viên trong đồ án phân chia quyền hạn cho những nhóm tác nhân nào?
Văn bản đồ án xác định hệ thống có 6 nhóm tác nhân tham gia tương tác:
- Khách (Guest): Người chưa đăng nhập, có thể xem trang chủ, xem chi tiết câu hỏi, tra cứu thư viện câu hỏi (FAQ), xem danh sách tư vấn viên, xem tin tức, đăng ký, đăng nhập và khôi phục mật khẩu.
- Người dùng (User): Sinh viên, cựu sinh viên, phụ huynh đã có tài khoản; được phép đặt câu hỏi, xem thông báo, xem lịch sử câu hỏi đã hỏi, yêu thích câu hỏi, sửa thông tin cá nhân, đổi mật khẩu và nhắn tin tư vấn trực tiếp.
- Tư vấn viên (Counsellor): Giảng viên hoặc sinh viên được chỉ định; có nhiệm vụ xem danh sách câu hỏi chờ theo lĩnh vực đảm nhận, trả lời công khai hoặc qua tin nhắn, xem feedback kiểm duyệt và chuyển tiếp câu hỏi.
- Trưởng nhóm (Department Head): Quản lý tư vấn viên của khoa, quản lý danh mục lĩnh vực của khoa, duyệt hoặc từ chối câu trả lời kèm phản hồi, quản lý thư viện câu hỏi FAQ và gửi nhắc nhở cho tư vấn viên.
- Giám sát viên (Supervisor): Theo dõi số liệu thống kê toàn hệ thống và gửi nhắc nhở đến các khoa.
- Quản trị viên (Admin): Quản lý toàn bộ danh sách các khoa, quản lý người dùng hệ thống, phân phối nhân sự, chỉ định trưởng nhóm, quản lý tin tức và xem thống kê tổng thể.
2. Bộ công nghệ MERN Stack và React Native được phân bổ ra sao trong kiến trúc hệ thống?
Các công nghệ được tích hợp chặt chẽ theo mô hình Full-stack JavaScript:
- MongoDB: Cơ sở dữ liệu NoSQL lưu trữ toàn bộ dữ liệu dưới dạng tài liệu BSON linh hoạt, không yêu cầu schema cố định.
- Express.js: Framework chạy trên Node.js đóng vai trò backend, cung cấp hệ thống định tuyến (routing), xử lý middleware và xây dựng các API RESTful.
- Node.js: Môi trường thực thi JavaScript phía máy chủ theo mô hình non-blocking I/O và hướng sự kiện.
- React (React.js): Xây dựng giao diện ứng dụng web Single Page Application cho người dùng và các cấp quản trị.
- React Native: Xây dựng ứng dụng di động đa nền tảng (Android và iOS), chia sẻ logic và kết nối chung hệ thống API backend với web.
3. Quy trình tiếp nhận và kiểm duyệt câu trả lời diễn ra theo các bước nào?
Theo lược đồ tuần tự tại Chương 4, quy trình được vận hành qua hai giai đoạn:
- Khi sinh viên đặt câu hỏi, câu hỏi được hệ thống gán vào đúng khoa và lĩnh vực chuyên môn. Tư vấn viên phụ trách lĩnh vực đó sẽ tiếp nhận câu hỏi từ danh sách chờ và soạn nội dung trả lời (trả lời công khai hoặc trả lời qua tin nhắn).
- Sau khi tư vấn viên hoàn thành, câu trả lời sẽ chuyển sang trạng thái chờ duyệt. Trưởng nhóm của khoa tiến hành xem chi tiết nội dung:
- Nếu nội dung đạt yêu cầu, Trưởng nhóm thực hiện hành động "Đồng ý duyệt" (DEP-DYD) để câu trả lời chính thức hiển thị công khai trên hệ thống.
- Nếu nội dung chưa đạt yêu cầu, Trưởng nhóm thực hiện hành động "Không đồng ý duyệt" (DEP-KDYD) và gửi kèm nội dung phản hồi (feedback) giải thích lý do để tư vấn viên tiếp nhận và chỉnh sửa lại.
4. Đề tài đặt ra những chỉ tiêu kỹ thuật phi chức năng cụ thể nào về hiệu năng và bảo mật?
Theo Bảng 2.3 của đồ án, các tiêu chuẩn phi chức năng được lượng hóa cụ thể gồm:
- Tốc độ tải trang hiển thị danh sách câu hỏi và tốc độ gửi câu hỏi lên hệ thống không được vượt quá 3 giây.
- Tốc độ thực thi tác vụ tìm kiếm câu hỏi theo tiêu đề không được vượt quá 3 giây.
- Thời gian hệ thống tạo và gửi mã xác thực OTP qua email phục vụ chức năng khôi phục mật khẩu không được vượt quá 60 giây.
- Yêu cầu về độ chính xác: Câu hỏi phải được phân phối chính xác theo khoa và chuyển đến đúng tư vấn viên có chuyên môn tương ứng.
5. Tiến độ thực hiện đồ án đã trải qua các giai đoạn nào theo kế hoạch của nhóm tác giả?
Đề tài được tiến hành trong thời gian từ ngày 19/03/2024 đến ngày 11/07/2024 qua 10 giai đoạn công việc:
- 19/03/2024 – 26/03/2024: Nghiên cứu cơ sở lý thuyết MVC, React, MongoDB, React Native, Node.js.
- 10/04/2024 – 18/04/2024: Viết đề cương chi tiết cho đề tài.
- 18/04/2024 – 22/04/2024: Tiến hành khảo sát, phân tích hiện trạng và phân tích yêu cầu hệ thống.
- 23/04/2024 – 01/05/2024: Thiết kế cơ sở dữ liệu trên MongoDB và thiết kế giao diện mẫu.
- 02/05/2024 – 10/05/2024: Dựng mã nguồn, cấu hình database và hoàn thành chức năng đăng nhập.
- 11/05/2024 – 20/05/2024: Xây dựng trang chủ và các chức năng quản trị của Quản trị viên.
- 21/05/2024 – 30/05/2024: Hoàn thành các chức năng quản trị của Trưởng nhóm.
- 10/06/2024 – 20/06/2024: Xây dựng các chức năng trả lời câu hỏi và trả lời qua tin nhắn của Tư vấn viên.
- 21/06/2024 – 29/06/2024: Xây dựng chức năng đặt câu hỏi và nhắn tin trao đổi cho Người dùng.
- 29/06/2024 – 11/07/2024: Viết báo cáo tốt nghiệp và tiến hành kiểm thử toàn diện hệ thống.
Kết luận
Đồ án tốt nghiệp "Xây dựng hệ thống tư vấn sinh viên sử dụng MERN Stack" của sinh viên Trần Nhật Hào và Trần Thanh Phương đã giải quyết trọn vẹn mục tiêu số hóa kênh hỗ trợ thông tin học đường tại môi trường đại học. Thông qua việc làm chủ bộ công nghệ Full-stack JavaScript gồm MongoDB, Express.js, React, Node.js kết hợp cùng React Native, đề tài đã phát triển thành công một hệ thống phần mềm đa nền tảng (Web và Mobile) với quy trình kiểm duyệt chất lượng 2 cấp chặt chẽ và phân định quyền hạn khoa học cho 6 nhóm tác nhân. Toàn bộ công trình thể hiện tính chuẩn mực cao về phương pháp luận kỹ thuật phần mềm, từ phân tích yêu cầu, mô hình hóa use case, thiết kế lược đồ tuần tự đến cài đặt thử nghiệm, mang lại giá trị tham khảo thiết thực cho việc nghiên cứu và ứng dụng công nghệ thông tin trong quản lý giáo dục.