EduForge
Next.js
NestJS
Spring Boot
Django
PostgreSQL
MongoDB
Redis
Kong
Docker

EduForge

0 lượt xem

Thông tin chung

Đồ án môn họcMicroservices02/2025 – 05/2025

Nền tảng học tập trực tuyến thông minh

Môn học: Kiến trúc và Thiết kế Phần mềm

Thành viên

Mã nguồn

Thành phầnChức năngCông nghệThực hiện
FrontendGiao diện nền tảng học tập trực tuyếnNext.jsTất cả thành viênGitHub
Assessment ServiceQuản lý bài kiểm tra, bài tậpNestJS, PostgreSQLKhangGitHub
Course ServiceQuản lý khóa họcNestJS, PostgreSQLKiên, CảnhGitHub
Discussion ServiceBình luận, tương tác trong nội dung khóa họcNestJS, PostgreSQLCảnhGitHub
Enrollment ServiceQuản lý đăng ký khóa họcNestJS, PostgreSQLNamGitHub
Notification ServiceQuản lý thông báo cho người dùngNestJS, MongoDBCảnhGitHub
Payment ServiceQuản lý thanh toánNestJS, PostgreSQLNamGitHub
Post ServiceQuản lý bài viết, bình luậnSpring Boot, MongoDBKhangGitHub
Recommendation ServiceMô hình AI gợi ý bài viết dựa trên lịch sử xem và thíchDjango, TensorFlowKhangGitHub
User ServiceQuản lý người dùng, phân quyềnNestJS, MongoDBThịnhGitHub

Giới thiệu

EduForge là nền tảng học tập trực tuyến phát triển cho môn học Kiến trúc và Thiết kế Phần mềm năm 2025, hướng tới trải nghiệm học tập hiện đại, cá nhân hóa và hiệu quả. Dự án áp dụng kiến trúc microservices để xây dựng một hệ sinh thái học tập toàn diện: nội dung khóa học, bài kiểm tra, cộng đồng, thanh toán và gợi ý bằng AI.

Bên cạnh cung cấp nội dung học tập chất lượng, EduForge chú trọng trải nghiệm người dùng, tương tác cộng đồng và tích hợp AI để hỗ trợ học viên đạt kết quả học tập tốt hơn, phục vụ cả học viên, giảng viên và quản trị viên.

Kiến trúc hệ thống

EduForge tách thành 10 service độc lập, mỗi service một kho mã nguồn, một cơ sở dữ liệu riêng và tự triển khai bằng Docker. Next.js gọi vào hệ thống qua một cổng vào duy nhất là Kong API Gateway, nơi định tuyến request theo đường dẫn tới đúng service phía sau. Một vài service gọi thẳng sang nhau để lấy dữ liệu thay vì đi vòng qua gateway, và Recommendation Service chỉ gọi riêng Post Service để lấy dữ liệu huấn luyện, không đăng ký qua Kong.

FrontendNext.js 14, https://eduforge.io.vn
Kong API Gateway

Một cổng vào duy nhất, định tuyến request theo đường dẫn tới đúng service phía sau

Microservices

Post Service

Bài viết, bình luận cộng đồng

MongoDBrepo

Storage Service

Lưu trữ file, hình ảnh

Supabase

Discussion Service

Bình luận, tương tác theo thời gian thực (WebSocket)

PostgreSQLrepo

Assessment Service

Ngân hàng câu hỏi, bài kiểm tra

PostgreSQLrepo

Course Service

Khóa học, bài học

PostgreSQLrepo

User Service

Người dùng, phân quyền, hàng đợi email qua Redis

MongoDBrepo

Report Service

Báo cáo doanh thu, thống kê

PostgreSQL

Enrollment Service

Đăng ký khóa học

PostgreSQLrepo

Payment Service

Thanh toán qua payOS

PostgreSQLrepo

Notification Service

Thông báo cho người dùng

MongoDBkhông có trong sơ đồ kiến trúc gốcrepo

Recommendation Service

Gợi ý bài viết dựa trên lịch sử xem và thích

Không có CSDL riêngchỉ gọi Post Servicerepo
Dịch vụ bên ngoài
SupabaseStorage Service lưu file
payOSPayment Service thanh toán (bởi Casso)

Gọi trực tiếp giữa các service (không qua Kong)

  • Assessment ↔ Course: kiểm tra khóa học khi tạo bài kiểm tra
  • Course ↔ User: lấy thông tin giảng viên, học viên
  • Course ↔ Enrollment: kiểm tra khóa học khi đăng ký
  • User ↔ Payment: xác thực người dùng khi thanh toán
  • Report ↔ Enrollment: tổng hợp số liệu đăng ký
  • Enrollment ↔ Payment: xác nhận đã thanh toán trước khi ghi danh
  • Post ↔ Recommendation: lấy dữ liệu bài viết, lượt xem, lượt thích để huấn luyện và gợi ý

Tính năng

Quản lý khóa học

  • Tạo và quản lý khóa học
  • Phân loại khóa học theo danh mục
  • Chi tiết khóa học với nội dung đa phương tiện
  • Quản lý bài học

Hệ thống đánh giá

  • Bài kiểm tra và đánh giá đa dạng
  • Báo cáo kết quả học tập
  • Chứng chỉ hoàn thành khóa học

Tương tác và cộng đồng

  • Hệ thống bình luận và thảo luận
  • Chia sẻ tài liệu và kinh nghiệm
  • Tương tác giữa học viên và giảng viên

Tích hợp AI

  • Hỗ trợ học tập thông minh
  • Phân tích và đề xuất cá nhân hóa
  • Báo cáo AI chi tiết

Quản lý người dùng

  • Đăng ký và đăng nhập an toàn
  • Quản lý hồ sơ người dùng
  • Phân quyền và bảo mật

Thanh toán và báo cáo

  • Hệ thống thanh toán tích hợp
  • Báo cáo doanh thu và thống kê
  • Quản lý đăng ký khóa học

Lộ trình học tập

  • Hệ thống đề xuất lộ trình học tập
  • Tổng quan và chi tiết lộ trình

Công nghệ sử dụng

Next.js 14

Giao diện web, App Router, tối ưu SSR và trải nghiệm người dùng.

NestJS

Phần lớn các service backend: Assessment, Course, Discussion, Enrollment, Notification, Payment, Storage, User.

Spring Boot

Post Service, quản lý bài viết và bình luận cộng đồng.

Django

Recommendation Service, phục vụ mô hình gợi ý bài viết.

TensorFlow

Huấn luyện mô hình gợi ý dựa trên lịch sử xem và thích.

Kong

API Gateway, cổng vào duy nhất định tuyến request tới từng service.

PostgreSQL

Cơ sở dữ liệu cho phần lớn service: khóa học, bài kiểm tra, đăng ký, thanh toán, báo cáo.

MongoDB

Post Service, User Service và Notification Service.

Redis

Hàng đợi xử lý email ở User Service.

Supabase

Lưu trữ file, hình ảnh ở Storage Service.

Docker

Đóng gói và triển khai từng service độc lập.

payOS

Cổng thanh toán cho Payment Service.

Giao diện ứng dụng

Trang chủ

Giao diện trang chủ EduForge với các khóa học nổi bật.

Trang chủ

Quản lý khóa học

Chi tiết khóa học với thông tin đầy đủ.

Chi tiết khóa học

Phân loại khóa học theo danh mục.

Phân loại khóa học

Thêm khóa học mới.

Thêm khóa học

Chỉnh sửa thông tin khóa học.

Chỉnh sửa khóa học

Giao diện học tập

Giao diện học tập bài học.

Giao diện học tập

Giao diện học tập nâng cao.

Giao diện học tập nâng cao

Hệ thống đánh giá

Giao diện đánh giá.

Giao diện đánh giá

Chi tiết bài đánh giá.

Chi tiết bài đánh giá

Chứng chỉ hoàn thành khóa học.

Chứng chỉ

Tương tác và cộng đồng

Hệ thống bình luận.

Hệ thống bình luận

Bài viết cộng đồng.

Bài viết cộng đồng

Quản lý bài viết.

Quản lý bài viết

Tạo bài viết mới.

Tạo bài viết

Tích hợp AI

Giao diện AI hỗ trợ học tập.

AI hỗ trợ học tập

Báo cáo phân tích AI.

Báo cáo AI

Quản lý người dùng

Đăng nhập hệ thống.

Đăng nhập

Đăng ký tài khoản.

Đăng ký

Khôi phục mật khẩu.

Khôi phục mật khẩu

Quản lý thông tin người dùng.

Quản lý người dùng

Thanh toán và báo cáo

Giao diện thanh toán.

Thanh toán

Báo cáo doanh thu.

Báo cáo doanh thu

Lộ trình học tập

Tổng quan lộ trình học tập.

Lộ trình học tập

Chi tiết lộ trình học tập.

Chi tiết lộ trình

Nhóm phát triển

Nhóm phát triển EduForge.

Nhóm phát triển