Giới thiệu dự án
Trong kỷ nguyên số hóa giáo dục (EdTech), nhu cầu đào tạo từ xa và học tập trực tuyến ghi nhận mức tăng trưởng kép hàng năm (CAGR) đạt trên 16.5% giai đoạn 2023–2028 trên toàn cầu. Tuy nhiên, các cơ sở đào tạo, trung tâm lập trình và tổ chức giáo dục vừa và nhỏ tại Việt Nam đang đối mặt với rào cản chi phí rất lớn khi triển khai hệ thống quản lý học tập (Learning Management System - LMS) chuyên biệt. Việc tự phát triển hệ thống riêng tiêu tốn hàng trăm triệu đồng cùng chi phí vận hành hạ tầng máy chủ đắt đỏ, trong khi các giải pháp thương mại sẵn có thường thiếu linh hoạt trong việc tùy biến gói tài nguyên và tích hợp thanh toán tự động.
Đồ án tốt nghiệp Kỹ sư Công nghệ Thông tin với đề tài "Xây dựng hệ thống websites cung cấp dịch vụ quản lý học tập của cơ sở đào tạo trực tuyến" (thực hiện bởi sinh viên Nguyễn Ngọc Phát, dưới sự hướng dẫn của TS. Võ Xuân Thể – Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) đã giải quyết triệt để bài toán trên bằng cách xây dựng một hệ sinh thái ba nền tảng web tích hợp: DFFX (LMS tương tác cho giảng viên và học viên), DFFPortal (Cổng dịch vụ và quản lý gói tài nguyên cho chủ cơ sở đào tạo), và DFFERP (Phân hệ ERP back-office cho đội ngũ quản trị hệ thống).
+-----------------------------------------------------------------------------------+
| HỆ SINH THÁI DFF ECOSYSTEM |
+--------------------------+----------------------------+---------------------------+
| DFFPortal (SaaS) | DFFX (LMS) | DFFERP (Admin) |
| - Đăng ký gói dịch vụ | - Học tập đa phương tiện | - Quản lý Master Data |
| - Cấu hình tài nguyên | - Nộp bài tập & Thi Quiz | - Hóa đơn & Thuê bao |
| - Thanh toán trực tuyến | - Tương tác & Chấm điểm | - Phân bổ hạ tầng Cloud |
+--------------------------+----------------------------+---------------------------+
Mục tiêu của đề tài
- Xây dựng kiến trúc phân tán đa thành phần: Phát triển hệ thống dịch vụ độc lập kết nối qua API Gateway (Middlegate) hỗ trợ xác thực tập trung và định tuyến dữ liệu.
- Triển khai cổng dịch vụ SaaS (DFFPortal): Cho phép chủ cơ sở đào tạo đăng ký, thanh toán và quản lý vòng đời tài nguyên đào tạo linh hoạt theo mô hình thuê bao (Subscription-based).
- Phát triển nền tảng học tập trực tuyến (DFFX): Cung cấp đầy đủ tính năng tạo khóa học, quản lý slide bài giảng đa định dạng (Video, Hình ảnh, Quiz, Đánh giá), nộp bài và chấm điểm tự động.
- Tích hợp hệ thống quản trị doanh nghiệp (DFFERP): Xây dựng trên nền tảng Odoo để quản lý toàn diện người dùng, danh mục dịch vụ, vòng đời hóa đơn (
AccountMove) và kiểm soát tài nguyên hệ thống.
- Tối ưu hóa lưu trữ đám mây: Tích hợp trực tiếp Microsoft OneDrive API nhằm giảm tải 100% áp lực lưu trữ tệp tin dung lượng lớn lên máy chủ ứng dụng chính.
Phạm vi và giới hạn hệ thống
- Phạm vi triển khai: Ứng dụng Web đáp ứng đa trình duyệt, hỗ trợ vai trò Chủ sở hữu (Tenant Owner), Giảng viên (Instructor), Học viên (Student) và Nhân viên quản trị (System Admin).
- Giới hạn kỹ thuật: Hệ thống tập trung tối ưu hóa trên giao diện Web (chưa đóng gói Native Mobile App), sử dụng cơ chế thanh toán giả lập kết hợp cổng thanh toán tích hợp trong Odoo, chưa tích hợp chữ ký số pháp lý và hệ thống giám sát thi tự động bằng AI (Proctoring).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng và đối thủ cạnh tranh
| Tiêu chí |
Google Classroom |
UTEx (Moodle HCMUTE) |
Hệ thống DFF (Đề tài) |
| Mô hình kiến trúc |
Cloud SaaS đóng kín (Monolithic SaaS) |
Monolithic LMS (PHP/MySQL) |
Modular Microservices & ERP Hybrid |
| Khả năng thương mại hóa |
Thấp (chỉ phục vụ lớp học đơn thuần) |
Không (nội bộ trường học) |
Cao (Tích hợp Subscription & Quản lý gói cước) |
| Quản lý lưu trữ |
Phụ thuộc Google Drive cá nhân/Workspace |
Lưu trữ trực tiếp trên Local Server |
Tách biệt Hybrid Cloud (OneDrive API) |
| Tự động chấm điểm |
Trắc nghiệm cơ bản qua Google Forms |
Quiz engine phức tạp nhưng nặng tải |
Engine Quiz tối ưu hóa, chấm điểm đa điều kiện |
| Quản trị ERP/Tài chính |
Không tích hợp |
Không tích hợp |
Tích hợp sâu Odoo ERP (Hóa đơn, Thuê bao, Gói cước) |
Ma trận phân loại yêu cầu người dùng (MoSCoW)
- Must-have: Xác thực Token bảo mật qua Middlegate; Phân quyền đa cấp bậc (Admin, Owner, Teacher, Student); Tạo khóa học, bài học đa phương tiện; Làm bài trắc nghiệm và chấm điểm; Đăng ký và thanh toán gói dịch vụ.
- Should-have: Tự động tải và đồng bộ tài liệu bài giảng lên Microsoft OneDrive; Phân bổ hạn ngạch lưu trữ theo gói thuê bao; Thống kê điểm số và lịch sử làm bài.
- Could-have: Đổi giao diện hiển thị Kanban/List view; Lọc và phân nhóm nội dung khóa học theo chuyên đề.
- Won't-have (giai đoạn này): Chữ ký số điện tử trên hóa đơn; Họp video trực tuyến thời gian thực (WebRTC).
Thiết kế hệ thống và kiến trúc phần mềm
Hệ thống được thiết kế theo kiến trúc hướng dịch vụ (Service-Oriented Architecture - SOA) kết hợp mô hình phân tầng chặt chẽ Service -> Util -> Model, kiểm soát tập trung qua Middlegate.
graph TD
Client[Web Clients: DFFPortal / DFFX / DFFERP] -->|HTTP REST Requests + Bearer Token| Gate[Middlegate - API Gateway]
Gate -->|1. Validate Token| AuthSvc[Account Service / Auth Engine]
AuthSvc -->|Token Valid 200 OK / 401 Unauthorized| Gate
Gate -->|2. Route Request| CoreSvc[LMS Core Service - Flask]
Gate -->|2. Route Request| SaleSvc[Sale & Subscription Service - Odoo Engine]
CoreSvc -->|Data Access| DB[(PostgreSQL Database)]
SaleSvc -->|Data Access| DB
CoreSvc -->|Offload Attachments / Submissions| OneDrive[Microsoft OneDrive Cloud Storage API]
Công nghệ sử dụng và phiên bản kỹ thuật
- Backend Framework: Python 3.10+, Flask 2.3.x (xử lý logic nghiệp vụ phân hệ LMS tốc độ cao).
- Enterprise ERP Platform: Odoo 16.0 Community Edition (phục vụ module CRM, Sale, Invoicing, Subscription).
- Cơ sở dữ liệu: PostgreSQL 14.5 (hỗ trợ ACID, JSONB query, quan hệ ràng buộc chặt chẽ).
- Lưu trữ đám mây: Microsoft Graph API v1.0 (tích hợp OneDrive Business/Personal).
- Môi trường triển khai: Ubuntu Server 22.04 LTS, Nginx 1.22 làm Reverse Proxy, Gunicorn WSGI Server.
Thiết kế cơ sở dữ liệu chi tiết (Database Schema)
Hệ thống chuẩn hóa dữ liệu thành 5 nhóm thực thể chính:
- Nhóm người dùng:
CustomerAuthAccount (tài khoản đăng nhập), ResPartner (thông tin cá nhân/đối tác), CustomerAuthToken (phiên làm việc và phân quyền).
- Nhóm khóa học:
SlideChannel (khóa học), SlideChannelPartner (học viên/giảng viên tham gia), SlideSlide (bài giảng/nội dung), SlideSlideAttachment (tệp tin đính kèm), SlideQuestion & SlideAnswer (ngân hàng đề và đáp án), SlideSlidePartnerAttempt (lịch sử làm bài thi).
- Nhóm tài nguyên đào tạo:
CustomerResource (hạn mức tài nguyên được cấp), CustomerResourceLine (chi tiết dung lượng, số lớp học khả dụng).
- Nhóm dịch vụ & sản phẩm:
ProductTemplate (mẫu gói cước), ProductProduct (biến thể gói cước theo thời gian), ProductResource (loại tài nguyên: dung lượng, số lượng tài khoản).
- Nhóm phiếu đăng ký & thanh toán:
SaleOrder (đơn đặt mua gói), SaleSubscriptionPlan (kỳ hạn thanh toán), AccountMove (hóa đơn), PaymentTransaction (giao dịch thanh toán).
Implementation và kết quả thực nghiệm
Quy trình phát triển và các giải thuật then chốt
Hệ thống tuân thủ mô hình phát triển phần mềm lặp (Iterative Agile) với 5 giai đoạn triển khai từ tháng 03/2024 đến tháng 07/2024:
[05/03 - 24/03] Khảo sát yêu cầu, Phân tích nghiệp vụ & Thiết kế ERD Database
│
[25/03 - 29/04] Phác thảo Wireframe UI/UX & Thiết kế Components
│
[30/04 - 04/06] Phát triển DFFERP Core & API Gateway Middlegate
│
[05/06 - 02/07] Phát triển LMS Engine (DFFX) & Subscription Portal (DFFPortal)
│
[03/07 - 10/07] Tích hợp OneDrive API, Kiểm thử Benchmark & Đóng gói Triển khai
1. Cơ chế xác thực phân quyền tập trung tại Middlegate
Mọi yêu cầu gửi từ giao diện người dùng đều được Middlegate chặn lại để kiểm tra tính hợp lệ của Token trước khi cho phép chuyển tiếp đến các service nghiệp vụ nội bộ.
# middlegate/auth_interceptor.py
import requests
from flask import request, jsonify
ACCOUNT_SERVICE_URL = "http://127.0.0.1:8069/api/v1/auth/verify-token"
def token_required(f):
def decorated(*args, **kwargs):
token = request.headers.get('Authorization')
if not token:
return jsonify({'error': 'Token is missing', 'code': 401}), 401
try:
# Gửi request xác minh token sang Account Service
response = requests.post(
ACCOUNT_SERVICE_URL,
headers={'Authorization': token},
timeout=2.0
)
if response.status_code != 200:
return jsonify({'error': 'Invalid or expired token', 'code': 401}), 401
# Gắn context người dùng vào request nội bộ
request.user_context = response.json().get('data')
except requests.exceptions.RequestException as e:
return jsonify({'error': 'Authentication service unreachable', 'code': 503}), 503
return f(*args, **kwargs)
return decorated
2. Thuật toán chấm điểm bài tập trắc nghiệm và đánh giá tự động
Hệ thống cho phép chấm điểm Quiz theo công thức chuẩn hóa dựa trên số lượng đáp án đúng của từng câu hỏi, hỗ trợ tính điểm theo tỷ trọng.
$$\text{Score} = \left( \frac{\sum_{i=1}^{n} \mathbb{I}(\text{user_ans}_i == \text{correct_ans}_i)}{n} \right) \times 10$$
# services/quiz_grading_service.py
class QuizGradingService:
@staticmethod
def calculate_attempt_score(slide_id, user_answers, db_session):
"""
Tính điểm bài quiz tự động dựa trên ngân hàng câu hỏi
:param slide_id: ID của bài kiểm tra (SlideSlide)
:param user_answers: Dict dạng {question_id: answer_id}
:return: Điểm số trên thang điểm 10 và chi tiết kết quả
"""
questions = db_session.query(SlideQuestion).filter_by(slide_id=slide_id).all()
if not questions:
return 0.0, []
total_questions = len(questions)
correct_count = 0
detailed_results = []
for q in questions:
correct_answer = db_session.query(SlideAnswer).filter_by(
question_id=q.id, is_correct=True
).first()
selected_answer_id = user_answers.get(str(q.id)) or user_answers.get(q.id)
is_match = (correct_answer and selected_answer_id == correct_answer.id)
if is_match:
correct_count += 1
detailed_results.append({
'question_id': q.id,
'is_correct': is_match,
'correct_answer_id': correct_answer.id if correct_answer else None
})
final_score = round((correct_count / total_questions) * 10.0, 2)
return final_score, detailed_results
3. Module tích hợp Microsoft OneDrive Graph API
Tệp tin tài liệu bài giảng và bài nộp của học viên được đẩy trực tiếp lên Cloud Storage thông qua REST API, lưu trữ định danh onedrive_item_id vào cơ sở dữ liệu.
# utils/onedrive_adapter.py
import requests
class OneDriveAdapter:
def __init__(self, access_token):
self.base_url = "https://graph.microsoft.com/v1.0/me/drive"
self.headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
def upload_file_stream(self, folder_path, file_name, file_content):
"""
Upload tệp tin lên thư mục chỉ định trên OneDrive
"""
upload_url = f"{self.base_url}/root:/{folder_path}/{file_name}:/content"
response = requests.put(
upload_url,
headers={"Authorization": self.headers["Authorization"]},
data=file_content,
timeout=30.0
)
if response.status_code in [200, 201]:
data = response.json()
return {
"success": True,
"onedrive_id": data.get("id"),
"web_url": data.get("webUrl"),
"download_url": data.get("@microsoft.graph.downloadUrl")
}
return {"success": False, "error": response.text}
Kết quả kiểm thử và đánh giá hiệu năng (Benchmarks)
Quá trình kiểm thử tải (Load Testing) và kiểm thử chức năng được thực hiện trên môi trường máy chủ thử nghiệm (4 vCPU, 8GB RAM, SSD NVMe):
- Độ bao phủ kiểm thử (Test Coverage): Đạt 86.4% trên toàn bộ các modules logic nghiệp vụ cốt lõi.
- Thời gian phản hồi API trung bình:
- Xác thực Token qua Middlegate: 14.2ms.
- Truy vấn dữ liệu khóa học (Database Query): 48.6ms.
- Tải nội dung bài học kết hợp OneDrive metadata: 165.8ms.
- Khả năng chịu tải đồng thời: Xử lý ổn định 350+ Concurrent Users (CCU) với tỷ lệ phản hồi lỗi HTTP 5xx dưới 0.05%.
- Tối ưu hóa dung lượng lưu trữ cục bộ: Giảm 94.2% dung lượng đĩa cứng máy chủ ứng dụng nhờ cơ chế ủy quyền tệp tin sang Microsoft OneDrive.
Đổi mới và đóng góp kỹ thuật
- Kiến trúc phân tách ba phân hệ chuyên biệt (Tri-Portal Architecture):
- Thay vì gộp chung một giao diện cồng kềnh, đề tài tách bạch rõ ràng:
DFFPortal phục vụ khía cạnh thương mại/quản lý gói; DFFX tập trung trải nghiệm học tập siêu tốc; DFFERP xử lý các quy trình kế toán, dịch vụ và vận hành hệ thống.
- Mô hình quản lý tài nguyên đào tạo động (Dynamic Educational Resource Quota):
- Cho phép định nghĩa linh hoạt các loại tài nguyên (
ProductResource, ResourceUnit) như: Dung lượng lưu trữ, Số lượng khóa học tối đa, Số lượng học viên đồng thời. Hệ thống tự động kiểm tra hạn ngạch khi chủ sở hữu thao tác tạo mới khóa học.
- Mô hình Hybrid Cloud Storage cho hệ thống LMS:
- Giải quyết triệt để rào cản tài chính về hạ tầng cho các trung tâm đào tạo vừa và nhỏ bằng cách tận dụng OneDrive API, giúp hạ thấp chi phí lưu trữ tệp tin lớn xuống xấp xỉ 0 đồng trên máy chủ chính.
- Cơ chế xác thực Micro-Gateway nhẹ:
- Thiết lập lớp Middlegate phân tán giúp cô lập các service nghiệp vụ, bảo vệ hệ thống khỏi các truy vấn trái phép và dễ dàng mở rộng thêm các microservices mới trong tương lai mà không ảnh hưởng cấu trúc ứng dụng sẵn có.
Ứng dụng thực tế và triển khai
Kịch bản triển khai thực tế (Use-Case Scenarios)
- Kịch bản 1: Trung tâm đào tạo lập trình trực tuyến: Chủ trung tâm đăng ký gói "Standard 6 tháng" trên DFFPortal. Hệ thống tự động kích hoạt tài nguyên (cho phép mở 20 lớp học, 500 học viên). Giảng viên đăng tải bài giảng video và tạo bài tập thực hành trên DFFX; học viên nộp mã nguồn và nhận điểm phản hồi tự động.
- Kịch bản 2: Giảng viên tự do (Freelance Instructor): Đăng ký gói tài nguyên cơ bản để mở lớp dạy kèm từ xa, dễ dàng theo dõi tiến độ học tập và quản lý danh sách thành viên mà không cần thuê đội ngũ IT cài đặt server.
Yêu cầu cấu hình và hướng dẫn triển khai
Yêu cầu hệ thống tối thiểu (Production Environment)
- Hệ điều hành: Linux (Ubuntu Server 20.04 LTS hoặc 22.04 LTS).
- Phần cứng: Tối thiểu 2 vCPU, 4GB RAM, 40GB SSD.
- Môi trường phụ trợ: Python 3.10+, PostgreSQL 14+, Nginx, Git, Node.js (cho các asset frontend nếu cần).
Các bước triển khai hệ thống (Deployment Steps)
- Khởi tạo cơ sở dữ liệu:
sudo -u postgres psql -c "CREATE DATABASE dff_lms_db;"
sudo -u postgres psql -c "CREATE USER dff_user WITH ENCRYPTED PASSWORD 'StrongPassword123';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE dff_lms_db TO dff_user;"
- Cấu hình môi trường và cài đặt dependencies:
git clone https://github.com/dff-ecosystem/dff-lms-core.git /var/www/dff-lms
cd /var/www/dff-lms
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
- Cấu hình biến môi trường (
.env):
DATABASE_URL=postgresql://dff_user:StrongPassword123@localhost:5432/dff_lms_db
MIDDLEGATE_SECRET_KEY=e8b7c3d91f2a4e5b6c7d8e9f0a1b2c3d
ONEDRIVE_CLIENT_ID=your_azure_client_id_here
ONEDRIVE_CLIENT_SECRET=your_azure_client_secret_here
ONEDRIVE_TENANT_ID=common
- Thiết lập Gunicorn Service và Nginx Reverse Proxy:
# /etc/nginx/sites-available/dff_system.conf
server {
listen 80;
server_name dffx.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Phân tích hiệu quả kinh tế (ROI & Cost-Benefit Analysis)
+------------------------------------+------------------------------------+
| HỆ THỐNG TỰ PHÁT TRIỂN / ON-PREMISE | HỆ SINH THÁI DFF (SAAS HYBRID) |
+------------------------------------+------------------------------------+
| Chi phí khởi tạo: ~80.000.000 VNĐ | Chi phí khởi tạo: 0 VNĐ |
| Vận hành máy chủ: ~4.000.000 VNĐ/th| Thuê bao gói cước: ~500.000 VNĐ/th |
| Phí bảo trì IT: ~6.000.000 VNĐ/th | Bảo trì: Tích hợp sẵn trong gói |
| Chi phí lưu trữ Cloud: Tự chi trả | Lưu trữ: Tận dụng OneDrive sẵn có |
+------------------------------------+------------------------------------+
| ==> TỔNG NĂM ĐẦU: ~200.000.000 VNĐ | ==> TỔNG NĂM ĐẦU: ~6.000.000 VNĐ |
| (TIẾT KIỆM ĐẾN 97% CHI PHÍ ĐẦU TƯ CHO CƠ SỞ ĐÀO TẠO BAN ĐẦU) |
+------------------------------------+------------------------------------+
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Quá trình xác thực Token giữa Middlegate và Account Service là HTTP Request đồng bộ (Synchronous), có thể tạo thành điểm nghẽn (bottleneck) khi số lượng truy vấn đồng thời tăng đột biến.
- Cơ chế phân giải tệp tin qua OneDrive API phụ thuộc vào đường truyền mạng quốc tế và giới hạn hạn ngạch request (Rate Limit) của Microsoft Graph API.
- Chưa hỗ trợ chức năng thi trắc nghiệm đảo câu hỏi/đáp án theo từng thí sinh và chưa có công cụ chống gian lận trực tuyến.
Kế hoạch nâng cấp và hướng nghiên cứu tương lai
- Kiến trúc: Ứng dụng Redis Caching tại lớp Middlegate để cache phiên làm việc và Token của người dùng, giảm 90% số lượng cuộc gọi kiểm tra sang Account Service.
- Tính năng ứng dụng: Phát triển ứng dụng di động đa nền tảng bằng Flutter cho phân hệ học viên (DFFX Mobile).
- Trí tuệ nhân tạo (AI Integration): Tích hợp mô hình ngôn ngữ lớn (LLM) để tự động tạo câu hỏi kiểm tra từ slide bài giảng và hỗ trợ trợ lý ảo giải đáp thắc mắc của học viên 24/7.
Đối tượng hưởng lợi
- Học viên và Giảng viên (Students & Instructors): Trải nghiệm học tập mượt mà, cấu trúc khóa học phân tầng trực quan, làm bài và nhận kết quả tức thì với độ trễ dưới 200ms.
- Lập trình viên và Kỹ sư phần mềm (Developers): Cung cấp tài liệu tham khảo thực tế về cách kết nối Flask microservices với nền tảng ERP Odoo và kỹ thuật tích hợp Cloud Storage API.
- Chủ cơ sở đào tạo và Doanh nghiệp EdTech (Businesses): Tiết kiệm đến 97% chi phí xây dựng hạ tầng phần mềm quản lý học tập ban đầu, triển khai lớp học trực tuyến chỉ trong 5 phút.
- Nhà nghiên cứu (Academic Researchers): Tài liệu nghiên cứu điển hình về việc ứng dụng kiến trúc phân tán hướng dịch vụ để giải quyết bài toán phân bổ tài nguyên giáo dục động.
Câu hỏi thường gặp (FAQ)
1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu máy chủ Linux (khuyến nghị Ubuntu 22.04 LTS), tối thiểu 2 vCPU, 4GB RAM, cài đặt sẵn Python 3.10+, PostgreSQL 14+, Nginx và đã kích hoạt tài khoản Microsoft Azure Developer để cấu hình Microsoft Graph API.
2. Khi số lượng học viên tăng đột biến, hệ thống giải quyết bài toán mở rộng (Scalability) như thế nào?
Nhờ kiến trúc phân tách, các thành phần DFFX, DFFPortal và DFFERP có thể được đóng gói container hóa (Docker) và triển khai độc lập trên các cụm máy chủ khác nhau. Việc phân tải có thể thực hiện thông qua Nginx Load Balancer, kết hợp với Redis Cache để lưu trữ phiên làm việc tạm thời.
3. Hệ thống có thể tích hợp với các cổng thanh toán nội địa tại Việt Nam không?
Có. Phân hệ DFFERP được xây dựng trên Odoo nên dễ dàng cài đặt thêm các module cổng thanh toán phổ biến như VNPay, MoMo, ZaloPay hoặc VietQR thông qua API Webhook chuẩn hóa.
4. Chi phí duy trì hệ sinh thái DFF hàng tháng bao gồm những khoản nào?
Chi phí chỉ bao gồm phí thuê máy chủ Cloud VPS (khoảng 200.000 – 500.000 VNĐ/tháng tùy quy mô) và tên miền. Tệp tin bài học được lưu trữ qua OneDrive giúp loại bỏ hoàn toàn chi phí thuê CDN hoặc Object Storage đắt đỏ (như AWS S3).
5. Dữ liệu học tập và bài nộp của học viên được bảo mật như thế nào?
Dữ liệu nhạy cảm (mật khẩu) được mã hóa một chiều bằng thuật toán băm Bcrypt/PBKDF2. Mọi truy vấn API đều bắt buộc kiểm tra Bearer Token qua Middlegate. Các đường dẫn tệp tin trên OneDrive được lưu trữ dưới dạng mã định danh riêng tư và chỉ cấp quyền truy cập tạm thời cho thành viên hợp lệ của khóa học.
Kết luận
Đề tài tốt nghiệp "Xây dựng hệ thống websites cung cấp dịch vụ quản lý học tập của cơ sở đào tạo trực tuyến" của sinh viên Nguyễn Ngọc Phát (khoa CNTT, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh) đã hoàn thành xuất sắc mục tiêu đề ra. Hệ thống không chỉ giải quyết trọn vẹn bài toán nghiệp vụ học tập trực tuyến (LMS) mà còn mở rộng thành công sang mô hình quản trị tài nguyên doanh nghiệp (ERP & SaaS Portal), mang lại giá trị thực tiễn cao cho cộng đồng giáo dục số.
Đây là giải pháp toàn diện, có tính ứng dụng cao và sẵn sàng thương mại hóa nhằm hỗ trợ chuyển đổi số cho các trung tâm đào tạo lập trình và cơ sở giáo dục hiện đại.
(Mọi ý kiến đóng góp, trao đổi học thuật hoặc nhu cầu thử nghiệm giải pháp, vui lòng liên hệ Bộ môn Hệ thống Thông tin – Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh).