How varunbv-gif/subjective-eval-3 works
This is a handwritten-answer-sheet grading product: students submit pages for a known paper, and a staged worker builds or retrieves a rubric, grades answers, locates annotations, validates the result, and stores a versioned outcome. The React client includes student-facing homework and voice-companion experiences, plus a marked-sheet review interface; operations can review and publish corrected results. The graph reflects documented stage order and relationships visible in excerpts, the source index, or README. Several route and UI capabilities are represented at subsystem level because their implementations were not sampled.
Main entry points: stages.py Stage orchestration · routes Product routes · App.tsx Client shell · container.py Service composition
Components 24
Student client
- Client shell
web/src/App.tsx - Homework experience
web/src/dashboard/Dashboard.tsx - Voice companion
web/src/companion/Companion.tsx - Marked-sheet viewer
web/src/review/ReviewSheet.tsx
API and accounts
- HTTP application
api/app.py - Product routes
api/routes - Account and sessions
api/routes/auth.py - Service composition
api/container.py
Grading pipeline
- Job queue
worker/queue.py - Worker poller
worker/loop.py - Stage orchestration
worker/stages.py - Model grading calls
worker/calls.py - Answer localization
worker/annotator.py
Grading domain
- Rubric normalization
core/rubric.py - Grade normalization
core/grading.py - Result validation
core/validate.py - Student summary
core/summary.py
Infrastructure adapters
- Page preparation
adapters/imaging/pages.py - Versioned records
adapters/db/models.py - Database queries
adapters/db/repositories.py - Media storage
adapters/storage/gcs.py - LLM adapter
adapters/llm/client.py
Other components
- Student
- Operations reviewer
Connections 28
- Student → Client shell: starts homework
web/src/App.tsx - Client shell → Homework experience: shows dashboard
web/src/App.tsx - Client shell → Voice companion: opens companion
web/src/App.tsx - Client shell → Marked-sheet viewer: shows demo
web/src/App.tsx - Student → Product routes: submits pages
README.md - Product routes → Job queue: enqueues grading
api/routes/admin.py - Worker poller → Job queue: claims jobs
- Worker poller → Stage orchestration: runs stages
- Stage orchestration → Page preparation: prepares pages
worker/stages.py - Stage orchestration → Model grading calls: requests grading
worker/stages.py - Model grading calls → LLM adapter: calls model
worker/calls.py - Stage orchestration → Rubric normalization: builds rubric
worker/stages.py - Model grading calls → Grade normalization: normalizes grade
worker/calls.py - Stage orchestration → Answer localization: localizes answers
worker/stages.py - Stage orchestration → Result validation: validates result
worker/stages.py - Stage orchestration → Student summary: builds summary
worker/stages.py - Stage orchestration → Database queries: persists stages
worker/stages.py - Database queries → Versioned records: queries records
adapters/db/repositories.py - Stage orchestration → Media storage: reads page media
worker/stages.py - Product routes → Database queries: reads and writes
api/routes/review.py - Product routes → Grade normalization: reapplies choices
api/routes/review.py - Product routes → Student summary: rebuilds summary
api/routes/review.py - Operations reviewer → Product routes: publishes verdict
api/routes/review.py - HTTP application → Product routes: mounts routes
api/app.py - HTTP application → Service composition: builds services
api/app.py - Account and sessions → Service composition: uses sessions
api/routes/auth.py - Service composition → LLM adapter: configures adapter
api/container.py - Service composition → Media storage: configures store
api/container.py