How anonymous3813/essaygrader works
EssayGrader is a web app for building or selecting an essay rubric, submitting an essay for evaluation, and viewing a grading report. The frontend includes rubric browsing, detail, creation, and editing screens; its grading API route proxies requests to a FastAPI backend. The backend formats the rubric and prompt, retrieves calibration examples, and asks Gemini for a structured report. Backend calls are supported by excerpts; frontend route relationships beyond the shown proxy and rubric dropdown are uncertain because their implementations were not excerpted.
Main entry points: services/grader.py Prompt and grading service · routers/grader.py Grading endpoint · config.py Provider configuration · schemas.py Request and report models
Components 19
EssayGrader frontend
- Home screen
essay-grader-frontend/src/routes/+page.svelte - Essay submission
essay-grader-frontend/src/routes/grade/+page.svelte - Grading API proxy
essay-grader-frontend/src/routes/api/grade/+server.ts - Grading results
essay-grader-frontend/src/routes/results/+page.svelte
Rubric management
- Rubric catalog
essay-grader-frontend/src/routes/rubrics/+page.svelte - Rubric details
essay-grader-frontend/src/routes/rubrics/[id]/+page.svelte - Rubric creation
essay-grader-frontend/src/routes/rubrics/new/+page.svelte - Rubric editing
essay-grader-frontend/src/routes/rubrics/edit/[id]/+page.svelte - Rubric builder
essay-grader-frontend/src/lib/components/RubricBuilder.svelte - Template selector
essay-grader-frontend/src/lib/components/TemplateDropdown.svelte
Grading backend
- FastAPI application
essay-grader-backend/main.py - Grading endpoint
essay-grader-backend/routers/grader.py - Request and report models
essay-grader-backend/models/schemas.py - Prompt and grading service
essay-grader-backend/services/grader.py - Provider configuration
essay-grader-backend/config.py - Grading instructions
essay-grader-backend/prompts/grading_style.md
External services
- Gemini API
- Supabase reference search
Other components
- Essay author
Connections 12
- Rubric builder → Template selector: renders selector
essay-grader-frontend/src/lib/components/RubricBuilder.svelte - Grading API proxy → Grading endpoint: forwards request
essay-grader-frontend/src/routes/api/grade/+server.ts - FastAPI application → Grading endpoint: registers router
essay-grader-backend/main.py - Grading endpoint → Request and report models: validates and returns
essay-grader-backend/routers/grader.py - Grading endpoint → Prompt and grading service: invokes grading
essay-grader-backend/routers/grader.py - Prompt and grading service → Request and report models: uses report models
essay-grader-backend/services/grader.py - Prompt and grading service → Provider configuration: uses clients and path
essay-grader-backend/services/grader.py - Provider configuration → Gemini API: creates client
essay-grader-backend/config.py - Provider configuration → Supabase reference search: creates client
essay-grader-backend/config.py - Prompt and grading service → Gemini API: embeds and grades
essay-grader-backend/services/grader.py - Prompt and grading service → Supabase reference search: searches examples
essay-grader-backend/services/grader.py - Prompt and grading service → Grading instructions: loads instructions
essay-grader-backend/services/grader.py