AI-Powered Adaptive Learning & Gamified Assessment Engine
At ZAWTech.ai I worked on an LMS where quizzes can come from a static bank or OpenAI, and a rocket UI advances when students answer correctly. Teachers can generate questions from course material, and Super Admin / Admin / Teacher / Student roles keep org, content, and learner views separate.

Role and taxonomy settings for multi-tenant orgs.
Architecture breakdown
01
RBAC System
Super Admin, Admin, Teacher, and Student roles — from org billing and LLM budgets down to courses and learner progress.
02
Dual-Engine Assessment
Switch between database quiz banks and OpenAI generation through a Python service that returns structured JSON.
03
Rocket Progress
Framer Motion rocket tied to answer correctness — correct answers move it forward; wrong answers keep it in place.
04
Multi-Format Support
MCQ, fill-in-the-blank, and passage comprehension for recall and reading checks.
The core challenge
Traditional LMS platforms rely on static, repetitive question banks. Students memorize fixed patterns (academic dishonesty risk), and form-based quizzes lack real-time visual feedback — causing drop-offs on longer assessments.
- Four-tier RBAC: Super Admin, Admin, Teacher, Student
- Dual-engine quizzes: database static banks + OpenAI dynamic generation
- MCQ, FIB, and Passage-based comprehension formats
- Gamified rocket progress with real-time correctness sync
- Streaming + structured prompts so AI quiz generation feels responsive
Technical solution
Next.js App Router for the product shell and gamified assessment UI; NestJS/Node for core business logic & RBAC; Python (FastAPI/Flask) microservice for LLM orchestration; PostgreSQL for users, roles, and static quiz repositories; Redis for session and LLM response caching.
Next.js and Framer Motion handled the assessment UI. A Python service ran LLM prompts, retries, and JSON parsing away from the main API. PostgreSQL stored tenancy and roles; Redis cached sessions and repeat LLM responses.
Engineering challenges
Static banks vs. generated questions
Fixed question banks were easy to memorize. We added an OpenAI path that uses course material and teacher prompts, and streams questions so the UI stays responsive.
Keeping students in longer quizzes
Replaced a plain progress bar with a rocket that moves on correct answers — simple feedback tied to correctness.
Keeping roles clean
Separate flows for Super Admin (org, billing, LLM budgets), Admin (onboarding & audits), Teacher (content & prompts), and Student (learn & assess).
Impact
2 modes
Database banks + OpenAI-generated quizzes
4 roles
Super Admin, Admin, Teacher, Student
3 formats
MCQ, fill-in-the-blank, and passage