HCM ĐỒ ÁN MÔN CƠ SỞ VÀ ỨNG DỤNG HỆ THỐNG THÔNG TIN QUẢN LÝ Hệ Thống Thông Tin Trong Quản Lý Thông Tin Chi Tiết Của Học Sinh Giảng viên: Th.S Đặng Kiên Cường Sinh viên thực hiện: Đào
Cơ sở lý thuyết và phân tích nghiệp vụ
Giới thiệu hệ thống thông tin trong hệ thống quản lý học sinh
Trong thời đại chuyển đổi số và phát triển mạnh mẽ của công nghệ thông tin, việc ứng dụng các hệ thống thông tin vào lĩnh vực giáo dục ngày càng đóng vai trò quan trọng Quản lý học sinh không chỉ dừng lại ở việc lưu trữ hồ sơ, mà còn bao gồm theo dõi kết quả học tập, tra cứu nhanh thông tin và xuất báo cáo phục vụ công tác giảng dạy cũng nhƣ hành chính
Hệ thống thông tin trong quản lý học sinh là một giải pháp phần mềm giúp tự động hóa và tối ưu hóa quá trình thu thập, lưu trữ, xử lý và khai thác dữ liệu liên quan đến từng học sinh Hệ thống này cho phép nhà trường dễ dàng quản lý thông tin cá nhân của học sinh (nhƣ họ tên, lớp, giới tính, ngày sinh, liên hệ, ), đồng thời theo dõi và phân tích kết quả học tập qua các môn học cụ thể
Trong khuôn khổ đồ án này, em xây dựng một hệ thống thông tin đơn giản sử dụng ngôn ngữ lập trình Python và framework Flask, kết hợp với cơ sở dữ liệu SQLite Hệ thống cho phép người dùng (quản trị viên hoặc giáo viên) thực hiện các chức năng cơ bản nhƣ:
• Thêm, sửa, xoá học sinh
• Nhập và xem điểm các môn học
• Tìm kiếm học sinh theo tên hoặc lớp
• Tính điểm trung bình và xếp loại học lực
• Xuất danh sách học sinh kèm điểm ra file CSV
Mặc dù là một phiên bản đơn giản, hệ thống này minh họa rõ ràng cách công nghệ có thể hỗ trợ công tác quản lý trong nhà trường, giúp tiết kiệm thời gian, giảm thiểu sai sót và nâng cao hiệu quả làm việc
Tổng quan về cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu
Cơ sở dữ liệu (Database) là tập hợp có tổ chức các dữ liệu có liên quan với nhau, được lưu trữ dưới dạng điện tử để dễ dàng truy xuất và quản lý Trong các hệ thống thông tin giáo dục, cơ sở dữ liệu đóng vai trò trung tâm trong việc lưu trữ và tổ chức dữ liệu nhƣ: thông tin học sinh, điểm số, lớp học và kết quả học tập
Hệ quản trị cơ sở dữ liệu (DBMS) là phần mềm cho phép người dùng tạo, lưu trữ, truy cập và quản lý dữ liệu một cách hiệu quả, đồng thời đảm bảo tính toàn vẹn và bảo mật của thông tin DBMS cũng hỗ trợ mở rộng dữ liệu trong hệ thống một cách dễ dàng, đáp ứng nhu cầu lưu trữ và truy cập ngày càng tăng.
Một số hệ quản trị cơ sở dữ liệu phổ biến hiện nay bao gồm:
SQLite – nhẹ, đơn giản, dễ tích hợp, không cần cài đặt riêng
MySQL, PostgreSQL – mã nguồn mở, mạnh mẽ và linh hoạt
MongoDB – cơ sở dữ liệu NoSQL phù hợp với dữ liệu phi cấu trúc.
Kiến trúc Web Client – Server
Kiến trúc Client – Server là mô hình gồm hai thành phần chính:
Client (máy khách): gửi yêu cầu và hiển thị kết quả cho người dùng
Server (máy chủ): xử lý yêu cầu, truy xuất cơ sở dữ liệu và trả phản hồi
Trong Flask, client là trình duyệt và server là ứng dụng Flask xử lý logic
Ví dụ: Khi truy cập /students, Flask nhận yêu cầu, truy vấn dữ liệu học sinh từ SQLite và trả HTML để hiển thị trên trình duyệt
Hình 1.1: Sơ đồ kiến trúc web client – server
Luồng xử lý chính trong hệ thống
1.4.1 Luồng xử lý đăng nhập:
Người dùng truy cập trang /login
Hệ thống nhận dữ liệu username và password từ biểu mẫu
So sánh với dữ liệu mẫu trong biến users
Nếu đúng: gán session['username'] và chuyển về /index
Nếu sai: hiển thị thông báo lỗi
Bảng 1.1: Xử lý đăng nhập
1.4.2 Luồng xử lý hiển thị danh sách học sinh:
Người dùng truy cập /students sau khi đăng nhập
Nếu có tham số tìm kiếm (search), hệ thống lọc danh sách theo tên hoặc lớp
Dữ liệu đƣợc truy xuất từ SQLite và hiển thị trong bảng HTML
Bảng 1.2: Xử lý hiển thị danh sách học sinh
1.4.3 Luồng xử lý thêm học sinh mới:
Người dùng chọn “Thêm học sinh” từ giao diện
Nhập thông tin học sinh và gửi về /add-student qua phương thức POST
Hệ thống ghi dữ liệu vào bảng students
Người dùng → [GET /add-student] → Biểu mẫu
[POST /add-student] → Ghi dữ liệu vào CSDL → Chuyển về /students
Người dùng → Nhập tài khoản → [POST /login]
Kiểm tra tài khoản → Gán session → Chuyển hướng /index
Người dùng → [GET /students?search= ]
Flask → Truy vấn CSDL → Trả danh sách học sinh → Giao diện bảng
Bảng 1.3: Xử lý thêm học sinh mới
1.4.4 Luồng xử lý nhập điểm học sinh:
Tại trang chi tiết học sinh, người dùng chọn “Nhập điểm”
Gửi điểm các môn về /student//add-score
Dữ liệu được lưu hoặc cập nhật vào bảng scores
Người dùng → [GET /student//add-score] → Biểu mẫu nhập điểm ↓
[POST /add-score] → Ghi vào bảng scores → Trở về trang điểm
Bảng 1.4: Xử lý nhập điểm học sinh
1.4.5 Luồng xử lý xem điểm và xếp loại:
Người dùng truy cập /student//scores
Hệ thống truy xuất điểm từ scores
Tính điểm trung bình → Xếp loại học lực → Hiển thị ra giao diện avg = (math + literature + english + physics + chemistry) / 5
Bảng 1.5: Công thức tính xếp loại Xếp loại:
1.4.6 Luồng xử lý chỉnh sửa thông tin học sinh:
Người dùng vào /student//edit
Giao diện hiện thông tin cũ → người dùng sửa → nhấn lưu
Hệ thống cập nhật thông tin mới trong bảng students
1.4.7 Luồng xử lý xoá học sinh:
Người dùng nhấn nút “Xoá” tại chi tiết học sinh
Gửi POST về /student//delete
Hệ thống xoá học sinh trong students và liên kết điểm trong scores
1.4.8 Luồng xử lý xuất CSV:
Người dùng nhấn “Xuất CSV” từ danh sách học sinh
Flask truy xuất dữ liệu từ 2 bảng students và scores
Ghi vào StringIO → gửi file csv về trình duyệt.
Sơ đồ khối
Hình 1.2: Sơ đồ khối của hệ thống
Phân tích hệ thống
Các chức năng chính
Chức năng đăng nhập là bước xác thực người dùng khi truy cập vào hệ thống quản lý thông tin học sinh
Việc yêu cầu đăng nhập đóng vai trò bảo mật, giúp chỉ những người được cấp quyền, như giáo viên và quản trị viên, mới có thể truy cập các chức năng quản lý thông tin học sinh Các chức năng này bao gồm thêm mới, chỉnh sửa và tra cứu dữ liệu học sinh, được đảm bảo chỉ người có quyền mới thực hiện Qua đó hệ thống kiểm soát tốt quyền truy cập, bảo vệ dữ liệu và duy trì tính toàn vẹn của hồ sơ học sinh Việc xác thực người dùng mang lại sự an tâm cho trường học và tối ưu hóa quản trị thông tin bằng cách phân quyền rõ ràng cho từng loại tài khoản.
Giao diện đăng nhập đƣợc thiết kế đơn giản, trực quan với các thành phần chính:
Một ô nhập Tên đăng nhập
Hiển thị thông báo lỗi khi tài khoản hoặc mật khẩu không hợp lệ
Thiết kế sử dụng tông màu xanh chủ đạo, các thành phần đƣợc căn giữa và làm nổi bật để tăng tính thân thiện với người dùng
Dưới đây là hai đoạn mã của trang đăng nhập:
Hình 2.2: Đoạn mã mẫu của app.py
Hình 2.3: Đoạn mã mẫu của login.html
2.1.2 Xem danh sách học sinh:
Chức năng xem danh sách học sinh là một trong những tính năng cốt lõi của hệ thống Nó cho phép người dùng (giáo viên, quản lý) dễ dàng theo dõi toàn bộ học sinh đang được lưu trữ trong cơ sở dữ liệu, bao gồm thông tin cơ bản như họ tên và lớp học
Hình 2.4: Trang danh sách học sinh
Giao diện danh sách học sinh đƣợc thiết kế hiện đại, đơn giản, dễ sử dụng Các đặc điểm nổi bật gồm:
Bố cục rõ ràng: Giao diện đƣợc chia thành các khu vực: o Thanh điều hướng với nút "Đăng xuất" o Thanh chức năng tìm kiếm và xuất dữ liệu o Bảng danh sách học sinh kèm các hành động nhƣ Xem chi tiết và
Tương tác thân thiện: Người dùng có thể: o Tìm kiếm theo tên hoặc lớp học o Nhấn nút để thêm học sinh mới o Xuất toàn bộ danh sách ra file CSV để sử dụng ngoài hệ thống
Dưới đây là đoạn mã của trang danh sách học sinh:
Hình 2.5: Đoạn mã mẫu của students.html
2.1.3 Thêm/Sửa/Xoá học sinh:
Chức năng quản lý học sinh bao gồm việc thêm mới, chỉnh sửa và xoá học sinh khỏi hệ thống Đây là nhóm chức năng quan trọng nhằm đảm bảo dữ liệu học sinh được cập nhật thường xuyên và chính xác trong cơ sở dữ liệu
Người dùng có thể thêm một học sinh mới bằng cách điền thông tin vào biểu mẫu
Số điện thoại (tùy chọn)
Hình 2.6: Trang thêm học sinh
Dưới đây là đoạn mã tham khảo của trang thệm học sinh:
Hình 2.7: Đoạn mã mẫu của trang thêm học sinh
Hình 2.8: Đoạn mã mẫu của add_student.html
2.1.3.2 Chỉnh sửa thông tin học sinh:
Người dùng có thể sửa thông tin của một học sinh đã có bằng cách truy cập vào giao diện chỉnh sửa Các trường thông tin được tự động điền trước (dựa trên ID học sinh), cho phép chỉnh sửa và cập nhật lại
Hình 2.9: Trang chỉnh sửa thông tin học sinh
Dưới đây là đoạn mã tham khảo của trang chỉnh sửa thông tin học sinh:
Hình 2.10: Đoạn mã mẫu của app.py
Hình 2.11: Đoạn mã mẫu của edit_student.html
Hệ thống cho phép xoá học sinh khỏi cơ sở dữ liệu thông qua nút "Xoá" tại trang danh sách Trước khi xoá, hệ thống yêu cầu xác nhận để tránh thao tác nhầm
Hình 2.12: Chức năng xoá học sinh Dưới đây là đoạn code tham khảo:
Hình 2.13: Đoạn mã mẫu của app.py
2.1.4 Quản lý điểm số và đánh giá học lực:
Chức năng này cho phép người dùng nhập điểm, xem điểm chi tiết của học sinh theo từng môn học, đồng thời đánh giá học lực dựa trên điểm trung bình
Sau khi học sinh đƣợc thêm vào hệ thống, giáo viên có thể nhập điểm cho các môn:
Hóa học Điểm được nhập qua biểu mẫu và lưu vào bảng scores trong cơ sở dữ liệu Nếu học sinh đã có điểm trước đó, hệ thống sẽ cập nhật lại điểm
Hình 2.14: Trang nhập điểm học sinh Đoạn mã tham khảo:
Hình 2.15: Đoạn mã nhập điểm của app.py
Hình 2.16: Đoạn mã nhập điểm của add_score.html
Người dùng có thể xem điểm chi tiết của từng học sinh trong 5 môn học Hệ thống cũng tự động tính điểm trung bình và xếp loại học lực theo quy tắc sau:
Hình 2.17: Bảng đánh giá học lực
Hình 2.18: Trang đánh giá kết quả và đánh giá học lực Đoạn mã tham khảo:
Hình 2.19: Đoạn mã đánh giá kết quả và đánh giá học lực của app.py
Hình 2.20: Đoạn mã đánh giá kết quả và đánh giá học lực của student_scores.html
Giúp người dùng xuất toàn bộ dữ liệu học sinh (bao gồm cả thông tin cá nhân và điểm số) ra tệp CSV để sử dụng trong các phần mềm khác nhƣ Excel, Google Sheets, hoặc để lưu trữ, in ấn và tổng hợp báo cáo
Hệ thống hỗ trợ xuất danh sách học sinh dưới dạng tệp csv, với nội dung bao gồm:
Thông tin học sinh: Họ tên, lớp, ngày sinh, giới tính, SĐT, email, nơi sinh, dân tộc
Điểm số: Toán, Ngữ văn, Tiếng Anh, Vật lý, Hóa học
Người dùng có thể tìm kiếm trước và chỉ xuất những học sinh phù hợp với từ khóa lọc (theo tên hoặc lớp)
Hình 2.21: Kết quả khi xuất CSV
Mục tiêu thiết kế cơ sở dữ liệu
Cơ sở dữ liệu là thành phần then chốt trong hệ thống thông tin quản lý điểm số sinh viên Thiết kế cơ sở dữ liệu đúng sẽ giúp hệ thống lưu trữ dữ liệu điểm số của sinh viên một cách nhất quán và an toàn, tối ưu hóa hiệu suất truy vấn và báo cáo, đảm bảo toàn vẹn dữ liệu và khả năng phân tích điểm số, đồng thời dễ mở rộng khi có thêm môn học, kỳ thi hoặc chương trình đào tạo mới, từ đó tăng cường bảo mật và quản trị dữ liệu.
Lưu trữ dữ liệu nhất quán, không trùng lặp
Dễ dàng truy vấn, thống kê theo lớp, học kỳ, môn học
Hỗ trợ mở rộng: phân quyền, nhiều khoa, nhiều lớp
Tăng tốc độ xử lý và giảm thiểu sai sót khi thao tác
Do hệ thống đƣợc xây dựng ở quy mô nhỏ (một lớp học hoặc một bộ môn), nên
Microsoft Access (.accdb) được lựa chọn làm công cụ lưu trữ nhờ tính đơn giản, dễ sử dụng, không cần cài đặt server.
Mô hình dữ liệu
Tên trường Kiểu dữ liệu Ý nghĩa id INTEGER Mã số học sinh (tự tăng) name TEXT Họ và tên học sinh class_name TEXT Tên lớp học birth_date TEXT Ngày sinh gender TEXT Giới tính phone TEXT Số điện thoại email TEXT Email liên hệ place_of_birth TEXT Nơi sinh ethnicity TEXT Dân tộc
Bảng 2.2.1: Bảng students -Bảng scores (điểm số):
Tên trường Kiểu dữ liệu Ý nghĩa student_id INTEGER Khóa chính, liên kết với students(id) math REAL Điểm môn Toán literature REAL Điểm môn Ngữ văn english REAL Điểm môn Tiếng Anh physics REAL Điểm môn Vật lý
23 chemistry REAL Điểm môn Hóa học
Bảng 2.2.1: Bảng scores Trong hệ thống quản lý điểm số sinh viên, các bảng dữ liệu không tồn tại độc lập, mà liên kết chặt chẽ với nhau theo các mối quan hệ có tính logic Việc xác định rõ các mối quan hệ này giúp:
Đảm bảo tính nhất quán dữ liệu
Hỗ trợ truy vấn kết hợp (JOIN) hiệu quả
Hạn chế trùng lặp dữ liệu
Tăng cường khả năng mở rộng và bảo trì hệ thống
Việc thiết kế CSDL hợp lý với mối quan hệ 1-1 giữa bảng students và scores giúp hệ thống:
Dễ dàng truy vấn thông tin và điểm số học sinh
Duy trì tính toàn vẹn và rõ ràng trong dữ liệu
Hỗ trợ mở rộng thêm các bảng khác nhƣ courses, teachers, v.v
2.4 Ƣu điểm và Hạn chế của Mô hình Cơ sở Dữ liệu
Thiết kế cơ sở dữ liệu là một bước nền tảng quan trọng trong việc xây dựng một hệ thống thông tin Trong đồ án này, nhóm đã sử dụng mô hình cơ sở dữ liệu quan hệ đƣợc chuẩn hóa, bao gồm ba bảng chính: Students và Scores Các bảng này đƣợc liên kết với nhau thông qua khóa chính – khóa ngoại nhằm đảm bảo tính toàn vẹn và logic dữ liệu
Việc đánh giá những ƣu điểm và hạn chế của mô hình hiện tại sẽ giúp xác định được giá trị của giải pháp đã triển khai cũng như hướng phát triển mở rộng trong tương lai
1 Đảm bảo tính chuẩn hóa dữ liệu
Dữ liệu đƣợc chia thành các bảng theo đúng nguyên lý chuẩn hóa, giúp loại bỏ dƣ thừa thông tin
Tránh việc lặp lại tên môn học hay thông tin sinh viên khi lưu điểm, từ đó giảm lỗi và tăng tính nhất quán
Có thể dễ dàng thêm mới sinh viên, môn học hoặc học kỳ mà không làm thay đổi cấu trúc dữ liệu hiện có
Sẵn sàng tích hợp thêm các bảng khác nhƣ: Users, Departments, AcademicYears, v.v nếu hệ thống phát triển thêm chức năng quản trị
3 Hỗ trợ truy vấn linh hoạt
Hệ thống cho phép thực hiện các truy vấn thống kê, tổng hợp, và lọc dữ liệu một cách hiệu quả, ví dụ: o Tính điểm trung bình từng học sinh hoặc theo từng lớp o Phân loại học lực theo học kỳ hoặc toàn khóa o Thống kê tỷ lệ học sinh đạt yêu cầu hoặc cần hỗ trợ
Các truy vấn liên bảng (JOIN) đƣợc thực hiện dễ dàng nhờ thiết kế có liên kết rõ ràng
4 Thân thiện với người dùng và dễ triển khai
Microsoft Access là công cụ phổ biến, giao diện đồ họa dễ sử dụng, phù hợp với người mới làm quen cơ sở dữ liệu
Có thể chạy trực tiếp trên máy tính cá nhân mà không cần cài đặt server hay cấu hình mạng phức tạp
5 Tối ưu hóa lưu trữ dữ liệu
Việc loại bỏ thông tin trùng lặp giúp giảm dung lƣợng tập tin accdb , đồng thời tăng hiệu suất truy cập
Với số lượng bản ghi vừa và nhỏ (ví dụ dưới 10,000 bản ghi), hệ thống vẫn hoạt động mƣợt mà
1 Giới hạn mở rộng – phụ thuộc vào Access
Microsoft Access có giới hạn dung lƣợng tối đa ~2GB cho mỗi file CSDL
Không thích hợp cho hệ thống cấp trường hoặc nếu có nhiều người truy cập cùng lúc (multi-user concurrency thấp)
2 Chưa có phân quyền người dùng
Hệ thống hiện tại chỉ có một tài khoản giảng viên (admin), chƣa hỗ trợ các quyền hạn khác nhau (xem/sửa/xoá)
Thiếu bảng Users và cơ chế phân quyền theo vai trò (role-based access).
Ƣu điểm và Hạn chế của Mô hình Cơ sở Dữ liệu Access
3 Thiếu bảng học kỳ, niên khóa và phân cấp tổ chức
Hiện tại học kỳ và niên khóa được lưu dưới dạng văn bản trong bảng điểm, gây khó khăn cho việc tổng hợp và báo cáo theo năm học
Hệ thống chưa mô hình hóa đầy đủ mối quan hệ giữa các cấp: Trường – Khoa – Lớp – Sinh viên
4 Thiếu ràng buộc nâng cao
Không có kiểm tra ràng buộc logic nhƣ: một sinh viên không đƣợc đăng ký trùng môn trong cùng học kỳ
Microsoft Access không hỗ trợ các tính năng mạnh nhƣ Trigger, Stored
Procedure hay Check Constraint nhƣ các hệ quản trị cơ sở dữ liệu chuyên nghiệp
Tổng kết
Mô hình cơ sở dữ liệu quan hệ sử dụng trong đồ án là phù hợp với quy mô lớp học hoặc nhóm môn học nhỏ, có cấu trúc rõ ràng và thuận tiện để thao tác Tuy nhiên, để phát triển thành hệ thống cấp trường hoặc trực tuyến, cần chuyển đổi sang hệ quản trị cơ sở dữ liệu mạnh hơn và thiết kế lại một số cấu trúc để đáp ứng yêu cầu về mở rộng và bảo mật.
Kỹ thuật sử dụng
Ngôn ngữ lập trình
Python: Là ngôn ngữ lập trình chính để xây dựng toàn bộ hệ thống, dễ học, dễ phát triển, phù hợp cho các dự án web vừa và nhỏ
Các thƣ viện Python hỗ trợ:
Flask: Framework web nhẹ, cho phép xây dựng nhanh các ứng dụng web có cấu trúc rõ ràng
sqlite3: Kết nối cơ sở dữ liệu SQLite đơn giản và hiệu quả
csv, io: Dùng để xuất dữ liệu ra file CSV
datetime: Xử lý ngày tháng khi hiển thị thông tin học sinh.
Framework và thƣ viện
Tên thƣ viện Vai trò
Jinja2 Template engine tích hợp trong Flask
SQLite3 Cơ sở dữ liệu nhẹ, tích hợp Python
Bootstrap (tuỳ chọn) Giao diện đẹp, responsive, dễ dùng
Bảng 3.1: Thƣ viện và vai trò
Cơ sở dữ liệu
Sử dụng SQLite3: Một cơ sở dữ liệu nhẹ, không cần cài đặt riêng biệt, phù hợp với hệ thống đơn giản và demo
students: Lưu thông tin cá nhân học sinh
scores: Lưu điểm các môn học, liên kết với students qua khóa ngoại student_id
CREATE TABLE students ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, class_name TEXT, birth_date TEXT, gender TEXT, phone TEXT, email TEXT, place_of_birth TEXT, ethnicity TEXT
Bảng 3.2: Cấu trúc bảng students
CREATE TABLE scores ( student_id INTEGER PRIMARY KEY, math REAL, literature REAL, english REAL, physics REAL, chemistry REAL, FOREIGN KEY (student_id) REFERENCES students(id)
Bảng 3.2: Cấu trúc bảng scores
Giao diện người dùng
Sử dụng HTML kết hợp Jinja2 để hiển thị dữ liệu động
login.html: Trang đăng nhập
students.html: Danh sách học sinh
add_student.html, edit_student.html: Thêm/Sửa học sinh
student_info.html, student_scores.html: Hiển thị chi tiết thông tin và điểm học sinh
Giao diện dễ sử dụng, tương thích trình duyệt, có thể dùng thêm CSS hoặc Bootstrap để cải thiện trải nghiệm.
Các chức năng chính đã lập trình
Xác thực đăng nhập bằng session Flask
Thêm/Sửa/Xoá học sinh, quản lý điểm
Tìm kiếm học sinh theo tên hoặc lớp
Tính trung bình điểm và xếp loại học lực (Giỏi, Khá, Trung bình, Yếu)
Xuất dữ liệu ra file CSV dùng cho báo cáo hoặc in ấn.
Mô hình hoạt động hệ thống
Người dùng truy cập qua trình duyệt → Giao diện Flask trả về HTML → Flask xử lý logic → Giao tiếp với cơ sở dữ liệu SQLite → Trả về kết quả
Dữ liệu điểm số đƣợc xử lý và tính toán phía server
Giao diện hiển thị dữ liệu một cách trực quan cho người quản lý
Hướng phát triển
Phát triển chức năng người dùng
Hiện tại hệ thống chỉ hỗ trợ một tài khoản duy nhất cho giáo viên
Trong tương lai, có thể xây dựng bảng users kết hợp phân quyền (quản trị viên, giáo viên bộ môn, sinh viên)
Mỗi người dùng sẽ được cấp quyền truy cập phù hợp: xem, sửa, xoá, thêm
Tích hợp chức năng đăng ký/đổi mật khẩu:
Thêm trang đăng ký tài khoản mới
Cho phép đổi mật khẩu và phục hồi mật khẩu khi quên.
Mở rộng cơ sở dữ liệu
Thêm bảng courses (môn học):
Tách riêng tên môn học và mã môn ra bảng riêng, dễ mở rộng khi có thêm môn học mới
Tránh lặp dữ liệu điểm theo từng môn
Thêm bảng semesters, academic_years:
Quản lý theo từng học kỳ và niên khóa
Hỗ trợ truy vấn điểm theo học kỳ cụ thể hoặc theo năm học
Xây dựng quan hệ nhiều-nhiều giữa học sinh và môn học:
Tăng tính linh hoạt khi quản lý điểm theo lớp, học kỳ, môn học.
Phát triển báo cáo thống kê nâng cao
Thống kê học lực toàn khối/lớp:
Thống kê số lƣợng học sinh giỏi, khá, trung bình, yếu
Tính điểm trung bình theo môn, theo lớp
Biểu đồ trực quan (dùng Chart.js hoặc Plotly):
Trình bày kết quả học tập qua biểu đồ cột, tròn, đường
Giao diện thân thiện và dễ theo dõi hơn.
Tích hợp công nghệ Web hiện đại
Nâng cấp giao diện người dùng (UI):
Áp dụng giao diện Responsive với Bootstrap hoặc Tailwind CSS
Hỗ trợ tốt trên điện thoại và máy tính bảng
Sử dụng AJAX/Fetch API để xử lý dữ liệu không tải lại trang:
Nâng cao trải nghiệm người dùng
Giảm thời gian tải trang khi nhập/sửa điểm.
Mở rộng triển khai hệ thống
Triển khai trên mạng LAN hoặc Internet:
Dùng các dịch vụ nhƣ PythonAnywhere, Heroku hoặc VPS
Cho phép giáo viên truy cập mọi lúc, mọi nơi
Kết nối với hệ thống SMS/email:
Tự động gửi thông báo điểm hoặc học lực cho phụ huynh qua email hoặc tin nhắn.
Tổng kết
Hệ thống hiện tại đã đáp ứng tốt các chức năng cơ bản trong quản lý học sinh Tuy nhiên, với nhu cầu thực tế trong giáo dục hiện đại, hệ thống hoàn toàn có khả năng mở rộng và phát triển mạnh mẽ hơn nữa với các công nghệ web mới, khả năng thống kê, phân quyền, và triển khai toàn diện