How prepvector/self-assessment works
PrepVector is a candidate-facing Data Science assessment platform. A candidate enters their name, takes a dynamically sampled quiz, submits answers for weighted scoring and AI-assisted analysis, then receives a generated PDF report that can be downloaded and emailed. The README also describes CSV and Google Sheets persistence and benchmark-based reporting. The graph preserves these documented capabilities; some submission, report, and download wiring is described by the README because the corresponding source excerpts are partial.
Main entry points: QuizComponent.jsx Quiz experience · submit_answers.py Submission and scoring · report_writer.py Report analysis and PDF · App.jsx Frontend app
Components 19
Candidate experience
- Frontend app
frontend/src/App.jsx - Name intake
frontend/src/components/AuthModal.jsx - Quiz experience
frontend/src/components/QuizComponent.jsx
Quiz and scoring
- FastAPI app
backend/app/main.py - Quiz generation
backend/app/api/generate_quiz.py - Question bank
backend/data/question_bank.json - Submission and scoring
backend/app/api/submit_answers.py
Analysis and reports
- Report analysis and PDF
backend/app/agents/report_writer.py - Benchmarks and ratings
backend/app/config/report_defaults.py - Score charts
backend/app/utils/chart_generator.py - Report download
backend/app/api/download_report.py - Report email
backend/app/services/email_service.py
Result persistence
- Assessment log
backend/data - Sheets sync
backend/app/services/google_sheets.py
External services
- Gemini
- Groq fallback
- Google Sheets
- Hostinger SMTP
Other components
- Candidate
Connections 22
- Candidate → Frontend app: uses
- Frontend app → Name intake: opens
- Name intake → Frontend app: returns name
- Frontend app → Quiz experience: shows quiz
- Quiz experience → FastAPI app: requests quiz
- FastAPI app → Quiz generation: routes
- Quiz generation → Question bank: samples questions
- Quiz generation → Quiz experience: returns quiz
- Quiz experience → FastAPI app: submits answers
- FastAPI app → Submission and scoring: routes
- Submission and scoring → Assessment log: logs results
- Submission and scoring → Sheets sync: syncs results
- Sheets sync → Google Sheets: updates rows
- Submission and scoring → Report analysis and PDF: builds report
- Report analysis and PDF → Gemini: requests analysis
- Report analysis and PDF → Groq fallback: fallback analysis
- Report analysis and PDF → Benchmarks and ratings: uses benchmarks
- Report analysis and PDF → Score charts: generates charts
- Submission and scoring → Report email: dispatches report
- Report email → Hostinger SMTP: sends attachment
- Quiz experience → Report download: requests report
- Report download → Quiz experience: returns PDF