Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, các ứng dụng phần mềm ngày càng đóng vai trò quan trọng trong việc hỗ trợ và tự động hóa các nghiệp vụ phức tạp của đời sống xã hội cũng như quản lý giáo dục. Tại Trường Trung học cơ sở (THCS) Nguyễn Văn Trỗi (xã Tam Dân, huyện Phú Ninh, tỉnh Quảng Nam), công tác quản lý điểm số, hồ sơ học sinh và xếp loại học lực theo phương pháp thủ công truyền thống bộc lộ nhiều hạn chế. Việc xử lý bằng sổ sách, ghi chép tay đòi hỏi sự tham gia của nhiều nhân sự qua nhiều công đoạn, làm gia tăng thời gian xử lý, dễ dẫn đến thất lạc dữ liệu, tốn kém chi phí lưu trữ và khó tránh khỏi sai sót trong quá trình tính điểm trung bình cũng như tổng kết kết quả học tập của học sinh toàn trường.

Nhằm giải quyết các bất cập trên, đề tài khóa luận thực tập tốt nghiệp được thực hiện nhằm xây dựng một hệ thống phần mềm ứng dụng web để số hóa quy trình quản lý điểm số tại cơ sở giáo dục này.

Các mục tiêu nghiên cứu cụ thể của đề tài bao gồm:

  1. Nghiên cứu cơ sở lý thuyết về các công nghệ phát triển web hiện đại, bao gồm HTML, CSS, Bootstrap, jQuery, nền tảng Node.js và hệ quản trị cơ sở dữ liệu PostgreSQL.
  2. Vận dụng các kiến thức lý thuyết đã nghiên cứu để phân tích, thiết kế và xây dựng website quản lý điểm hoàn chỉnh phục vụ thực tế tại Trường THCS Nguyễn Văn Trỗi.

Đối tượng và phạm vi nghiên cứu được xác định rõ:

  • Đối tượng nghiên cứu: Hệ thống website quản lý điểm trường học.
  • Phạm vi nội dung: Phương thức, quy trình quản lý hồ sơ, nhập điểm, tính điểm và tổng kết học lực tại cơ sở giáo dục trung học cơ sở.
  • Phạm vi không gian: Trường THCS Nguyễn Văn Trỗi, xã Tam Dân, huyện Phú Ninh, tỉnh Quảng Nam.
  • Thời gian hoàn thành: Tháng 04 năm 2020.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ sử dụng

Đề tài áp dụng các nền tảng lý thuyết và công nghệ phát triển ứng dụng web phân tán trên nền tảng mạng:

  • World Wide Web & Giao thức truyền thông: Kiến trúc mạng Internet, định dạng tài nguyên URL (Uniform Resource Locators) và giao thức truyền siêu văn bản HTTP (HyperText Transfer Protocol) thuộc tầng ứng dụng trong mô hình tham chiếu 7 tầng OSI.
  • Công nghệ Frontend: Ngôn ngữ đánh dấu siêu văn bản HTML (HTML4/HTML5), ngôn ngữ định kiểu tầng CSS (Cascading Style Sheets), khung giao diện Bootstrap hỗ trợ giao diện tương thích đa thiết bị (responsive), ngôn ngữ kịch bản JavaScript và thư viện jQuery (hỗ trợ xử lý Ajax, DOM, Effect, Event, Form, Selector).
  • Công nghệ Backend và Cơ sở dữ liệu: Môi trường thực thi Node.js xây dựng trên bộ máy V8 JavaScript Engine của Google Chrome, kết hợp cùng Hệ quản trị cơ sở dữ liệu quan hệ - đối tượng (ORDBMS) mã nguồn mở PostgreSQL với tính năng kiểm soát đồng thời đa phiên bản (MVCC).
  • Mô hình hóa hệ thống: Áp dụng phương pháp phân tích và thiết kế hướng đối tượng (HĐT) thông qua ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language), bao gồm biểu đồ ca sử dụng (Use Case), biểu đồ tuần tự (Sequence Diagram), biểu đồ lớp (Class Diagram) và biểu đồ trạng thái (State Diagram).

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

Tác giả đã triển khai kết hợp ba phương pháp nghiên cứu chính để hoàn thành đề tài:

  1. Phương pháp nghiên cứu tự luận: Thu thập, đọc và tổng hợp các tài liệu chuyên ngành, giáo trình công nghệ thông tin và tài liệu kỹ thuật liên quan đến quy trình quản lý điểm và lập trình web full-stack.
  2. Phương pháp tổng kết kinh nghiệm: Rút ra các bài học kỹ thuật và kinh nghiệm thực tiễn từ quá trình học tập tại khoa Công nghệ Thông tin - Trường Đại học Quảng Nam và việc khảo sát thực tế quy trình nghiệp vụ giáo dục.
  3. Phương pháp lấy ý kiến chuyên gia: Tiếp thu hướng dẫn chuyên môn và các góp ý chỉnh sửa từ giảng viên hướng dẫn (Thạc sĩ Trần Thị Diệu Linh) để hoàn thiện cấu trúc, nội dung và chất lượng kỹ thuật của hệ thống.

Thiết kế và triển khai

Hệ thống quản lý điểm được phân tích và thiết kế theo mô hình hướng đối tượng, đảm bảo tính phân quyền, khả năng bảo mật hai lớp và sao lưu - phục hồi dữ liệu linh hoạt.

Thành phần kỹ thuật Công nghệ / Công cụ triển khai Vai trò trong hệ thống
Giao diện người dùng (Frontend) HTML5, CSS3, Bootstrap, JavaScript, jQuery Xây dựng giao diện responsive, bắt mắt, hỗ trợ tương tác người dùng
Xử lý phía máy chủ (Backend) Node.js (V8 Engine) Xử lý logic nghiệp vụ, điều hướng API, tính toán điểm số tự động
Lưu trữ dữ liệu (Database) PostgreSQL (Cổng mặc định: 5432) Lưu trữ cơ sở dữ liệu quan hệ, hỗ trợ cơ chế MVCC và bảo mật dữ liệu
Môi trường & Công cụ phát triển Visual Studio Code, Git Soạn thảo mã nguồn, gỡ lỗi, kiểm soát phiên bản mã nguồn (Repo/Branch)

Phân tích tác nhân và ca sử dụng (Actors & Use Cases)

Hệ thống xác định hai nhóm tác nhân chính tham gia tương tác:

  • Admin (Quản trị viên): Người nắm toàn quyền cao nhất trên hệ thống, chịu trách nhiệm quản lý toàn bộ các phân hệ (học sinh, giáo viên, lớp học, môn học, học kỳ, điểm số, tài khoản) và thực hiện phân quyền truy cập.
  • Giáo viên: Tác nhân sử dụng hệ thống để theo dõi, quản lý điểm và yêu cầu chỉnh sửa dữ liệu trong phạm vi được cấp phép.

Các phân hệ ca sử dụng chính trong hệ thống gồm:

  • Đăng nhập / Đăng xuất: Xác thực tài khoản người dùng, hiển thị thông báo trạng thái và mã hóa mật khẩu hai lớp.
  • Quản lý hồ sơ danh mục: Thêm, sửa, xóa, tìm kiếm, hiển thị và phục hồi thông tin học sinh, giáo viên, lớp học, môn học, học kỳ.
  • Quản lý điểm và tổng kết: Cập nhật điểm thành phần (điểm miệng, điểm 1 tiết, điểm thi), tự động tính toán tổng kết điểm môn học, tổng kết học kỳ và tổng kết cả năm học.
  • Quản lý hệ thống & tiện ích: Tìm kiếm đa năng, xem danh sách toàn diện, sao lưu và phục hồi dữ liệu tức thời, trích xuất dữ liệu ra định dạng tệp tin Excel.
+-----------------------------------------------------------------------------------+
|                        HỆ THỐNG CƠ SỞ DỮ LIỆU POSTGRESQL                          |
+-----------------------------------------------------------------------------------+
| 1. Bảng học sinh       | Quản lý mã, họ tên, lớp, khối, ngày sinh, giới tính, v.v.|
| 2. Bảng giáo viên      | Quản lý mã giáo viên, họ tên, ngày sinh, trình độ, môn   |
| 3. Bảng môn học        | Quản lý mã môn, tên môn học, hệ số môn học               |
| 4. Bảng lớp học        | Quản lý mã lớp, tên lớp, giáo viên chủ nhiệm             |
| 5. Bảng tổng kết môn   | Quản lý kết quả môn học theo học kỳ và cả năm học        |
| 6. Bảng tổng kết học kỳ| Quản lý điểm tổng kết chung, xếp loại học lực học kỳ    |
| 7. Bảng tổng kết cả năm| Quản lý điểm tổng kết cả năm học và xếp loại toàn khóa   |
| 8. Bảng đăng nhập      | Quản lý tài khoản, mật khẩu mã hóa và phân quyền         |
+-----------------------------------------------------------------------------------+

Nội dung chính theo từng chương

Chương I: Các khái niệm cơ bản

Chương I trình bày tổng quan hệ thống cơ sở lý thuyết, các khái niệm mạng, ngôn ngữ lập trình và các công cụ bổ trợ được sử dụng trong suốt quá trình phát triển website:

  • Kiến trúc mạng và giao thức: Phân tích giao thức HTTP trong mô hình OSI, cơ chế hoạt động của World Wide Web và định dạng cấu trúc liên kết tài nguyên URL.
  • Công nghệ Frontend: Cấu trúc tài liệu HTML cơ bản (<HTML>, <HEAD>, <TITLE>, <BODY>), cú pháp khai báo của ngôn ngữ định kiểu CSS (selector, property, value), cách nhúng bộ thư viện Bootstrap qua CDN hoặc thẻ <link>/<script>, đặc tính hướng sự kiện của ngôn ngữ JavaScript và các module xử lý chuyên dụng của thư viện jQuery (Ajax, Events, DOM, Effects).
  • Nền tảng Backend và Cơ sở dữ liệu: Cơ chế hoạt động của Node.js dựa trên trình thông dịch Google V8 JavaScript Engine để chạy mã máy chủ; cấu trúc cú pháp phân tách mã lệnh <% ... %>; giới thiệu các đặc tính nổi bật của PostgreSQL như tính ổn định cao, giấy phép mã nguồn mở, hỗ trợ đa nền tảng và cơ chế kiểm soát đồng thời đa phiên bản (MVCC).
  • Công cụ phát triển phần mềm: Hướng dẫn cấu hình môi trường lập trình Visual Studio Code, giới thiệu cơ chế quản lý phiên bản mã nguồn Git (khái niệm Repository, Branch, Commit, Push) và các bước cài đặt hệ quản trị cơ sở dữ liệu PostgreSQL trên cổng 5432.

Chương II: Phân tích và thiết kế hệ thống

Chương II tập trung vào việc mô tả chi tiết bài toán thực tế và chuẩn hóa mô hình hệ thống bằng ngôn ngữ UML:

  • Định nghĩa bài toán: Phân tích nhu cầu tin học hóa quy trình quản lý điểm tại Trường THCS Nguyễn Văn Trỗi nhằm giảm thiểu nhân lực và tăng tính chính xác.
  • Xây dựng luật tham chiếu (Reference Rules): Phân loại rõ ràng trạng thái hiển thị hoặc ẩn cho từng chức năng thuộc các nhóm nghiệp vụ: quản lý học sinh, quản lý lớp, quản lý giáo viên, quản lý môn học, quản lý học kỳ, quản lý điểm, tổng kết môn học, tổng kết học kỳ, tổng kết cả năm, quản lý tài khoản, quản lý danh sách và đăng nhập hệ thống.
  • Mô hình hóa chức năng và động học:
    • Biểu đồ ca sử dụng (Use Case Diagram): Mô tả tương tác giữa hai tác nhân Admin, Giáo viên với các chức năng hệ thống.
    • Biểu đồ tuần tự (Sequence Diagram): Đặc tả trình tự gửi thông điệp và xử lý dữ liệu cho 13 trường hợp sử dụng (Đăng nhập, Quản lý học sinh, Quản lý lớp học, Quản lý giáo viên, Quản lý môn học, Quản lý học kỳ, Quản lý điểm, Quản lý tổng kết môn, Quản lý tổng kết học kỳ, Quản lý tổng kết cả năm, Quản lý tài khoản, Quản lý tìm kiếm, Quản lý danh sách).
    • Biểu đồ lớp (Class Diagram) & Biểu đồ trạng thái (State Diagram): Mô hình hóa thuộc tính, phương thức và sự biến đổi trạng thái của các lớp đối tượng chính: Lớp học sinh, Lớp lớp, Lớp giáo viên, Lớp môn học, Lớp học kỳ, Lớp điểm, Lớp tài khoản.
  • Thiết kế cơ sở dữ liệu: Xây dựng chi tiết cấu trúc 8 bảng dữ liệu quan hệ (Học sinh, Giáo viên, Môn học, Lớp học, Tổng kết môn học, Tổng kết học kỳ, Tổng kết cả năm, Đăng nhập) và thiết lập mô hình quan hệ liên kết khóa giữa các bảng.

Chương 3: Giới thiệu phần mềm

Chương 3 trình bày các giao diện thực tế của phần mềm quản lý điểm demo đã xây dựng:

  • Giao diện tổng quan: Giới thiệu giao diện chính của website, cấu trúc điều hướng trực quan, dễ thao tác cho người dùng mới.
  • Giao diện đăng nhập: Form xác thực tài khoản bao gồm tên người dùng và mật khẩu để kiểm soát quyền truy cập hệ thống.
  • Các phân hệ giao diện nghiệp vụ:
    • Quản lý học sinh: Giao diện hiển thị danh sách, xem chi tiết, thêm mới, sửa, xóa và phục hồi hồ sơ học sinh.
    • Quản lý lớp học và khối lớp: Giao diện quản lý thông tin lớp, phân công giáo viên chủ nhiệm và xem danh mục khối lớp.
    • Quản lý giáo viên: Giao diện quản lý lý lịch, trình độ chuyên môn và môn học giảng dạy của cán bộ giáo viên.
    • Quản lý môn học và học kỳ: Giao diện thiết lập mã môn, tên môn, hệ số điểm và thông tin phân chia kỳ học.
    • Quản lý điểm và tổng kết: Giao diện cập nhật điểm số chi tiết, tự động tổng kết điểm giữa học kỳ, tổng kết điểm môn học cả năm, tổng kết xếp loại học kỳ và tổng kết cả năm học kèm tính năng xóa/phục hồi dữ liệu điểm.
    • Quản lý tài khoản: Giao diện tạo mới, phân quyền, sửa, xóa, khôi phục tài khoản và đổi mật khẩu người dùng.

Kết quả và đóng góp

Kết quả nghiên cứu và kỹ thuật

  • Đã khảo sát và làm rõ các nghiệp vụ quản lý điểm thực tế tại Trường THCS Nguyễn Văn Trỗi (Quảng Nam).
  • Hoàn thiện tài liệu phân tích thiết kế hệ thống bao gồm hệ thống ca sử dụng, 13 sơ đồ tuần tự chi tiết, sơ đồ lớp, sơ đồ trạng thái và mô hình quan hệ 8 bảng cơ sở dữ liệu.
  • Xây dựng thành công hệ thống phần mềm website quản lý điểm ứng dụng công nghệ Node.js kết hợp cơ sở dữ liệu PostgreSQL, đáp ứng đầy đủ các chức năng:
    • Tự động hóa quá trình tính toán điểm trung bình môn, điểm tổng kết học kỳ và cả năm học.
    • Hỗ trợ cơ chế phân quyền tài khoản chặt chẽ và áp dụng cơ chế mã hóa mật khẩu hai lớp.
    • Tích hợp tính năng sao lưu, phục hồi dữ liệu tại bất kỳ thời điểm nào nhằm đảm bảo an toàn thông tin.
    • Cung cấp tiện ích kết xuất dữ liệu báo cáo sang định dạng tệp tin Excel.

Đóng góp của đề tài

  • Giá trị ứng dụng thực tiễn: Mang lại giải pháp ứng dụng công nghệ thông tin cụ thể, giúp giảm bớt công sức ghi chép thủ công, tiết kiệm thời gian và nhân lực cho công tác quản lý điểm tại Trường THCS Nguyễn Văn Trỗi.
  • Giá trị học thuật: Đóng góp một mô hình phần mềm quản lý mẫu, làm phong phú thêm kho tư liệu về xây dựng ứng dụng web quản lý cơ sở giáo dục.
  • Tài liệu tham khảo: Cung cấp tài liệu hoàn chỉnh về phân tích thiết kế hướng đối tượng và lập trình full-stack (Node.js - PostgreSQL) cho sinh viên ngành Công nghệ Thông tin tại Trường Đại học Quảng Nam và các cơ sở đào tạo khác.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Hệ thống được thiết kế và khảo sát dựa trên đặc thù quy trình quản lý riêng của Trường THCS Nguyễn Văn Trỗi, do đó cần phải tùy biến thêm các tham số quy định khi muốn áp dụng cho các cơ sở giáo dục khác có quy chế đánh giá điểm khác biệt.
  • Phạm vi triển khai chủ yếu tập trung vào việc mô hình hóa, thiết kế cơ sở dữ liệu và xây dựng các giao diện demo chức năng nghiệp vụ cốt lõi của bài toán quản lý điểm.

Hướng phát triển tiếp

  • Mở rộng thêm các phân hệ quản lý liên quan như quản lý rèn luyện đạo đức (hạnh kiểm), quản lý thời khóa biểu và liên lạc điện tử giữa nhà trường với phụ huynh học sinh.
  • Nâng cao tính tự động hóa và tối ưu hóa hiệu năng xử lý của hệ thống web trên diện rộng qua mạng diện rộng (WAN).

Giá trị tham khảo

Báo cáo thực tập tốt nghiệp này có giá trị ứng dụng và tham khảo rõ ràng đối với nhiều đối tượng:

  • Sinh viên ngành Công nghệ Thông tin và Kỹ thuật Phần mềm: Cung cấp mẫu tài liệu chuẩn về phân tích thiết kế hệ thống hướng đối tượng bằng UML (với đầy đủ Use Case, Sequence, Class, State Diagrams) và mô hình hóa cơ sở dữ liệu quan hệ cho các bài tập lớn, đồ án chuyên ngành hoặc khóa luận tốt nghiệp.
  • Lập trình viên phát triển Web: Cung cấp tài liệu tham khảo thực tế về cách kết hợp nền tảng backend Node.js với hệ quản trị cơ sở dữ liệu PostgreSQL và kỹ thuật xây dựng giao diện responsive bằng Bootstrap, CSS3 và jQuery.
  • Cán bộ quản lý giáo dục: Tài liệu tham khảo hữu ích cho việc số hóa quy trình quản lý điểm số, hồ sơ học sinh và xếp loại học tập tại các trường trung học cơ sở.

Câu hỏi thường gặp

1. Đề tài sử dụng ngăn xếp công nghệ (tech stack) cụ thể nào để xây dựng phần mềm?

Hệ thống sử dụng Node.js chạy trên nền tảng V8 JavaScript Engine ở phía máy chủ (backend), hệ quản trị cơ sở dữ liệu quan hệ - đối tượng PostgreSQL để lưu trữ dữ liệu, và phía giao diện người dùng (frontend) được thiết kế bằng HTML5, CSS3, Bootstrap và thư viện jQuery. Môi trường phát triển bao gồm Visual Studio Code và hệ thống quản lý phiên bản Git.

2. Hệ thống quản lý điểm phân quyền cho những tác nhân (actor) nào?

Hệ thống xác định hai nhóm tác nhân chính:

  • Admin: Có quyền quản trị cao nhất, được phép thao tác toàn bộ các module chức năng và thực hiện phân quyền tài khoản cho người dùng.
  • Giáo viên: Tác nhân hoạt động tại trường, có quyền truy cập, theo dõi và thực hiện cập nhật, chỉnh sửa thông tin điểm số theo thẩm quyền được cấp phép.

3. Cơ sở dữ liệu của phần mềm bao gồm những bảng dữ liệu nào?

Cơ sở dữ liệu PostgreSQL của hệ thống được thiết kế gồm 8 bảng dữ liệu quan hệ chính:

  1. Bảng học sinh
  2. Bảng giáo viên
  3. Bảng môn học
  4. Bảng lớp học
  5. Bảng tổng kết môn học
  6. Bảng tổng kết học kỳ
  7. Bảng tổng kết cả năm
  8. Bảng đăng nhập

4. Phần mềm đáp ứng các yêu cầu bảo mật và an toàn dữ liệu như thế nào?

Hệ thống triển khai cơ chế phân quyền truy cập chi tiết đến từng chức năng của người dùng, thực hiện mã hóa mật khẩu hai lớp để bảo vệ thông tin đăng nhập, đồng thời tích hợp chức năng sao lưu và phục hồi dữ liệu vào bất kỳ thời điểm nào nhằm phòng ngừa sự cố mất mát dữ liệu.

5. Tiện ích xuất dữ liệu của phần mềm hỗ trợ định dạng nào?

Phần mềm được tích hợp sẵn chức năng trích xuất dữ liệu báo cáo, danh sách và điểm số học sinh trực tiếp từ hệ thống sang định dạng bảng tính Excel.


Kết luận

Khóa luận thực tập tốt nghiệp của sinh viên Nguyễn Hữu Tín đã hoàn thành việc nghiên cứu, phân tích thiết kế và xây dựng thành công phần mềm website quản lý điểm cho Trường THCS Nguyễn Văn Trỗi (Quảng Nam). Đề tài kết hợp hiệu quả giữa nền tảng Node.js và hệ quản trị cơ sở dữ liệu PostgreSQL, mang lại một giải pháp tin học hóa toàn diện cho việc quản lý hồ sơ, tự động tính toán điểm số và tổng kết học lực học sinh. Công trình không chỉ giải quyết bài toán thực tế của nhà trường mà còn là tài liệu tham khảo có giá trị cao cho sinh viên ngành Công nghệ Thông tin trong việc phát triển các hệ thống phần mềm quản lý trên nền tảng web.