Ứng dụng web / 2026 / Đang phát triển

ExamForge

Nền tảng thi cử hướng đến vận hành thực tế cho quy trình luyện tập của người học và quản trị nội dung có cấu trúc, được tổ chức trong monorepo đa ứng dụng.

Danh mục
Ứng dụng web
Năm
2026
Trạng thái
Đang phát triển
01

Tổng quan

ExamForge tách quy trình của người học và quản trị viên thành hai ứng dụng Next.js, dùng chung một API ASP.NET Core và mô hình dữ liệu PostgreSQL. Người học duyệt môn thi, làm bài luyện tập và xem kết quả; quản trị viên quản lý nội dung có cấu trúc phía sau các trải nghiệm đó.

Repository được thiết kế như một dự án kỹ thuật dễ kiểm tra: frontend, các tầng backend, cấu hình triển khai, kiểm thử và tài liệu quy hoạch nằm cùng nhau; CI và Docker hỗ trợ quy trình lặp lại ổn định.

02

Bài toán

Luyện thi không phải một quy trình CRUD đơn giản. Lượt làm bài phải bảo vệ đáp án trước khi nộp, giữ đúng quyền sở hữu, tính điểm phía server và hỗ trợ xem lại; trong khi quản trị viên cần môi trường riêng để soạn, xuất bản và duy trì nội dung đề thi.

03

Phạm vi kỹ thuật

Repository bao gồm frontend học tập và quản trị, API .NET chia thành Api, Application, Domain và Infrastructure, lưu trữ PostgreSQL qua Entity Framework Core, xác thực JWT, kiểm thử, Docker, CI và ghi log vận hành có cấu trúc.

04

Kiến trúc hệ thống

Hai frontend độc lập giúp tách biệt nhu cầu của người học và quản trị nội dung. API ánh xạ request vào các use case của tầng Application; luật nghiệp vụ được cách ly khỏi framework và persistence. Infrastructure hiện thực EF Core và PostgreSQL phía sau các ranh giới này.

01Study applicationNext.js / learner workflows
02Admin applicationNext.js / content workflows
03ASP.NET Core APIAPI · Application · Domain · Infrastructure
04PostgreSQLEF Core / relational persistence
Ranh giới ứng dụng và hướng phụ thuộc backend của ExamForge.
05

Năng lực chính của hệ thống

01

Luyện tập cho người học

Khám phá môn và đề thi, phiên luyện tập, nộp đáp án, xem kết quả và các quy trình theo dõi tiến độ.

02

Quản trị nội dung

Công cụ riêng cho môn học, đề, phần thi, câu hỏi, lời giải, thẻ và trạng thái xuất bản.

03

Luồng đánh giá được bảo vệ

Kiểm tra quyền sở hữu, phân quyền, tính điểm phía server và chỉ hiển thị đáp án đúng sau khi nộp.

04

Chẩn đoán vận hành

Log JSON có cấu trúc, correlation ID, sự kiện request chậm, giới hạn xoay vòng log Docker và logging trung lập nhà cung cấp.

06

Quyết định kỹ thuật

Tách ứng dụng học tập và quản trị

Vấn đề
Luyện tập và quản trị nội dung có người dùng, quyền hạn và mật độ tương tác khác nhau.
Quyết định
Dùng hai ứng dụng Next.js với một hợp đồng API và domain backend chung.
Đánh đổi
Mỗi trải nghiệm giữ được trọng tâm, nhưng thay đổi hành vi hoặc hợp đồng dùng chung cần nhiều phối hợp hơn.

Mô hình đề thi quan hệ

Vấn đề
Đề thi chứa phần thi, câu hỏi, lựa chọn, phiên bản, lượt làm và trạng thái xuất bản cần luôn nhất quán.
Quyết định
Mô hình hóa domain trong PostgreSQL qua EF Core thay vì lưu toàn bộ đề dưới dạng JSON phi cấu trúc.
Đánh đổi
Schema và migration cần được quản lý rõ ràng hơn, đổi lại có ràng buộc, khả năng truy vấn và tiến hóa có kiểm soát.

Khả năng quan sát trung lập nhà cung cấp

Vấn đề
Request và lỗi cần truy vết ngay nhưng mã ứng dụng không nên bị khóa vào một dịch vụ telemetry.
Quyết định
Dùng sự kiện ILogger có cấu trúc, correlation scope và JSON console do Docker quản lý.
Đánh đổi
Chẩn đoán cục bộ mạnh, còn lưu trữ và truy vấn tập trung là mối quan tâm của giai đoạn triển khai sau.
07

Thách thức & đánh đổi

  • Giữ đáp án đúng và việc tính điểm ở server nhưng vẫn đảm bảo tương tác luyện tập nhanh nhạy.
  • Duy trì hướng phụ thuộc sạch giữa domain, application, infrastructure và HTTP.
  • Phối hợp hai frontend có trọng tâm khác nhau trên cùng hợp đồng API có phiên bản.
  • Cân bằng domain có khả năng mở rộng với phạm vi MVP có thể hoàn thành và kiểm tra.
08

Công nghệ

  • 01Next.js
  • 02TypeScript
  • 03ASP.NET Core
  • 04.NET 10
  • 05PostgreSQL
  • 06Entity Framework Core
  • 07Docker
  • 08GitHub Actions
09

Kết quả hiện tại

  • Monorepo hoạt động với ranh giới rõ ràng cho study, admin, API, kiểm thử, tài liệu và triển khai.
  • Solution .NET phân lớp với PostgreSQL, kiểm soát truy cập bằng JWT và chẩn đoán API có cấu trúc.
  • Nền tảng đang được phát triển tích cực; không công bố số liệu người dùng, hiệu năng hay production chưa được xác minh.