How enkheeboldu05/quiz works
Lecture Quiz is a server-rendered study application: students authenticate, upload lecture PDFs, configure question generation, take saved quizzes, and review scored attempts. The main request handler coordinates PDF extraction, duplicate-material lookup, model generation, persistence, and quiz submission; authentication routes separately manage accounts and sessions. SQLite also supports private dashboards, collections, and legacy quiz claiming. The README describes some older limitations that conflict with the sampled implementation; this map follows the source excerpts and uses README statements only where they agree. Unsampled page and provider details are shown only at documented subsystem level.
Main entry points: app.js Request workflow · huggingface-provider.js Hugging Face provider · index.js Provider selection · ollama-provider.js Ollama provider
Components 21
Web workflow
- Request workflow
src/app.js - Quiz pages
views - Browser assets
public/app.js - PDF extraction
src/services/pdf.js - Event logger
src/services/logger.js - Runtime configuration
src/config.js
Identity
- Account routes
src/routes/auth.js - Session guards
src/middleware/auth.js
Question generation
- Generation settings
src/providers/generation-settings.js - Provider selection
src/providers/index.js - LLM contract
src/providers/llm-provider.js - Hugging Face provider
src/providers/huggingface-provider.js - Ollama provider
src/providers/ollama-provider.js - Prompt templates
src/providers/prompt-templates.js - Question schema
src/providers/question-schema.js - Question validation
src/providers/parse-questions.js
Study library
- Study data store
src/db.js - SQLite
Other components
- Student
- Hugging Face API
- Ollama service
Connections 27
- Student → Request workflow: uses
README.md - Request workflow → Quiz pages: renders
src/app.js - Request workflow → Browser assets: serves assets
src/app.js - Request workflow → Account routes: mounts routes
src/app.js - Request workflow → Session guards: guards requests
src/app.js - Account routes → Session guards: redirects sessions
src/routes/auth.js - Account routes → Study data store: reads and writes
src/routes/auth.js - Request workflow → Study data store: reads and writes
src/app.js - Study data store → SQLite: persists records
src/db.js - Request workflow → PDF extraction: extracts text
src/app.js - Request workflow → Generation settings: normalizes choices
src/app.js - Request workflow → Provider selection: creates provider
src/app.js - Provider selection → Runtime configuration: selects from
src/providers/index.js - Provider selection → Hugging Face provider: selects
src/providers/index.js - Provider selection → Ollama provider: selects
src/providers/index.js - Hugging Face provider → LLM contract: extends
src/providers/huggingface-provider.js - Ollama provider → LLM contract: extends
src/providers/ollama-provider.js - Hugging Face provider → Generation settings: normalizes settings
src/providers/huggingface-provider.js - Hugging Face provider → Prompt templates: builds prompt
src/providers/huggingface-provider.js - Hugging Face provider → Question schema: formats response
src/providers/huggingface-provider.js - Hugging Face provider → Question validation: validates output
src/providers/huggingface-provider.js - Ollama provider → Question validation: validates output
src/providers/ollama-provider.js - Question validation → Generation settings: checks distribution
src/providers/parse-questions.js - Hugging Face provider → Hugging Face API: requests completions
src/providers/huggingface-provider.js - Ollama provider → Ollama service: requests generation
src/providers/ollama-provider.js - Request workflow → Event logger: records events
src/app.js - Request workflow → Runtime configuration: uses settings
src/app.js