How pratham-mishra225/quizcraft works
QuizCraft is a full-stack quiz platform: users authenticate, author quizzes manually or generate them from a topic or PDF, take quizzes, and review scored attempts. Its document-grounded path extracts, cleans, chunks, embeds, and stores PDF content before retrieval and quiz generation with source citations. The README describes public sharing, attempt snapshots, and MongoDB/Gemini integration; those capabilities are represented at documented route or subsystem level where implementation excerpts were not sampled.
Main entry points: app.ts Express API · pdf-generate.ts PDF generation · Quiz.ts Domain models · App.tsx React application
Components 25
Quiz experience
- React application
artifacts/quiz-app/src/App.tsx - Sign in / register
artifacts/quiz-app/src/pages/auth.tsx - Quiz setup
artifacts/quiz-app/src/pages/quiz-setup.tsx - Take quiz
artifacts/quiz-app/src/pages/quiz-take.tsx - Results and history
artifacts/quiz-app/src/pages/results.tsx - Attempt review
artifacts/quiz-app/src/pages/results-detail.tsx
API and identity
- Express API
artifacts/api-server/src/app.ts - Authentication
artifacts/api-server/src/routes/auth.ts - Cookie auth
artifacts/api-server/src/middlewares/auth.ts
Quiz workflows
- Quiz management
artifacts/api-server/src/routes/quizzes.ts - Topic generation
artifacts/api-server/src/routes/generate.ts - Public sharing
artifacts/api-server/src/routes/public-quizzes.ts - Attempt scoring
artifacts/api-server/src/routes/attempts.ts
Document RAG
- PDF generation
artifacts/api-server/src/routes/pdf-generate.ts - Context quiz synthesis
artifacts/api-server/src/services/quiz/generateFromContext.ts - PDF extraction
artifacts/api-server/src/services/pdf/extract.ts - Text cleaning
artifacts/api-server/src/services/pdf/clean.ts - Page chunking
artifacts/api-server/src/services/pdf/chunk.ts - Text embeddings
artifacts/api-server/src/services/embeddings/embed.ts - Context retrieval
artifacts/api-server/src/services/retrieval/retrieve.ts - Vector search
artifacts/api-server/src/services/retrieval/vectorStore.ts
Persistence and AI
- Domain models
artifacts/api-server/src/models/Quiz.ts - MongoDB
artifacts/api-server/src/db/mongodb.ts
Other components
- Quiz participant
- Google Gemini
Connections 36
- Quiz participant → React application: uses
- React application → Sign in / register: routes to
- React application → Quiz setup: routes to
- React application → Take quiz: routes to
- React application → Results and history: routes to
- React application → Attempt review: routes to
- Sign in / register → Express API: sends auth requests
- Quiz setup → Express API: sends quiz requests
- Take quiz → Express API: submits answers
- Results and history → Express API: loads attempts
- Attempt review → Express API: loads review
- Express API → Authentication: dispatches
- Express API → Quiz management: dispatches
- Express API → Topic generation: dispatches
- Express API → PDF generation: dispatches
- Express API → Public sharing: dispatches
- Express API → Attempt scoring: dispatches
- Authentication → Cookie auth: guards profile
- Authentication → Domain models: reads and creates users
- Quiz management → Domain models: manages quizzes
- Topic generation → Context quiz synthesis: generates quiz
- PDF generation → PDF extraction: extracts pages
- PDF generation → Text cleaning: cleans extracted text
- PDF generation → Page chunking: chunks pages
- PDF generation → Text embeddings: embeds chunks
- PDF generation → Context retrieval: retrieves context
- PDF generation → Context quiz synthesis: synthesizes quiz
- Context retrieval → Text embeddings: embeds query
- Context retrieval → Vector search: searches chunks
- Vector search → Domain models: reads document chunks
- Text embeddings → Google Gemini: requests embeddings
- Context quiz synthesis → Google Gemini: requests generation
- Context quiz synthesis → Domain models: persists quiz
- Attempt scoring → Domain models: scores and records
- Public sharing → Domain models: loads shared quizzes
- Domain models → MongoDB: persists records