How faiqimran589/evalassist-ai works
EvalAssist AI serves teachers creating and reviewing assessments and students taking timed attempts, uploading answers, and receiving feedback and learning recommendations. The principal flow runs from assessment setup through student submission, AI grading, teacher review, and student-facing results. The README documents image/PDF extraction, analytics, growth plans, and learning paths; these are represented by their endpoint and service modules even where implementation excerpts were unavailable. Grading and session behavior are sampled; wiring for unsampled features is limited to documented API boundaries.
Main entry points: router.py API router · database.py SQLite database · api.ts API client · assessment_session.py Session endpoints
Components 28
Web experience
- Teacher workspace
frontend/app/dashboard/page.tsx - Assessment wizard
frontend/app/assessments/new/page.tsx - Submission review
frontend/app/submissions/[id]/page.tsx - Student assessment
frontend/app/student/assessments/[id]/take/page.tsx - Student results
frontend/app/student/submissions/[id]/page.tsx - API client
frontend/lib/api.ts
Application API
- FastAPI application
backend/app/main.py - API router
backend/app/api/v1/router.py - Authentication
backend/app/api/v1/endpoints/auth.py
Assessment workflow
- Assessment endpoints
backend/app/api/v1/endpoints/assessments.py - Session endpoints
backend/app/api/v1/endpoints/assessment_session.py - Submission endpoints
backend/app/api/v1/endpoints/submissions.py - Upload storage
backend/app/services/storage.py - Grading engine
backend/app/services/grading_engine.py - Image extraction
backend/app/services/diagram_extractor.py - Attempt manager
backend/app/services/session_manager.py
Learning insights
- Performance analytics
backend/app/api/v1/endpoints/performance.py - Growth plans
backend/app/api/v1/endpoints/growth_plans.py - Learning path
backend/app/api/v1/endpoints/learning_path.py - Student dashboard
backend/app/api/v1/endpoints/student_dashboard.py
Core services
- Vision service
backend/app/services/gemini_vision.py - OCR service
backend/app/services/ocr_service.py - Semantic evaluator
backend/app/services/semantic_evaluator.py - SQLite database
backend/app/core/database.py
Other components
- Teacher
- Student
- Gemini AI
- EasyOCR
Connections 37
- Teacher → Teacher workspace: uses
- Student → Student assessment: uses
- Teacher workspace → API client: requests
- Assessment wizard → API client: requests
- Submission review → API client: requests
- Student assessment → API client: requests
- Student results → API client: requests
- API client → FastAPI application: calls API
- FastAPI application → API router: mounts
- API router → Authentication: dispatches
- API router → Assessment endpoints: dispatches
- API router → Session endpoints: dispatches
- API router → Submission endpoints: dispatches
- API router → Performance analytics: dispatches
- API router → Growth plans: dispatches
- API router → Learning path: dispatches
- API router → Student dashboard: dispatches
- Session endpoints → Attempt manager: calls
- Session endpoints → Upload storage: saves uploads
- Session endpoints → Grading engine: grades submission
- Grading engine → Vision service: grades answers
- Grading engine → Semantic evaluator: fallback evaluates
- Vision service → OCR service: extracts text
- OCR service → Gemini AI: requests OCR
- OCR service → EasyOCR: fallback OCR
- Image extraction → Gemini AI: extracts content
- Assessment endpoints → Image extraction: extracts papers
- Assessment endpoints → SQLite database: reads/writes
- Authentication → SQLite database: reads/writes
- Attempt manager → SQLite database: reads/writes
- Session endpoints → SQLite database: writes records
- Grading engine → SQLite database: reads/writes
- Submission endpoints → SQLite database: reads/writes
- Performance analytics → SQLite database: reads results
- Growth plans → SQLite database: reads performance
- Learning path → SQLite database: reads performance
- Student dashboard → SQLite database: reads dashboard data