How ajay-1011-git/copyzero works
CopyZero is a dual-role academic integrity platform. Professors create assignments and timed assessments; students join with codes, submit work or take exams, and professors review evaluation results. Assessments add question generation, browser-side code execution, and live proctoring; assignment evaluation combines plagiarism, AI-text, and rubric signals, with professor confirmation before scores persist. The graph reflects documented capabilities and sampled routing/controller behavior; some route-to-controller wiring and unsampled subsystem details are represented only at the supported subsystem level.
Main entry points: databaseService.js Firestore access · api.js API client · studentRoutes.js Student routes · professorRoutes.js Professor routes
Components 30
Web application
- Role-based UI
frontend/src/App.jsx - Sign-in context
frontend/src/context/AuthContext.jsx - API client
frontend/src/services/api.js - Assignment pages
frontend/src/pages/professor/CreateAssignment.jsx - Student pages
frontend/src/pages/student/SubmitAssignment.jsx - Assessment pages
frontend/src/pages/student/TakeAssessment.jsx - Browser code runner
frontend/src/services/codeExecutionService.js - Proctoring monitor
frontend/src/hooks/useProctoring.js
Assignments
- Professor routes
backend/src/routes/professorRoutes.js - Student routes
backend/src/routes/studentRoutes.js - Assignment management
backend/src/controllers/assignmentController.js - Code enrollment
backend/src/controllers/enrollmentController.js - Assignment submissions
backend/src/controllers/submissionController.js
Assessments
- Assessment lifecycle
backend/src/controllers/assessmentController.js - Exam attempts
backend/src/controllers/assessmentSubmissionController.js - Question generation
backend/src/services/questionGenerationService.js
Integrity and AI
- Score review
backend/src/controllers/evaluationController.js - AI evaluation
backend/src/controllers/groqEvaluationController.js - AI provider logic
backend/src/services/aiProviderService.js - Proctor events
backend/src/controllers/eventController.js - Integrity scoring
backend/src/services/integrityScoreService.js
Backend platform
- Express API
backend/src/server.js - Auth middleware
backend/src/middleware/auth.js - Firestore access
backend/src/services/databaseService.js - Firestore
- Firebase Auth
Other components
- Professor
- Student
- Groq AI
- NIM / HuggingFace
Connections 37
- Professor → Role-based UI: uses
- Student → Role-based UI: uses
- Role-based UI → Sign-in context: provides auth
- Sign-in context → Firebase Auth: authenticates
- Assignment pages → API client: requests
- Student pages → API client: requests
- Assessment pages → API client: requests
- API client → Express API: sends requests
- Express API → Professor routes: mounts
- Express API → Student routes: mounts
- Professor routes → Assignment management: dispatches
- Professor routes → Score review: dispatches
- Professor routes → AI evaluation: dispatches
- Student routes → Code enrollment: dispatches
- Student routes → Assignment submissions: dispatches
- Student routes → Assessment lifecycle: dispatches
- Student routes → Exam attempts: dispatches
- Assignment management → Firestore access: reads / writes
- Code enrollment → Firestore access: reads / writes
- Assignment submissions → Firestore access: reads / writes
- Score review → Firestore access: persists scores
- Assessment lifecycle → Firestore access: reads / writes
- Exam attempts → Firestore access: reads / writes
- Firestore access → Firestore: accesses
- Auth middleware → Firebase Auth: verifies tokens
- Express API → Auth middleware: guards API
- AI evaluation → AI provider logic: evaluates
- AI provider logic → Groq AI: calls
- AI provider logic → NIM / HuggingFace: fallback calls
- Assessment lifecycle → Question generation: generates questions
- Question generation → Groq AI: calls
- Assessment pages → Browser code runner: runs code
- Assessment pages → Proctoring monitor: monitors exam
- Proctoring monitor → API client: uploads evidence
- API client → Proctor events: posts events
- Proctor events → Firestore access: records events
- Integrity scoring → Firestore access: reads / writes