SotaTek Education - International Certification Management Platform
Nền tảng khảo thí và cấp chứng chỉ lập trình quốc tế thế hệ mới kết nối cùng tổ chức khảo thí giáo dục hàng đầu Đông Á. Dự án tích hợp môi trường làm bài thi lập trình trực tuyến (In-browser Code Editor), hệ thống phân quyền động Keycloak UMA 2.0 tại tầng Edge Middleware, và cơ chế hàng đợi xử lý token non-blocking chống đứt gãy phiên thi.






1. Tổng quan & Vấn đề cần giải quyết
Dự án là nền tảng khảo thí trực tuyến & quản trị chứng chỉ lập trình tiêu chuẩn doanh nghiệp, được xây dựng để phục vụ các kỳ thi đánh giá năng lực thuật toán quốc tế phối hợp cùng một tổ chức khảo thí giáo dục hàng đầu khu vực Đông Á. Hệ sinh thái bao quát toàn bộ vòng đời khảo thí: từ cổng tiếp nhận thí sinh, quản trị ngân hàng câu hỏi thuật toán, tạo đề thi tự động, tổ chức thi thực chiến trực tuyến đến đối soát kết quả và phát hành chứng chỉ số.
Trước khi giải pháp được triển khai, các kỳ thi lập trình quy mô lớn gặp nhiều rào cản kỹ thuật:
Hạn chế công cụ khảo thí: Thiếu môi trường code editor và trình chạy thử thuật toán trực tiếp trên trình duyệt có độ ổn định cao và độ trễ thấp.
Xác thực và phân quyền cứng nhắc: Các giải pháp phân quyền truyền thống thiếu tính linh hoạt khi cần điều chỉnh quyền hạn tức thời theo vai trò (giám thị, người chấm thi, thí sinh, quản trị viên) trên từng phân hệ độc lập.
Độ trễ và xung đột phiên làm bài: Hiện tượng gián đoạn phiên do cơ chế làm mới token gặp xung đột (race condition) khi trình duyệt liên tục gửi đồng thời nhiều tín hiệu lưu bài tự động và kiểm tra trạng thái mạng.
Nền tảng được kiến tạo nhằm cung cấp giao diện làm bài thi trực quan, độ trễ tiệm cận zero, tích hợp chuẩn xác cơ chế phân quyền tài nguyên động Keycloak UMA 2.0 và bảo vệ an toàn các tuyến quản trị ngay tại tầng Edge Middleware.
2. Tính năng chính & Năng lực hệ thống
Nền tảng khảo thí lập trình trực tuyến & Tích hợp đối tác quốc tế
In-browser Code Editor: Môi trường làm bài thi thực chiến với trình soạn thảo code tích hợp đa ngôn ngữ, hỗ trợ syntax highlighting, phím tắt tiêu chuẩn và kiểm thử test-case trực tiếp với độ trễ thấp.
Chuẩn hóa quy trình chứng chỉ quốc tế: Cơ chế tích hợp API an toàn kết nối với tổ chức khảo thí bên thứ ba nhằm đồng bộ thông tin thí sinh, ca thi và chuẩn hóa dữ liệu kết quả để phát hành chứng chỉ số được công nhận.
Ngân hàng câu hỏi & Tạo đề tự động: Bộ công cụ quản lý cấu trúc đề thi theo mức độ thuật toán, hỗ trợ trộn đề tự động và phân loại tag kiến thức linh hoạt.
Kiểm soát truy cập động với Keycloak UMA (User-Managed Access)
Dynamic RBAC & UMA Policy Control: Quản lý quyền theo hướng tài nguyên (Resource-based Authorization). Cho phép Super Admin tạo Role mới, gán quyền và điều chỉnh scope truy cập theo thời gian thực trực tiếp từ UI quản trị mà không cần can thiệp mã nguồn hay build lại hệ thống.
Phân định quyền hạt mịn (Fine-grained Scopes): Hỗ trợ cơ chế phân tách và cấp quyền linh hoạt cho các dịch vụ vệ tinh (Hệ thống thi chính thức, Thi thử, Cổng cộng đồng) theo từng thao tác nghiệp vụ cụ thể.
Giám sát kỳ thi Real-time & CMS giáo dục
Real-time Exam Monitoring: Bảng điều khiển giám sát trạng thái thí sinh trong phòng thi theo thời gian thực, theo dõi độ ổn định kết nối và hỗ trợ ghi nhận các hành vi bất thường trong phiên làm bài.
Educational CMS: Cổng quản lý nội dung phục vụ việc xuất bản bài viết giáo dục, thông báo lịch thi, tài liệu ôn tập chuẩn SEO với trình soạn thảo trực quan.
Đa ngôn ngữ chuẩn quốc tế (i18n Engine)
Hệ thống sử dụng bộ định tuyến đa ngôn ngữ giúp chuyển đổi mượt mà giữa tiếng Việt và tiếng Anh, đồng thời khóa cố định các tuyến quản trị /admin theo ngôn ngữ chuẩn nhằm đảm bảo tính thống nhất trong vận hành quốc tế.
3. Kiến trúc kỹ thuật & Công nghệ sử dụng
Frontend & UI Core: Next.js 15 (App Router, Server & Client Components), React 18, TypeScript, Ant Design 5, Styled Components, Sass/SCSS Modules, Framer Motion.
Code Editor & Khảo thí: Monaco Editor, Bộ giao diện điều khiển thực thi và kiểm thử test-case theo thời gian thực.
State Management & Data Layer: TanStack Query (React Query), Redux Toolkit + Redux Persist, Zustand, SWR, và hệ thống Axios Interceptor điều phối theo cơ chế hàng đợi bất đồng bộ.
Bảo mật & Quản lý phiên: Keycloak OAuth2/OIDC kết hợp UMA 2.0 Engine, giải mã và thẩm tra JWT tại Edge Middleware, lưu trữ phiên an toàn qua HttpOnly Cookie.
CMS & Tiện ích: CKEditor 5 Custom Build, Tiptap, ECharts biểu đồ thống kê kết quả thi, Day.js, Vite/Yarn Berry Package Manager.
4. Bài toán kỹ thuật phức tạp & Giải pháp tối ưu
Thách thức 1: Hàng đợi Non-blocking Token Refresh chống xung đột phiên thi trực tiếp
Vấn đề: Trong suốt ca thi trực tiếp, trình duyệt liên tục gửi đồng thời nhiều request ngầm: tự động lưu bài làm (auto-save draft), kiểm tra nhịp tim kết nối (heartbeat), và đồng bộ đồng hồ đếm ngược. Khi access token hết hạn, việc các request này cùng lúc kích hoạt gọi làm mới token sẽ gây ra hiện tượng race condition. Phía máy chủ xác thực nhận diện đây là hành vi bất thường và lập tức hủy bỏ phiên làm việc, dẫn đến nguy cơ gián đoạn bài thi của thí sinh.
Giải pháp: Thiết kế kiến trúc Singleton Promise Queue bên trong bộ lắng nghe phản hồi của tầng mạng (Response Interceptor). Khi request đầu tiên gặp lỗi xác thực, hệ thống kích hoạt cờ khóa và khởi tạo một Promise làm mới token duy nhất. Toàn bộ các request gửi đến sau đó sẽ tự động chuyển vào trạng thái chờ (queueing) cho đến khi token mới được cấp phát thành công. Sau đó, hệ thống tự động gắn token mới vào header và thực hiện lại các request bị gián đoạn, đảm bảo tiến trình làm bài của thí sinh diễn ra liên tục 100%.
Thách thức 2: Kiểm soát chính sách phân quyền UMA & Thẩm tra quyền tại tầng Edge Middleware
Vấn đề: Khi ứng dụng Keycloak UMA để phân quyền tài nguyên động, Token chứa cấu trúc danh mục quyền hạn, resource scopes và các vai trò hạ tầng mặc định. Nếu việc kiểm tra quyền hạn được thực hiện ở phía Client, người dùng có thể gặp hiện tượng nhấp nháy giao diện (layout shift) trước khi bị chuyển hướng, đồng thời tiềm ẩn nguy cơ bảo mật nếu người dùng tìm cách truy cập trái phép vào các tuyến đường quản trị nội bộ hoặc ngân hàng đề thi.
Giải pháp: Chuyển toàn bộ logic thẩm tra và giải mã token lên xử lý trực tiếp tại tầng Edge Middleware trước khi request tiếp cận máy chủ render. Xây dựng thuật toán phân tách tự động giữa vai trò hệ thống và vai trò nghiệp vụ thực tế, kết hợp kiểm tra danh sách hạn chế truy cập động. Nhờ thực thi tại tầng biên với thời gian phản hồi cực thấp (< 5ms), hệ thống chặn đứng mọi hành vi truy cập trái phép ngay từ gateway mà không làm suy giảm hiệu năng hiển thị của trang web.
5. Giá trị thực tiễn & Bài học kinh nghiệm
Giá trị thực tiễn mang lại:
Khảo thí chuẩn quốc tế: Vận hành ổn định các đợt thi lập trình quy mô lớn kết nối với tổ chức khảo thí quốc tế, đảm bảo tính công bằng và tự động hóa quy trình đối soát chứng chỉ số.
Vận hành linh hoạt: Đội ngũ quản trị có thể tự cấu hình vai trò giám thị, người chấm thi hay người tạo đề thi ngay trên giao diện mà không cần can thiệp kỹ thuật vào mã nguồn hay triển khai lại hệ thống.
Phiên thi ổn định tuyệt đối: Triệt tiêu hoàn toàn sự cố mất kết nối hoặc mất dữ liệu bài làm do lỗi xác thực trong suốt thời gian diễn ra kỳ thi nhờ cơ chế hàng đợi làm mới token thông minh.
Bài học Kiến trúc: Một nền tảng khảo thí trực tuyến đòi hỏi sự cân bằng khắt khe giữa tính tức thời của giao diện làm bài thi và tính bảo mật nghiêm ngặt tại tầng biên. Việc kết hợp kiến trúc phân quyền động, công nghệ Edge Middleware và quản trị state chặt chẽ mang lại nền tảng vững chắc để mở rộng quy mô cho các hệ thống giáo dục cấp độ doanh nghiệp lớn.