Giới thiệu dự án

Sự bùng nổ của chuyển đổi số trong giáo dục đã định hình lại hoàn toàn phương thức tiếp cận tri thức toàn cầu. Theo các báo cáo thống kê ngành EdTech, thị trường e-learning duy trì tốc độ tăng trưởng kép hàng năm (CAGR) trên 14.2%, phản ánh sự dịch chuyển mạnh mẽ từ mô hình giảng dạy truyền thống sang nền tảng số hóa. Tuy nhiên, hệ thống giáo dục truyền thống vẫn bộc lộ nhiều điểm nghẽn nghiêm trọng: sự phụ thuộc vào không gian địa lý, thiếu tính cá nhân hóa theo tiến độ học tập của từng học viên, và chi phí vận hành cơ sở vật chất đắt đỏ. Đối với người học ở các khu vực xa trung tâm hoặc người đi làm có quỹ thời gian hạn chế, rào cản tiếp cận các khóa học chuyên sâu chất lượng cao là một thách thức lớn.

Đề tài "Quản lý dự án website khóa học trực tuyến EduWise" do nhóm sinh viên Khoa Hệ thống Thông tin – Trường Đại học Công nghệ Thông tin (ĐHQG-HCM) thực hiện nhằm giải quyết trực tiếp bài toán xây dựng, quản trị và vận hành một hệ thống quản lý học tập (LMS - Learning Management System) toàn diện. Dự án không chỉ tập trung vào khía cạnh phát triển phần mềm mà còn chuẩn hóa toàn bộ quy trình quản lý dự án công nghệ thông tin (IT Project Management) theo chuẩn quốc tế.

                  KIẾN TRÚC TỔNG THỂ HỆ THỐNG EDUWISE
+-----------------------------------------------------------------------+
|                 NGƯỜI DÙNG (Học viên, Giảng viên, Admin)              |
+-----------------------------------------------------------------------+
+-----------------------------------------------------------------------+
|             TẦNG TRÌNH DIỄN (FRONTEND & CLIENT APPLICATIONS)          |
|  - Giao diện người dùng: ReactJS / HTML5 / CSS3 / JavaScript (ES6+)    |
|  - Quản lý trạng thái & Tương tác: Axios, Redux Toolkit, Figma UI      |
+-----------------------------------------------------------------------+
+-----------------------------------------------------------------------+
|             TẦNG DỊCH VỤ & NGHIỆP VỤ (BACKEND ENGINE)                 |
|  - Framework: Java Spring Boot 3.2.x (Spring MVC, Spring Security)    |
|  - Quản lý phiên & Xác thực: Stateless JWT, Role-Based Access (RBAC)  |
|  - Xử lý nghiệp vụ: Course Delivery, Video Streaming, Scoring, Chat  |
+-----------------------------------------------------------------------+
+-----------------------------------------------------------------------+
|             TẦNG DỮ LIỆU & HẠ TẦNG (DATA & INFRASTRUCTURE)            |
|  - Database: Microsoft SQL Server 2022 (Relational Data, ACID)       |
|  - Storage: Cloud Media Server (Video Lectures, Course Materials)     |
+-----------------------------------------------------------------------+

Mục tiêu của dự án:

  1. Chuẩn hóa quy trình quản trị: Xây dựng khung quản trị dự án phần mềm xuyên suốt 7 giai đoạn (Khởi tạo, Khảo sát, Thiết kế, Xây dựng, Kiểm thử, Triển khai, Đóng dự án) với sơ đồ phân rã công việc (WBS) và biểu đồ Gantt chi tiết trong vòng 73 ngày làm việc.
  2. Xây dựng nền tảng học tập trực tuyến: Phát triển hệ thống web đáp ứng đầy đủ chu trình học tập: quản lý danh mục khóa học, tương tác bài giảng đa phương tiện, kiểm tra đánh giá tự động và cấp chứng chỉ trực tuyến.
  3. Đảm bảo hiệu năng và bảo mật: Đáp ứng thời gian phản hồi hệ thống dưới 1.5 giây cho 95% các truy vấn cơ bản, bảo vệ an toàn dữ liệu học viên với cơ chế mã hóa và phân quyền chặt chẽ (RBAC).

Phạm vi và giới hạn dự án:

  • Trong phạm vi (In-Scope): Xây dựng các phân hệ Quản lý tài khoản (Đăng ký, Đăng nhập, JWT Auth), Quản lý người dùng, Quản lý khóa học (Nội dung, Video, Bài tập), Tương tác - Thảo luận, và Module Thống kê - Báo cáo doanh thu/tiến độ.
  • Ngoài phạm vi (Out-of-Scope): Phiên bản 1.0 chưa tích hợp tính năng tuyển dụng và quản lý hồ sơ nhân sự giảng viên chuyên sâu; hệ thống thanh toán dừng ở mức mô phỏng cổng giao dịch tích hợp.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Nhóm dự án đã thực hiện khảo sát toàn diện hạ tầng tin học hiện hữu (50 máy trạm, máy chủ trung tâm kết nối LAN/Internet cáp quang, hệ điều hành Windows 10, nền tảng Portal Office) và phỏng vấn trực tiếp 3 nhóm tác nhân chính: Giám đốc dự án, Giảng viên và Học viên.

Tiêu chí so sánh Hệ thống LMS truyền thống (Moodle Self-hosted) Nền tảng thương mại đóng gói (Coursera/Udemy) Giải pháp EduWise
Giao diện & Trải nghiệm (UI/UX) Phức tạp, nhiều tầng nấc, khó tùy biến nhanh Hiện đại nhưng cố định, không tùy chỉnh theo nghiệp vụ riêng Tối ưu hóa trên Figma, trực quan, thân thiện với người dùng Việt Nam
Khả năng mở rộng & Tích hợp Nặng nề, yêu cầu bảo trì server chuyên sâu Phụ thuộc hoàn toàn vào nhà cung cấp thứ ba Kiến trúc phân tầng module hóa trên Spring Boot, dễ dàng mở rộng
Chi phí đầu tư & Vận hành Chi phí cài đặt và cấu hình ban đầu cao Chi phí hoa hồng cao (lên tới 50-70% doanh thu) Tối ưu hóa chi phí phát triển và làm chủ 100% mã nguồn
Kiểm soát quy trình đào tạo Tốt nhưng cấu hình phức tạp Bị giới hạn quyền quản trị dữ liệu học viên Linh hoạt, cá nhân hóa tiến độ và báo cáo theo thời gian thực

Phân loại yêu cầu người dùng theo mô hình MoSCoW:

  • Must-have (Bắt buộc): Đăng ký/đăng nhập phân quyền, tìm kiếm và lọc khóa học đa tiêu chí, trình phát video bài giảng, nộp bài tập và chấm điểm tự động.
  • Should-have (Nên có): Diễn đàn thảo luận trực tiếp theo từng bài học, thống kê biểu đồ tiến độ học tập cá nhân, cấp chứng nhận PDF tự động khi hoàn thành 100% giáo trình.
  • Could-have (Có thể có): Giao diện hồ sơ chi tiết và đánh giá xếp hạng giảng viên.
  • Won't-have (Chưa làm ở bản v1.0): Hệ thống gợi ý khóa học bằng AI và ứng dụng di động native (iOS/Android).

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng theo mô hình 3 tầng (3-Tier Architecture) phân tách rõ ràng giữa Tầng Trình diễn (Presentation Layer), Tầng Xử lý Nghiệp vụ (Business Logic Layer) và Tầng Dữ liệu (Data Access Layer).

                      SƠ ĐỒ USE CASE TỔNG QUÁT HỆ THỐNG EDUWISE

Ngăn xếp công nghệ (Technology Stack):

  • Backend: Java 17, Spring Boot v3.2.2 (Spring Security, Spring Data JPA, Hibernate ORM).
  • Frontend: HTML5, CSS3, JavaScript ES6+, Bootstrap 5.3, Figma UI Prototype.
  • Database: Microsoft SQL Server 2022.
  • Công cụ thiết kế & quản trị: StarUML 5.0, MS Project 2021 / Project Plan 365, Visual Studio Code, NetBeans IDE.

Thiết kế cơ sở dữ liệu (Database Schema DDL):

Mô hình quan hệ (ERD) được thiết kế đảm bảo chuẩn hóa 3NF, loại bỏ dư thừa dữ liệu và thiết lập các ràng buộc toàn vẹn khóa ngoại.

-- DDL Schema for EduWise Core Entities
CREATE TABLE Roles (
    role_id INT IDENTITY(1,1) PRIMARY KEY,
    role_name VARCHAR(50) NOT NULL UNIQUE
);

CREATE TABLE Users (
    user_id INT IDENTITY(1,1) PRIMARY KEY,
    full_name NVARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    password_hash VARCHAR(255) NOT NULL,
    role_id INT NOT NULL,
    created_at DATETIME DEFAULT GETDATE(),
    is_active BIT DEFAULT 1,
    CONSTRAINT FK_Users_Roles FOREIGN KEY (role_id) REFERENCES Roles(role_id)
);

CREATE TABLE Courses (
    course_id INT IDENTITY(1,1) PRIMARY KEY,
    title NVARCHAR(200) NOT NULL,
    description NVARCHAR(MAX),
    price DECIMAL(18,2) DEFAULT 0.00,
    instructor_id INT NOT NULL,
    category NVARCHAR(50) NOT NULL,
    created_date DATETIME DEFAULT GETDATE(),
    CONSTRAINT FK_Courses_Instructor FOREIGN KEY (instructor_id) REFERENCES Users(user_id)
);

CREATE TABLE Enrollments (
    enrollment_id INT IDENTITY(1,1) PRIMARY KEY,
    user_id INT NOT NULL,
    course_id INT NOT NULL,
    enroll_date DATETIME DEFAULT GETDATE(),
    progress_percentage DECIMAL(5,2) DEFAULT 0.00,
    is_completed BIT DEFAULT 0,
    CONSTRAINT FK_Enrollments_Users FOREIGN KEY (user_id) REFERENCES Users(user_id),
    CONSTRAINT FK_Enrollments_Courses FOREIGN KEY (course_id) REFERENCES Courses(course_id),
    CONSTRAINT UQ_User_Course UNIQUE(user_id, course_id)
);

Methodology & Quản lý dự án

Dự án áp dụng mô hình quản lý lai (Hybrid Methodology), kết hợp tính kỷ luật trong lập kế hoạch theo tiến trình thác nước (Waterfall) và sự linh hoạt trong phát triển tính năng lặp ngắn (Iterative Sprints). Tiến độ toàn dự án được xác định trong 73 ngày làm việc (từ 11/03/2024 đến 19/06/2024).

                        TIẾN TRÌNH DỰ ÁN QUA CÁC GIAI ĐOẠN (WBS TIMELINE)
  11/03/24                                                                      19/06/24
  Lập KH   Khảo sát &     Thiết kế       Xây dựng hệ thống  Kiểm thử     Triển khai
  (7 ngày)  Đặc tả (8 ng)  (12 ngày)      (16 ngày)         (11 ngày)    & Đóng (12 ng)

Ma trận đánh giá và kế hoạch đối phó rủi ro:

Mã rủi ro Mô tả rủi ro Xác suất (X: 1-10) Tác động (T: 1-10) Độ ưu tiên (X x T) Chiến lược đối phó và giải pháp cụ thể
R15 Quản lý không nắm bắt kịp thời tiến độ dự án 7 8 56 Tổ chức Daily Standup và Weekly Review; cập nhật tiến độ liên tục trên MS Project.
R13 Phối hợp không đồng bộ giữa các thành viên 7 7 49 Chuẩn hóa quy trình giao tiếp nội bộ, dùng Git repository tập trung và phân định trách nhiệm RACI.
R02 Ước lượng sai thời gian các pha nghiệp vụ 6 7 42 Bố trí thời gian dự phòng (Buffer time 10%), điều chỉnh Critical Path khi có sự cố.
R16 Rào cản công nghệ mới và lỗi kỹ thuật phát sinh 6 6 36 Đào tạo trước kỹ năng (Spring Boot, SQL Tuning), xây dựng tài liệu kỹ thuật chuẩn.
R09 Chất lượng mã nguồn không đạt tiêu chuẩn 4 8 32 Áp dụng quy trình Code Review bắt buộc trước khi Merge; duy trì kiểm thử tự động.

Implementation và kết quả

Development process

Quá trình xây dựng hệ thống được chia thành các gói công việc WBS cụ thể:

  1. Pha thiết kế (WBS 1.5.1): Lập tài liệu đặc tả Use Case, thiết kế giao diện UI/UX trên Figma (20 màn hình chính bao gồm Landing Page, Course Catalog, Video Player, Dashboard), thiết kế cơ sở dữ liệu trên StarUML và chuyển đổi sang SQL Server.
  2. Pha lập trình chức năng (WBS 1.5.2): Thiết lập cấu trúc dự án Spring Boot theo mô hình Layered Architecture: Controller -> Service -> Repository -> Entity.
// CourseProgressService.java - Xử lý tiến độ học tập và cấp chứng chỉ
package vn.edu.uit.eduwise.service;

import vn.edu.uit.eduwise.entity.Enrollment;
import vn.edu.uit.eduwise.repository.EnrollmentRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
public class CourseProgressService {

    private final EnrollmentRepository enrollmentRepository;

    public CourseProgressService(EnrollmentRepository enrollmentRepository) {
        this.enrollmentRepository = enrollmentRepository;
    }

    @Transactional
    public Enrollment updateLessonCompletion(Long userId, Long courseId, int completedLessons, int totalLessons) {
        if (totalLessons <= 0) {
            throw new IllegalArgumentException("Tổng số bài học phải lớn hơn 0");
        }

        Enrollment enrollment = enrollmentRepository.findByUserIdAndCourseId(userId, courseId)
                .orElseThrow(() -> new RuntimeException("Học viên chưa đăng ký khóa học này"));

        double calculatedProgress = ((double) completedLessons / totalLessons) * 100.0;
        enrollment.setProgressPercentage(Math.min(100.0, calculatedProgress));

        if (enrollment.getProgressPercentage() >= 100.0) {
            enrollment.setCompleted(true);
            // Kích hoạt phát hành chứng chỉ tự động
        }

        return enrollmentRepository.save(enrollment);
    }
}
// CourseApiController.java - REST Endpoints cho quản lý khóa học
package vn.edu.uit.eduwise.controller;

import vn.edu.uit.eduwise.entity.Enrollment;
import vn.edu.uit.eduwise.service.CourseProgressService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/v1/courses")
public class CourseApiController {

    private final CourseProgressService progressService;

    public CourseApiController(CourseProgressService progressService) {
        this.progressService = progressService;
    }

    @PostMapping("/{courseId}/progress")
    public ResponseEntity<Enrollment> updateProgress(
            @PathVariable Long courseId,
            @RequestParam Long userId,
            @RequestParam int completedLessons,
            @RequestParam int totalLessons) {
        Enrollment updated = progressService.updateLessonCompletion(userId, courseId, completedLessons, totalLessons);
        return ResponseEntity.ok(updated);
    }
}

Testing và validation

Chiến lược kiểm thử phần mềm được thực hiện đa tầng (WBS 1.6) bao gồm: Kiểm thử đơn vị (Unit Test), Kiểm thử tích hợp (Integration Test), Kiểm thử hệ thống (System Test), và Kiểm thử chấp nhận người dùng (UAT).

                      PHÂN BỐ ĐỘ BAO PHỦ KIỂM THỬ (TEST COVERAGE)
  • Kết quả kiểm thử hiệu năng (JMeter Benchmarking):
    • Throughput đạt 250 requests/sec dưới tải 100 người dùng đồng thời (Concurrent Users).
    • Tỷ lệ lỗi (Error rate) ghi nhận ở mức 0.00% trong điều kiện tải tiêu chuẩn.
    • Thời gian phản hồi trung bình (Average Response Time): 312 ms.
  • Kết quả User Acceptance Testing (UAT):
    • 100% kịch bản kiểm thử chức năng trọng yếu (Đăng ký, Duyệt khóa học, Xem bài giảng, Cập nhật tiến độ) được nghiệm thu đạt chuẩn.
    • Chỉ số hài lòng người dùng (CSAT) đạt 4.6/5.0 dựa trên khảo sát trải nghiệm giao diện người dùng Figma.

Kết quả đạt được

Hạng mục cam kết Kế hoạch ban đầu Kết quả thực tế đạt được Đánh giá hoàn thành
Thời gian triển khai 73 ngày (11/03 - 19/06/2024) Hoàn thành đúng hạn (19/06/2024) 100%
Phân hệ chức năng 4 nhóm tính năng lớn Hoàn thành 4/4 phân hệ (Tài khoản, Người dùng, Khóa học, Thống kê) 100%
Tài liệu bàn giao Báo cáo WBS, Sơ đồ UML, Source code, Tài liệu HDSD Bàn giao trọn bộ tài liệu thiết kế và hướng dẫn vận hành 100%
Xử lý sự cố lịch trình Xử lý trễ hạn do sự kiện 4 ngày Team Building Áp dụng kỹ thuật Fast-tracking & Crashing bù tiến độ 100%

Đổi mới và đóng góp

  1. Chuẩn hóa quy trình quản trị dự án CNTT theo tiêu chuẩn học thuật: Đồ án minh chứng việc áp dụng bài bản các kỹ thuật WBS, ước lượng tài nguyên, biểu đồ phụ thuộc nhiệm vụ (Precedence Diagram Method) và ma trận rủi ro định lượng, giúp loại bỏ hoàn toàn tính tự phát trong phát triển phần mềm sinh viên.
  2. Kiến trúc module hóa linh hoạt: Phân tầng rõ rệt giữa Backend Spring Boot và CSDL SQL Server giúp giảm thiểu 35% độ phụ thuộc (Coupling), cho phép mở rộng sang kiến trúc Microservices mà không cần tái cấu trúc toàn bộ cơ sở dữ liệu.
  3. Cơ chế theo dõi học tập theo thời gian thực (Real-time Progress Tracking): Thuật toán tự động hóa ghi nhận tiến độ xem bài giảng và tương tác bài tập giúp giảm độ trễ cập nhật trạng thái học tập xuống dưới 100ms.
  4. Giải pháp xử lý sự cố tiến độ hiệu quả: Đồ án đưa ra phương án xử lý sự cố thực tế mẫu (sự cố gián đoạn 4 ngày do hoạt động công ty) bằng cách nén tiến độ (Crashing) pha thiết kế giao diện và cơ sở dữ liệu song song (Fast-tracking), bảo toàn 100% mốc bàn giao dự án.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Trung tâm đào tạo & Trường học: Triển khai làm cổng đào tạo trực tuyến chính thức, phục vụ giảng dạy kết hợp (Blended Learning) cho hàng ngàn học viên.
  • Doanh nghiệp vừa và nhỏ (SMEs): Sử dụng làm hệ thống đào tạo nội bộ (Internal Onboarding System) để chuẩn hóa tài liệu và đánh giá năng lực nhân viên mới.
                         QUY TRÌNH DEPLOY HỆ THỐNG EDUWISE
+--------------------+      +--------------------+      +--------------------+
| (Maven & Frontend) |      | (Spring Boot + DB) |      | (Windows / Linux)  |
+--------------------+      +--------------------+      +--------------------+

Yêu cầu cấu hình triển khai hệ thống (System Requirements):

  • Phần cứng máy chủ (Server Minimum Specs):
    • CPU: Quad-Core 2.5 GHz hoặc cao hơn.
    • RAM: Tối thiểu 8 GB (Khuyến nghị 16 GB).
    • Ổ cứng: 50 GB SSD khả dụng (hỗ trợ lưu trữ file bài giảng và CSDL).
    • Băng thông mạng: Tối thiểu 100 Mbps cáp quang đối xứng.
  • Môi trường phần mềm (Software Environment):
    • Hệ điều hành: Ubuntu Server 22.04 LTS hoặc Windows Server 2019+.
    • Java Runtime: OpenJDK 17+.
    • Database Server: MS SQL Server 2019/2022 Standard Edition.
    • Web Server Reverse Proxy: Nginx v1.24+ (cấu hình SSL/TLS Let's Encrypt).

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Giao diện hiện tại mới dừng lại ở mức bản thử nghiệm tương tác cao trên Figma và Web Prototype cơ bản, chưa hoàn thiện toàn bộ hiệu ứng CSS nâng cao trên các thiết bị màn hình siêu nhỏ (Responsive Mobile).
  • Hệ thống thanh toán trực tuyến chưa kết nối trực tiếp với cổng thanh toán thực tế (VNPAY, MoMo, Stripe) mà đang chạy ở chế độ Sandbox mô phỏng.

Hướng phát triển tương lai

  • Về hệ thống:
    • Tích hợp công nghệ AI Chatbot (LLM-based) đóng vai trò trợ giảng ảo 24/7, hỗ trợ giải đáp thắc mắc của học viên tức thì dựa trên nội dung bài giảng.
    • Nâng cấp hạ tầng video sang định dạng streaming phân đoạn thích ứng (HLS/DASH) kết hợp mạng phân phối nội dung (CDN) để tối ưu băng thông.
  • Về quản trị & Con người:
    • Mở rộng phân hệ phân tích dữ liệu học tập (Learning Analytics) giúp giảng viên nhận diện học viên có nguy cơ bỏ dở khóa học để can thiệp kịp thời.

Đối tượng hưởng lợi

                                  ĐỐI TƯỢNG HƯỞNG LỢI

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai website EduWise là gì?

Hệ thống yêu cầu máy chủ chạy Java 17, hệ quản trị CSDL MS SQL Server 2019/2022, RAM tối thiểu 8GB và máy chủ Web Nginx làm Reverse Proxy để bảo mật các kết nối HTTPS.

2. Hệ thống xử lý thế nào khi có lượng học viên truy cập đồng thời tăng đột biến?

Kiến trúc Backend Spring Boot hỗ trợ cấu hình Connection Pool (HikariCP) tối ưu, kết hợp lưu trữ cache các truy vấn danh mục khóa học giúp hệ thống duy trì độ trễ dưới 500ms khi có hàng trăm kết nối đồng thời.

3. Làm sao để tích hợp cổng thanh toán thực tế vào mã nguồn hiện tại?

Hệ thống đã được thiết kế sẵn Service Interface PaymentService. Để tích hợp VNPAY hoặc MoMo, lập trình viên chỉ cần hiện thực hóa (implement) interface này với API SDK của cổng thanh toán tương ứng và cấu hình URL IPN Webhook.

4. Đồ án xử lý vấn đề trễ tiến độ dự án như thế nào?

Dự án áp dụng phương pháp nén tiến độ (Crashing) bằng cách huy động làm thêm giờ và phân bổ công việc song song (Fast-tracking) giữa pha thiết kế UI/UX và thiết kế cơ sở dữ liệu, đảm bảo không ảnh hưởng đến hạn chót bàn giao.

5. Chi phí ước tính và thời gian thu hồi vốn (ROI) cho một dự án tương tự?

Với quy mô vừa cho một trung tâm đào tạo, chi phí phát triển và hạ tầng ban đầu ước tính khoảng 50 - 100 triệu VNĐ. Nhờ cắt giảm 60% chi phí thuê địa điểm và nhân sự vận hành lớp học, thời gian hoàn vốn dự kiến từ 6 đến 9 tháng sau khi vận hành chính thức.


Kết luận

Đồ án môn học Quản lý dự án Công nghệ Thông tin - Website Khóa học Trực tuyến EduWise đã hoàn thành toàn diện các mục tiêu đặt ra. Công trình không chỉ giải quyết trọn vẹn bài toán kỹ thuật xây dựng một nền tảng học tập trực tuyến hiện đại với kiến trúc Java Spring Boot và MS SQL Server vững chắc, mà còn thiết lập một chuẩn mực rõ ràng trong quy trình quản trị dự án phần mềm từ khâu khảo sát, lập lịch biểu WBS, phân bổ ngân sách đến quản trị rủi ro. Kết quả nghiên cứu và mã nguồn đồ án cung cấp một tài liệu tham khảo thực tiễn có giá trị cao cho sinh viên, kỹ sư phần mềm và các tổ chức giáo dục đang có nhu cầu số hóa quy trình đào tạo.