How rat-sh/x-pert2 works
X-Pert is a teacher-focused online examination platform. Teachers create batches, build or source questions, configure and publish exams, then review and export results; students enroll by code, find exams, take timed tests, and view results. The graph also preserves the documented calendar, materials, and upcoming-exam capabilities. Sampled sources confirm the batch manager’s Supabase operations, auth context/profile loading, and extraction API’s Gemini calls; other feature-level links follow README workflows because their runtime source was not sampled.
Main entry points: BatchManagerPage.tsx Batch management · ExamCreatorPage.tsx Exam creation · auth.service.ts Auth service · supabase-client.ts Supabase backend
Components 23
Identity and shared services
- Sign up
src/features/auth/components/SignupForm.tsx - Auth context
src/contexts/AuthContext.tsx - Auth service
src/features/auth/services/auth.service.ts
Teacher tools
- Batch management
src/features/batch-manager/components/BatchManagerPage.tsx - Calendar scheduling
src/features/calendar-schedule/components/CalendarPage.tsx - Exam creation
src/features/exam-creator/components/ExamCreatorPage.tsx - Paper builder
src/features/question-builder/components/QuestionPaperBuilder.tsx - Question bank
src/features/question-bank/components/QuestionBankPage.tsx - Question extraction
src/features/question-extraction/components/QuestionExtractionUpload.tsx - Materials manager
src/features/study-materials/components/teacher/MaterialsManagerPage.tsx - Teacher results
src/features/teacher-results/components/TeacherResultsPage.tsx
Student experience
- Batch enrollment
src/features/student-join/components/StudentJoinPage.tsx - Available exams
src/features/student-exams/components/StudentExamsPage.tsx - Timed exam session
app/student/exams/[examId]/take/page.tsx - Student results
src/features/student-results/components/StudentResultsPage.tsx - Upcoming exams
src/features/upcoming-exams/components/UpcomingExamsPage.tsx - Study materials
src/features/study-materials/components/student/MaterialsBrowserPage.tsx
Platform services
- Extraction API
app/api/questions/extract/route.ts - Supabase backend
src/shared/services/supabase-client.ts - Supabase storage
src/shared/services/storage.service.ts
Other components
- Teacher
- Student
- Gemini extraction
Connections 23
- Teacher → Sign up: signs up
- Sign up → Auth service: submits credentials
src/features/auth/components/SignupForm.tsx - Auth service → Supabase backend: authenticates
src/features/auth/services/auth.service.ts - Auth context → Auth service: loads profile
src/contexts/AuthContext.tsx - Teacher → Batch management: creates batches
- Batch management → Supabase backend: reads and writes
- Batch management → Calendar scheduling: creates sessions
- Teacher → Exam creation: creates exams
- Exam creation → Paper builder: builds paper
- Exam creation → Question bank: sources questions
- Teacher → Question extraction: uploads questions
- Question extraction → Extraction API: submits file
- Extraction API → Gemini extraction: requests extraction
app/api/questions/extract/route.ts - Teacher → Materials manager: manages materials
- Materials manager → Supabase storage: uploads files
- Teacher → Teacher results: reviews results
- Student → Batch enrollment: joins by code
- Batch enrollment → Supabase backend: enrolls student
- Student → Available exams: views exams
- Available exams → Timed exam session: starts exam
- Timed exam session → Student results: submits answers
- Student → Upcoming exams: checks schedule
- Student → Study materials: views materials