How amandot/questai works
QuEstAI takes an educator or learner from account access through quiz creation, answering, feedback, and printable export. The documented generation stages extract page-aware text, analyze it, and create question types with Bloom levels and source context; quizzes and user data are persisted with user isolation. The graph includes the API and UI entry points plus the key internal services. Quiz-router implementation was not sampled, so its documented responsibilities are shown without assuming its internal call sequence.
Main entry points: api.js HTTP API client · quiz.py Quiz endpoints · database.py Relational database · main.py FastAPI application
Components 17
Web application
- Route and access control
frontend/src/App.jsx - Auth state and forms
frontend/src/contexts/AuthContext.jsx - Quiz dashboard
frontend/src/pages/DashboardPage.jsx - Quiz setup
frontend/src/pages/QuizGenerator.jsx - Quiz answering
frontend/src/pages/QuizTaker.jsx - Results and feedback
frontend/src/pages/QuizResults.jsx - HTTP API client
frontend/src/services/api.js
API and identity
- FastAPI application
backend/app/main.py - Auth endpoints
backend/app/routers/auth.py - Quiz endpoints
backend/app/routers/quiz.py - Token identity checks
backend/app/core/auth.py - Password and JWT security
backend/app/core/security.py
Question generation
- PDF and NLP generation
backend/app/services/nlp_service.py
Quiz data and export
- User, quiz, question models
backend/app/models - Relational database
backend/app/core/database.py - Word exam export
backend/app/services/export_service.py
Other components
- Educator / learner
Connections 20
- Educator / learner → Route and access control: uses
- Route and access control → Auth state and forms: provides auth
- Auth state and forms → HTTP API client: requests auth
- Quiz dashboard → HTTP API client: loads quizzes
- Quiz setup → HTTP API client: submits source
- Quiz answering → HTTP API client: loads and submits
- Results and feedback → HTTP API client: loads and exports
- HTTP API client → FastAPI application: HTTP requests
- FastAPI application → Auth endpoints: dispatches auth
- FastAPI application → Quiz endpoints: dispatches quizzes
- Auth endpoints → Password and JWT security: hashes and issues tokens
- Auth endpoints → Relational database: reads and writes users
- Quiz endpoints → Token identity checks: checks identity
- Token identity checks → Password and JWT security: verifies token
- Token identity checks → Relational database: loads user
- Quiz endpoints → PDF and NLP generation: generates questions
- Quiz endpoints → Relational database: reads and writes quizzes
- Quiz endpoints → Word exam export: requests document
- Word exam export → User, quiz, question models: reads quiz questions
- Relational database → User, quiz, question models: persists records