How angelperezcastro/ai_agent_for_auto-grading works
This is a full-stack academic auto-grading platform. Students browse courses, enroll in projects, submit four sequential deliverables, and receive rubric-based AI scores and feedback; professors manage coursework, monitor progress, and override scores. The backend also handles role-based authentication, Gmail OAuth and routed notifications, with relational persistence and email-attempt logging. The graph reflects README capabilities and sampled entry points; several backend workflow details are documented but their implementation was not sampled, so uncertain internal call wiring is omitted.
Main entry points: main.py REST API · database.py Relational data · App.jsx React application · ProfessorDashboard.jsx Professor console
Components 27
Web experience
- React application
frontend/src/App.jsx - Auth context
frontend/src/context/AuthContext.jsx - Student workspace
frontend/src/pages/WorkspacePage.jsx - Professor console
frontend/src/pages/professor/ProfessorDashboard.jsx - Student detail
frontend/src/pages/professor/StudentDetailPage.jsx
Academic workflows
- Subjects and projects
backend/app/routers/subjects.py - Project management
backend/app/routers/projects.py - Enrollment progress
backend/app/routers/enrollments.py - Submission workflow
backend/app/routers/submissions.py - Sequence rules
backend/app/services/submission_rules.py - Professor operations
backend/app/routers/professor.py
Evaluation and messaging
- AI evaluation
backend/app/ai/evaluator.py - AI dispatcher
backend/app/ai/dispatcher.py - Evaluation endpoints
backend/app/routers/evaluations.py - Gmail OAuth
backend/app/routers/gmail_auth.py - Email dispatch
backend/app/services/email_dispatch.py - Gmail sender
backend/app/services/email_service.py - Email audit
backend/app/services/email_log_service.py
Backend platform
- REST API
backend/app/main.py - Authentication
backend/app/routers/auth.py - Relational data
backend/app/database.py
Other components
- Student
- Professor
- Google Gemini
- Gmail API
- PostgreSQL
- Email recipients
Connections 40
- Student → React application: uses
- Professor → React application: uses
- React application → Auth context: provides auth
- React application → Student workspace: routes students
- React application → Professor console: routes professors
- Professor console → Student detail: opens details
- React application → REST API: REST requests
- REST API → Authentication: dispatches
- REST API → Subjects and projects: dispatches
- REST API → Project management: dispatches
- REST API → Enrollment progress: dispatches
- REST API → Submission workflow: dispatches
- REST API → Evaluation endpoints: dispatches
- REST API → Professor operations: dispatches
- REST API → Gmail OAuth: dispatches
- Student workspace → Enrollment progress: enrolls and tracks
- Student workspace → Submission workflow: submits deliverables
- Professor console → Subjects and projects: manages courses
- Professor console → Project management: manages projects
- Professor console → Professor operations: views progress
- Student detail → Evaluation endpoints: reviews and overrides
- Submission workflow → Sequence rules: checks sequence
- Submission workflow → AI evaluation: triggers grading
- AI dispatcher → AI evaluation: dispatches evaluation
- AI evaluation → Google Gemini: requests grading
- Evaluation endpoints → Relational data: loads and saves
- Submission workflow → Relational data: stores submissions
- Enrollment progress → Relational data: reads progress
- Subjects and projects → Relational data: persists courses
- Project management → Relational data: persists projects
- Authentication → Relational data: reads and writes users
- Relational data → PostgreSQL: SQL access
- Gmail OAuth → Relational data: stores account
- Gmail OAuth → Gmail API: OAuth connection
- Email dispatch → Gmail sender: sends messages
- Gmail sender → Gmail API: sends email
- Email dispatch → Email audit: records attempts
- Email audit → Relational data: writes logs
- Gmail sender → Relational data: loads credentials
- Email dispatch → Email recipients: delivers notices