Giới thiệu dự án
Bối cảnh và lý do chọn đề tài
Trong kỷ nguyên chuyển đổi số 4.0, ngành giáo dục đang chứng kiến sự dịch chuyển mạnh mẽ từ các phương thức vận hành thủ công sang hệ thống thông tin tự động hóa. Theo các khảo sát thực tế tại các trường Trung học Cơ sở (THCS) vùng ven và nông thôn, hơn 68% quy trình quản trị học sinh, nhập sổ điểm, phân công giảng dạy và phê duyệt hạnh kiểm vẫn phụ thuộc nặng nề vào hồ sơ giấy hoặc các bảng tính Excel rời rạc. Phương thức này gây ra tình trạng phân mảnh dữ liệu, chậm trễ trong việc tổng hợp kết quả học tập và tiềm ẩn sai sót số liệu lên tới 12-15% mỗi kỳ đánh giá.
Trường THCS Nguyễn Văn Trỗi (huyện Hoằng Hóa, tỉnh Thanh Hóa) với quy mô hàng trăm học sinh phân bổ qua 4 khối lớp (6, 7, 8, 9) đối mặt với bài toán tối ưu hóa công tác quản trị học vụ. Đồ án tốt nghiệp "Xây dựng website quản lý học sinh cho trường Trung học Cơ sở Nguyễn Văn Trỗi" do sinh viên Lê Xuân Sơn thực hiện dưới sự hướng dẫn của TS. Lê Chí Luận (Trường Đại học Công nghệ Giao thông vận tải) tập trung giải quyết triệt để bài toán số hóa nghiệp vụ quản lý học đường thông qua việc xây dựng một hệ thống web hướng dịch vụ hiện đại.
Vấn đề cụ thể cần giải quyết
- Thao tác thủ công, tốn nhân lực: Giáo viên mất từ 30-45 phút cho mỗi buổi tổng kết điểm thành phần (kiểm tra miệng, 15 phút, 1 tiết, giữa kỳ, cuối kỳ) cho một lớp học 45 học sinh.
- Thiếu tính liên thông và bảo mật: Dữ liệu học bạ, lịch sử chỉnh sửa điểm không được kiểm soát theo phiên bản, tiềm ẩn rủi ro sai lệch dữ liệu.
- Giao tiếp đa chiều hạn chế: Học sinh và phụ huynh gặp rào cản trong việc tra cứu thời khóa biểu, theo dõi diễn biến kết quả học lực và gửi phản hồi trực tiếp tới nhà trường.
Mục tiêu dự án
- Khảo sát toàn diện quy trình nghiệp vụ và thu thập yêu cầu thực tế từ Ban Giám hiệu Trường THCS Nguyễn Văn Trỗi.
- Thiết kế kiến trúc hệ thống hướng dịch vụ phân tách rõ ràng giữa giao diện người dùng (Frontend) và logic nghiệp vụ máy chủ (Backend).
- Xây dựng cơ sở dữ liệu quan hệ chuẩn hóa cao trên MySQL, đảm bảo tính toàn vẹn dữ liệu cho 15 bảng thực thể.
- Hiện thực hóa toàn bộ các phân hệ quản lý: Tài khoản, Học sinh, Giáo viên, Khối/Lớp, Môn học, Thời khóa biểu, Điểm số, Hạnh kiểm và Báo cáo thống kê.
- Kiểm thử chức năng, đo lường hiệu năng và tối ưu hóa trải nghiệm người dùng trên môi trường thực tế.
Phương pháp tiếp cận
Dự án áp dụng mô hình kiến trúc phân tầng (Multi-tier Architecture) kết hợp thiết kế Single Page Application (SPA). Phía Frontend sử dụng Vue.js nhằm tăng tốc độ render giao diện và tính tương tác động. Phía Backend triển khai ASP.NET Core Web API (C#) để xây dựng hệ thống RESTful API an toàn, hiệu năng cao, kết hợp cùng hệ quản trị cơ sở dữ liệu quan hệ MySQL 8.0.
Kết quả kỳ vọng
- Thời gian xử lý và tổng hợp điểm số trung bình giảm từ 3 ngày xuống dưới 5 giây.
- Khả năng xử lý đồng thời (concurrency) đáp ứng ổn định 100+ requests/giây với thời gian phản hồi (latency) trung bình dưới 250ms.
- Tự động hóa 100% việc tính toán điểm trung bình môn học kỳ ($ĐTB_{mhk}$), điểm trung bình môn cả năm ($ĐTB_{mcn}$) và xếp loại học lực/hạnh kiểm theo quy chế Bộ Giáo dục và Đào tạo.
Phạm vi và giới hạn
- Phạm vi: Triển khai thử nghiệm tại Trường THCS Nguyễn Văn Trỗi phục vụ 3 nhóm đối tượng: Ban Giám hiệu (Admin), Giáo viên (Teacher), và Học sinh (Student).
- Giới hạn: Hệ thống tập trung vào nền tảng Web Application, chưa tích hợp cổng thanh toán học phí trực tuyến và chưa phát hành ứng dụng di động native (iOS/Android).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
+-----------------------------------------------------------------------------------+
| SO SÁNH CÁC GIẢI PHÁP QUẢN LÝ HỌC SINH |
+----------------------+-----------------------------+------------------------------+
| Giải pháp | Ưu điểm | Nhược điểm |
+----------------------+-----------------------------+------------------------------+
| Sổ điểm giấy & Excel | - Chi phí đầu tư ban đầu 0đ | - Dễ thất lạc, khó sao lưu |
| truyền thống | - Không cần đào tạo tin học | - Không phân quyền chi tiết |
| | | - Tính toán sai sót cao |
+----------------------+-----------------------------+------------------------------+
| Phần mềm thương mại | - Đầy đủ tính năng nâng cao | - Chi phí bản quyền định kỳ |
| đóng gói (SaaS) | - Có đội ngũ bảo trì sẵn | - Khó tùy biến quy trình |
| | | - Phụ thuộc hạ tầng vendor |
+----------------------+-----------------------------+------------------------------+
| Hệ thống Web tùy | - Thiết kế bám sát thực tế | - Cần đội ngũ duy trì, bảo |
| biến theo trường | - Tối ưu luồng nghiệp vụ | trì và cập nhật định kỳ |
| (Đồ án đề xuất) | - Tiết kiệm chi phí vận hành| |
+----------------------+-----------------------------+------------------------------+
Phân loại yêu cầu theo mô hình MoSCoW
- Must have (Bắt buộc phải có): Xác thực người dùng (Authentication & Role-based Authorization), CRUD học sinh/giáo viên/lớp học, nhập điểm thành phần, thuật toán tính $ĐTB_{mhk}$ và $ĐTB_{mcn}$, xếp loại học lực, phân loại hạnh kiểm.
- Should have (Nên có): Quản lý thời khóa biểu, hệ thống gửi/nhận phản hồi hai chiều giữa học sinh và giáo viên, xuất báo cáo thống kê theo lớp/học kỳ.
- Could have (Có thể có): Quản lý danh mục khen thưởng, xuất báo cáo định dạng PDF/Excel linh hoạt.
- Won't have (Chưa hỗ trợ đợt này): Nhận diện khuôn mặt điểm danh tự động, tích hợp tin nhắn SMS Brandname/Zalo ZNS.
Thiết kế hệ thống
Sơ đồ kiến trúc thành phần (Component Diagram)
graph TD
subgraph Client_Layer ["Client Layer (Giao diện người dùng)"]
UI_Admin["Admin Dashboard (Vue.js 3 / Vue Router / Pinia)"]
UI_Teacher["Teacher Portal (Vue.js 3 / Axios)"]
UI_Student["Student Portal (Vue.js 3 / Responsive UI)"]
end
subgraph API_Gateway ["RESTful API & Middleware Layer (.NET Core)"]
JWT_Auth["JWT Authentication & RBAC Middleware"]
Routing["API Routing / Controller Endpoints"]
Validator["Data Validation & Exception Handler"]
end
subgraph Business_Layer ["Business Logic & Data Access Layer"]
BLL_Student["Student & Teacher Service"]
BLL_Grade["Grade Calculation & Academic Engine"]
BLL_Schedule["Timetable & Feedback Service"]
ORM["Entity Framework Core 7.0 / ADO.NET"]
end
subgraph Data_Layer ["Data Persistence Layer"]
MySQL_DB[(MySQL 8.0 Database)]
end
UI_Admin -->|HTTPS / JSON Requests| JWT_Auth
UI_Teacher -->|HTTPS / JSON Requests| JWT_Auth
UI_Student -->|HTTPS / JSON Requests| JWT_Auth
JWT_Auth --> Routing
Routing --> Validator
Validator --> BLL_Student
Validator --> BLL_Grade
Validator --> BLL_Schedule
BLL_Student --> ORM
BLL_Grade --> ORM
BLL_Schedule --> ORM
ORM -->|TCP Connection Pool| MySQL_DB
Tech Stack và phiên bản cụ thể
- Frontend Framework: Vue.js v3.3+ (JavaScript ES6+, Vite Build Tool, Vue Router, Axios v1.4.0).
- Backend Framework: ASP.NET Core Web API (.NET 7.0 / C# v11.0).
- Database Management System: MySQL Server Community Edition v8.0.33.
- Object-Relational Mapping (ORM): Entity Framework Core v7.0.
- Công cụ mô hình hóa & quản trị: StarUML v5.0, dbForge Studio for MySQL v9.1, Postman v10.15, Visual Studio 2022 Enterprise, Visual Studio Code v1.82.
Thiết kế cơ sở dữ liệu (Database Schema)
Cơ sở dữ liệu bao gồm 15 bảng quan hệ được thiết kế chuẩn hóa mức 3NF nhằm loại bỏ dư thừa dữ liệu:
-- Cấu trúc bảng học sinh và điểm số trung tâm
CREATE TABLE `HocSinh` (
`MaHocSinh` VARCHAR(20) NOT NULL PRIMARY KEY,
`HoTen` VARCHAR(100) NOT NULL,
`NgaySinh` DATE NOT NULL,
`GioiTinh` TINYINT(1) NOT NULL,
`DiaChi` VARCHAR(255),
`SoDienThoai` VARCHAR(15),
`MaLop` VARCHAR(20) NOT NULL,
`TrangThai` TINYINT(1) DEFAULT 1,
CONSTRAINT `FK_HocSinh_LopHoc` FOREIGN KEY (`MaLop`) REFERENCES `LopHoc`(`MaLop`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE `Diem` (
`MaDiem` INT AUTO_INCREMENT PRIMARY KEY,
`MaHocSinh` VARCHAR(20) NOT NULL,
`MaMonHoc` VARCHAR(20) NOT NULL,
`MaHocKy` VARCHAR(10) NOT NULL,
`MaNamHoc` VARCHAR(10) NOT NULL,
`DiemKTMieng` DECIMAL(4,2) DEFAULT NULL,
`DiemKT15Phut` DECIMAL(4,2) DEFAULT NULL,
`DiemKT1Tiet` DECIMAL(4,2) DEFAULT NULL,
`DiemThiGK` DECIMAL(4,2) DEFAULT NULL,
`DiemThiCK` DECIMAL(4,2) DEFAULT NULL,
`DTBMHK` DECIMAL(4,2) DEFAULT NULL,
CONSTRAINT `FK_Diem_HocSinh` FOREIGN KEY (`MaHocSinh`) REFERENCES `HocSinh`(`MaHocSinh`),
CONSTRAINT `FK_Diem_MonHoc` FOREIGN KEY (`MaMonHoc`) REFERENCES `MonHoc`(`MaMonHoc`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Thiết kế RESTful API
Hệ thống cung cấp danh mục API endpoints chuẩn hóa theo giao thức HTTP:
| Method |
Endpoint URI |
Mô tả chức năng |
Quyền truy cập (RBAC) |
POST |
/api/v1/auth/login |
Xác thực người dùng, sinh JWT token |
Public |
GET |
/api/v1/students |
Lấy danh sách học sinh theo lớp/khối |
Admin, Teacher |
POST |
/api/v1/students |
Tiếp nhận và cấp mã học sinh mới |
Admin |
PUT |
/api/v1/students/{id} |
Cập nhật thông tin lý lịch học sinh |
Admin, Teacher |
DELETE |
/api/v1/students/{id} |
Xóa hồ sơ học sinh (kiểm tra ràng buộc) |
Admin |
POST |
/api/v1/grades/batch |
Nhập bảng điểm theo danh sách lớp |
Teacher |
GET |
/api/v1/grades/report |
Xuất báo cáo điểm tổng kết năm học |
Admin, Teacher, Student |
Thiết kế bảo mật và hiệu năng
- Bảo mật: Triển khai JSON Web Token (JWT) với thuật toán ký
HMAC-SHA256, mật khẩu được mã hóa salt/hash thông qua BCrypt. Áp dụng cơ chế phân quyền dựa trên vai trò (Role-Based Access Control - RBAC) tại tầng Middleware của ASP.NET Core.
- Hiệu năng: Thiết lập chỉ mục (Indexing) trên các khóa ngoại
MaLop, MaHocSinh, MaMonHoc trong MySQL; áp dụng Lazy Loading kết hợp eager loading (.Include()) hợp lý trong EF Core để loại bỏ triệt để vấn đề $N+1$ query.
Phương pháp luận phát triển (Methodology)
Dự án được triển khai theo mô hình Agile/Scrum rút gọn với chu kỳ Sprint 2 tuần, kéo dài tổng cộng 12 tuần:
- Tuần 1-3 (Khảo sát & Phân tích): Phỏng vấn Ban Giám hiệu, xây dựng biểu đồ Use Case tổng quát và bảng đặc tả chi tiết.
- Tuần 4-6 (Thiết kế & Database): Thiết kế biểu đồ lớp, biểu đồ tuần tự (Sequence Diagram), dựng schema MySQL trên dbForge Studio.
- Tuần 7-9 (Hiện thực hóa Backend & Frontend): Xây dựng ASP.NET Core Web API và giao diện Vue.js.
- Tuần 10-11 (Tích hợp & Kiểm thử): Kiểm thử API qua Postman, kiểm thử UAT với giáo viên thực tế.
- Tuần 12 (Tổng kết & Triển khai): Đánh giá hiệu năng, hoàn thiện báo cáo đồ án.
Implementation và kết quả
Quy trình phát triển và thuật toán cốt lõi
Hệ thống tính toán điểm trung bình môn học kỳ và cả năm tuân thủ quy chế đánh giá của nhà trường và Bộ Giáo dục:
$$\text{ĐTB}_{\text{mhk}} = \frac{\sum \text{ĐĐGTX} + 2 \times \text{ĐĐGGK} + 3 \times \text{ĐĐGCK}}{\text{Số lượng ĐĐGTX} + 5}$$
$$\text{ĐTB}{\text{mcn}} = \frac{\text{ĐTB}{\text{mhk1}} + 2 \times \text{ĐTB}_{\text{mhk2}}}{3}$$
Hiện thực hóa thuật toán tính điểm và xếp loại trên Backend (.NET Core / C#)
public class AcademicEvaluationService : IAcademicEvaluationService
{
public GradeResultDto CalculateSubjectAverage(GradeInputModel model)
{
// Tính tổng điểm đánh giá thường xuyên (hệ số 1)
decimal sumRegular = model.OralGrades.Sum() + model.FifteenMinGrades.Sum() + model.PeriodGrades.Sum() * 2;
int countRegular = model.OralGrades.Count + model.FifteenMinGrades.Count + (model.PeriodGrades.Count * 2);
// Áp dụng công thức chuẩn: (Tổng ĐĐGTX + 2*GK + 3*CK) / (Tổng hệ số ĐĐGTX + 5)
decimal totalScore = sumRegular + (2 * model.MidTermGrade) + (3 * model.FinalGrade);
int totalWeight = countRegular + 5;
decimal dtbmhk = Math.Round(totalScore / totalWeight, 2, MidpointRounding.AwayFromZero);
return new GradeResultDto {
SubjectId = model.SubjectId,
SemesterAverage = dtbmhk
};
}
public string EvaluateAcademicRank(decimal gpa, List<decimal> subjectAverages)
{
decimal minSubjectScore = subjectAverages.Min();
// Quy tắc phân loại học lực
if (gpa >= 8.0m && minSubjectScore >= 6.5m)
return "GIỎI";
if (gpa >= 6.9m && minSubjectScore >= 5.0m)
return "KHÁ";
if (gpa >= 5.4m && minSubjectScore >= 3.5m)
return "TRUNG BÌNH";
if (gpa >= 3.9m && minSubjectScore >= 2.0m)
return "YẾU";
return "KÉM";
}
}
Xây dựng giao diện nhập điểm phản hồi nhanh trên Frontend (Vue.js)
<template>
<div class="grade-management-container">
<h3 class="title">Bảng Nhập Điểm Lớp: {{ classInfo.name }}</h3>
<table class="table-grade">
<thead>
<tr>
<th>Mã HS</th>
<th>Họ Tên</th>
<th>Miệng</th>
<th>15 Phút</th>
<th>1 Tiết</th>
<th>Giữa Kỳ</th>
<th>Cuối Kỳ</th>
<th>ĐTB Môn</th>
</tr>
</thead>
<tbody>
<tr v-for="student in studentList" :key="student.id">
<td>{{ student.code }}</td>
<td>{{ student.fullName }}</td>
<td><input type="number" step="0.1" v-model.number="student.gradeOral" @change="recompute(student)" /></td>
<td><input type="number" step="0.1" v-model.number="student.grade15m" @change="recompute(student)" /></td>
<td><input type="number" step="0.1" v-model.number="student.grade1Period" @change="recompute(student)" /></td>
<td><input type="number" step="0.1" v-model.number="student.gradeMid" @change="recompute(student)" /></td>
<td><input type="number" step="0.1" v-model.number="student.gradeFinal" @change="recompute(student)" /></td>
<td class="bold-highlight">{{ student.dtbmhk.toFixed(2) }}</td>
</tr>
</tbody>
</table>
<button class="btn-primary" :disabled="isSubmitting" @click="saveGrades">Lưu Bảng Điểm</button>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
studentList: [],
classInfo: { id: 'L8A', name: 'Lớp 8A' },
isSubmitting: false
};
},
methods: {
recompute(student) {
const sumRegular = Number(student.gradeOral || 0) + Number(student.grade15m || 0) + (Number(student.grade1Period || 0) * 2);
const totalWeight = 1 + 1 + 2 + 5; // 4 + 5 = 9
const totalScore = sumRegular + (2 * Number(student.gradeMid || 0)) + (3 * Number(student.gradeFinal || 0));
student.dtbmhk = totalScore / totalWeight;
},
async saveGrades() {
this.isSubmitting = true;
try {
await axios.post('/api/v1/grades/batch', { payload: this.studentList });
alert('Cập nhật bảng điểm thành công!');
} catch (err) {
console.error('Lỗi khi lưu bảng điểm:', err);
} finally {
this.isSubmitting = false;
}
}
}
};
</script>
Kiểm thử và đánh giá chương trình
+-----------------------------------------------------------------------------------+
| KẾT QUẢ KIỂM THỬ CHỨC NĂNG HỆ THỐNG |
+----+--------------------------------+-----------------+-------------+-------------+
| STT| Kịch bản kiểm thử | Dữ liệu đầu vào | Kỳ vọng | Trạng thái |
+----+--------------------------------+-----------------+-------------+-------------+
| 01 | Đăng nhập tài khoản BGH (Admin)| Đúng User/Pass | Trả JWT | ĐẠT (Pass) |
| 02 | Thêm mới học sinh (Trùng mã HS)| Mã đã tồn tại | Báo lỗi 400 | ĐẠT (Pass) |
| 03 | Nhập điểm ngoài thang (0-10) | Nhập điểm: 11.5 | Chặn input | ĐẠT (Pass) |
| 04 | Xóa lớp học đang có học sinh | Lớp có 45 HS | Ràng buộc FK| ĐẠT (Pass) |
| 05 | Tự động tính ĐTBM và xếp loại | Điểm hợp lệ | Khớp 100% | ĐẠT (Pass) |
+----+--------------------------------+-----------------+-------------+-------------+
- Kiểm thử đơn vị (Unit Test) & Tích hợp (Integration Test): Đạt tỷ lệ bao phủ mã nguồn 86% trên các tầng Service và Controller của .NET Core API.
- Benchmark hiệu năng: Kiểm thử bằng công cụ Apache JMeter với kịch bản 150 người dùng đồng thời truy vấn bảng điểm:
- Tỷ lệ lỗi (Error rate): 0.00%.
- Thời gian phản hồi trung bình (Avg Response Time): 182ms.
- Băng thông xử lý (Throughput): 124 requests/sec.
Kết quả đạt được so với mục tiêu ban đầu
- Hoàn thành 100% các chức năng thiết yếu theo yêu cầu khảo sát từ Hiệu trưởng Nhữ Thị Tư Hằng.
- Giao diện người dùng trên Vue.js trực quan, tương thích hiển thị trên nhiều độ phân giải màn hình từ Desktop đến Tablet.
- Mức độ hài lòng của giáo viên trong đợt thử nghiệm thực tế đạt 94.2% qua khảo sát đánh giá tính khả dụng.
Đổi mới và đóng góp
Điểm cải tiến kỹ thuật nổi bật
- Cơ chế lưu trữ và tính toán Reactive: Nhờ ứng dụng reactivity system của Vue.js kết hợp cùng REST API bất đồng bộ (async/await trong C#), giáo viên có thể xem trước kết quả tính điểm trung bình ngay trong lúc nhập dữ liệu mà không cần tải lại toàn bộ trang.
- Khử trùng lặp và toàn vẹn dữ liệu nâng cao: Sử dụng cơ chế Foreign Key Constraints kết hợp Transaction Scope trong Entity Framework Core, đảm bảo các thao tác ghi nhận điểm, xóa dữ liệu liên kết không xảy ra hiện tượng mồ côi bản ghi (orphan records).
- Tối ưu hóa thời gian xử lý học vụ:
+-------------------------------------------------------------------------------+
| ĐO LƯỜNG TỐI ƯU HÓA HIỆU SUẤT CÔNG VIỆC |
+------------------------------------+------------------+-----------------------+
| Tác vụ quản lý | Quy trình cũ | Quy trình trên Website|
+------------------------------------+------------------+-----------------------+
| Nhập và duyệt điểm 1 lớp học | 45 phút | 4 phút (-91.1%) |
| Tính điểm trung bình & xếp loại | 2 - 3 ngày | < 5 giây (-99.9%) |
| Lập báo cáo tổng kết học kỳ | 5 ngày làm việc | 30 giây (-99.8%) |
| Tra cứu lịch sử học tập 1 học sinh | 15 - 20 phút | < 2 giây (-99.7%) |
+------------------------------------+------------------+-----------------------+
Đóng góp thực tiễn cho cơ sở giáo dục
Đề tài cung cấp một giải pháp phần mềm mã nguồn mở hoàn chỉnh, có tính ứng dụng trực tiếp cao cho Trường THCS Nguyễn Văn Trỗi nói riêng và các trường học phổ thông nói chung, giúp tiết kiệm chi phí đầu tư phần mềm thương mại hàng năm cho nhà trường.
Ứng dụng thực tế và triển khai
Kịch bản sử dụng thực tế (Use Case Scenarios)
- Ban Giám hiệu: Đầu năm học, Admin tạo niên khóa mới, thiết lập danh mục 4 khối lớp, nhập danh sách phân công chuyên môn cho giáo viên và ban hành thời khóa biểu toàn trường.
- Giáo viên bộ môn / Chủ nhiệm: Hàng tuần, giáo viên bộ môn truy cập hệ thống để nhập điểm kiểm tra thường xuyên và định kỳ. Cuối học kỳ, giáo viên chủ nhiệm đánh giá hạnh kiểm trực tiếp trên giao diện và phê duyệt báo cáo học lực tự động.
- Học sinh: Đăng nhập tài khoản cá nhân để theo dõi tiến độ điểm số, xem thời khóa biểu trong tuần và gửi ý kiến phản hồi về nhà trường.
Chiến lược triển khai hạ tầng (Deployment Plan)
- Máy chủ Ứng dụng (Application Server): Triển khai .NET Core Web API trên hệ điều hành Ubuntu Linux Server sử dụng Kestrel Server kết hợp Reverse Proxy Nginx.
- Máy chủ Cơ sở dữ liệu: Cài đặt MySQL Database Server với cơ chế sao lưu tự động (Daily Auto Backup) lúc 01:00 AM.
- Tên miền & Chứng chỉ bảo mật: Cấu hình SSL/TLS (Let's Encrypt) đảm bảo mã hóa dữ liệu đường truyền HTTPS.
+-------------------------------------------------------------------------------+
| LỘ TRÌNH TRIỂN KHAI VẬN HÀNH |
+----------------------+-----------------------------+--------------------------+
| Giai đoạn | Nội dung công việc | Thời lượng |
+----------------------+-----------------------------+--------------------------+
| Giai đoạn 1 (Setup) | Cài đặt Server, cấu hình DB | Tuần 1 |
| Giai đoạn 2 (Pilot) | Nhập liệu thử nghiệm khối 8 | Tuần 2 - Tuần 3 |
| Giai đoạn 3 (Train) | Tập huấn giáo viên sử dụng | Tuần 4 |
| Giai đoạn 4 (Go-Live)| Vận hành chính thức 4 khối | Từ học kỳ kế tiếp |
+----------------------+-----------------------------+--------------------------+
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Hệ thống chưa triển khai kiến trúc bộ nhớ đệm phân tán (như Redis Cache) cho các truy vấn báo cáo dữ liệu lớn.
- Chưa tích hợp cơ chế khôi phục mật khẩu tự động qua Email SMTP hoặc mã OTP điện thoại.
Hướng phát triển trong tương lai
- Phát triển Ứng dụng Di động: Xây dựng ứng dụng di động đa nền tảng bằng Flutter hoặc React Native cho phụ huynh và học sinh.
- Tích hợp Trí tuệ Nhân tạo (AI): Nghiên cứu tích hợp mô hình Machine Learning dự đoán nguy cơ giảm sút học lực dựa trên chuỗi điểm thành phần để đưa ra cảnh báo sớm cho giáo viên.
- Liên thông dữ liệu ngành: Nâng cấp chuẩn API để đồng bộ trực tiếp dữ liệu học sinh với cơ sở dữ liệu ngành của Sở Giáo dục và Đào tạo.
Đối tượng hưởng lợi
- Học sinh & Phụ huynh: Tra cứu kết quả học tập minh bạch, theo dõi sát sao tiến độ rèn luyện mọi lúc mọi nơi.
- Giáo viên: Cắt giảm hơn 90% áp lực tính toán thủ công sổ sách, hạn chế tối đa rủi ro sai sót số liệu điểm.
- Ban Giám hiệu: Sở hữu công cụ số liệu tổng hợp tức thời phục vụ công tác ra quyết định và báo cáo cấp phòng/sở.
- Cộng đồng lập trình viên & Sinh viên: Đồ án là tài liệu tham khảo chi tiết về mô hình phân tích thiết kế hệ thống thông tin bằng UML, kết hợp kiến trúc Vue.js và .NET Core Web API.
Câu hỏi thường gặp
1. Cấu hình phần cứng tối thiểu để triển khai máy chủ hệ thống là gì?
Để vận hành ổn định cho quy mô một trường THCS (dưới 2.000 học sinh), hệ thống yêu cầu cấu hình máy chủ tối thiểu: CPU 2 Cores, RAM 4GB, ổ cứng SSD 40GB chạy hệ điều hành Ubuntu Server 20.04 LTS hoặc Windows Server 2019 trở lên.
2. Dữ liệu điểm số có được đảm bảo an toàn nếu gặp sự cố mất điện máy chủ?
Cơ sở dữ liệu MySQL sử dụng Storage Engine InnoDB với cơ chế ghi log giao dịch ACID (Atomicity, Consistency, Isolation, Durability) chuẩn mực. Mọi thao tác nhập điểm đều nằm trong Transaction, nếu xảy ra gián đoạn hệ thống sẽ tự động rollback dữ liệu về trạng thái an toàn gần nhất.
3. Hệ thống có thể mở rộng để áp dụng cho trường liên cấp (Tiểu học - THCS - THPT) không?
Có. Nhờ thiết kế mô-đun hóa cao và chuẩn RESTful API, việc mở rộng thang điểm, quy tắc tính toán điểm cho khối Tiểu học (đánh giá bằng nhận xét) hoặc THPT chỉ cần tùy biến tầng Business Logic Service mà không cần phá vỡ cấu trúc cơ sở dữ liệu hiện hữu.
4. Chi phí bản quyền phần mềm để vận hành website là bao nhiêu?
Hệ thống được xây dựng hoàn toàn trên nền tảng công nghệ mã nguồn mở miễn phí bản quyền (Vue.js, .NET Core, MySQL Community Edition, Nginx, Linux), giúp nhà trường tối ưu 100% chi phí mua bản quyền phần mềm.
5. Website có hỗ trợ nhập/xuất danh sách điểm từ file Excel không?
Kiến trúc Backend .NET Core đã sẵn sàng tích hợp các thư viện xử lý tài liệu như EPPlus hoặc ClosedXML, cho phép nhà trường nhanh chóng tích hợp tính năng Import/Export danh sách học sinh và bảng điểm từ Excel chỉ với một thao tác.
Kết luận
Đồ án tốt nghiệp "Xây dựng website quản lý học sinh cho trường Trung học Cơ sở Nguyễn Văn Trỗi" của sinh viên Lê Xuân Sơn đã hoàn thành xuất sắc các mục tiêu nghiên cứu và ứng dụng công nghệ thông tin vào thực tiễn quản lý giáo dục. Bằng việc kết hợp hiệu quả giữa quy trình phân tích thiết kế hệ thống chuyên sâu theo chuẩn UML và bộ đôi công nghệ hiện đại Vue.js – ASP.NET Core API – MySQL, hệ thống mang lại giải pháp quản trị học sinh toàn diện, bảo mật và đạt hiệu năng cao. Đây là nền tảng vững chắc hướng tới mục tiêu hiện đại hóa học đường, mở ra tiềm năng nhân rộng mô hình cho các cơ sở giáo dục phổ thông trong bối cảnh chuyển đổi số toàn diện.