How rodrivale28/accessible_job_interview_system works
Accessible Job Interview System is a browser-based mock-interview product: users configure an interview, answer selected questions, and review scored feedback; it also supports practice, role matching, history, login/guest access, and accessibility settings. The graph separates the Next.js experience from FastAPI routes, question/evaluation logic, and persistence. Some route and UI internals were not excerpted, so those links are included only where the README or source index supports them; unsampled subsystems use their exact tree paths.
Main entry points: main.py FastAPI app · repository.py Interview repository · api.ts API client · answers.py Answer routes
Components 27
Web experience
- Interview setup
frontend/app/setup/page.tsx - Live interview
frontend/app/session/[id]/page.tsx - Results view
frontend/app/results/[id]/page.tsx - Practice view
frontend/app/practice/page.tsx - Interview history
frontend/components/PastInterviews.tsx - Accessibility settings
frontend/components/SettingsPanel.tsx - API client
frontend/lib/api.ts - Browser auth
frontend/lib/supabase.ts
API and identity
- FastAPI app
backend/app/main.py - Request identity
backend/app/api/deps.py - Session routes
backend/app/api/sessions.py - Answer routes
backend/app/api/answers.py - Result routes
backend/app/api/results.py
Interview workflow
- Question selection
backend/app/services/question_service.py - Question library
backend/question_library/questions_data.py - Behavioral questions
backend/question_library/behavioral_data.py - Answer evaluation
backend/app/evaluation/evaluator.py - Feedback scoring
backend/app/evaluation/feedback_rules.py - Keyword scoring
backend/app/evaluation/keyword_evaluator.py - Interview repository
backend/app/repository.py
Practice and personalization
- Role routes
backend/app/api/roles.py - Practice routes
backend/app/api/practice.py - History routes
backend/app/api/history.py - Settings routes
backend/app/api/settings.py - Role matcher
backend/app/services/role_matcher.py
Other components
- Interviewee
- Supabase services
Connections 35
- Interviewee → Interview setup: configures
README.md - Interview setup → API client: requests setup
frontend/app/setup/page.tsx - API client → FastAPI app: sends API requests
README.md - FastAPI app → Session routes: registers routes
backend/app/main.py - FastAPI app → Answer routes: registers routes
backend/app/main.py - FastAPI app → Result routes: registers routes
backend/app/main.py - Session routes → Question selection: selects questions
backend/app/api/sessions.py - Session routes → Interview repository: creates sessions
backend/app/api/sessions.py - Question selection → Interview repository: selects and records
backend/app/services/question_service.py - Interview repository → Question library: loads questions
backend/app/repository.py - Interview repository → Behavioral questions: loads questions
backend/app/repository.py - Interviewee → Live interview: answers questions
README.md - Answer routes → Interview repository: saves answers
backend/app/api/answers.py - Answer routes → Answer evaluation: evaluates answers
backend/app/api/answers.py - Answer routes → Feedback scoring: builds feedback
backend/app/api/answers.py - Result routes → Interview repository: loads saved results
backend/app/api/results.py - Result routes → Feedback scoring: builds feedback
backend/app/api/results.py - Interviewee → Results view: reviews results
README.md - Results view → API client: loads results
frontend/app/results/[id]/page.tsx - FastAPI app → Request identity: uses request identity
backend/app/api/deps.py - Request identity → Supabase services: verifies tokens
backend/app/api/deps.py - Browser auth → Supabase services: authenticates users
frontend/lib/supabase.ts - Practice view → API client: requests practice
frontend/lib/api.ts - FastAPI app → Practice routes: registers routes
backend/app/main.py - Practice routes → Answer evaluation: evaluates practice
backend/app/api/practice.py - Practice routes → Keyword scoring: scores keywords
backend/app/api/practice.py - Practice routes → Interview repository: reads and saves
backend/app/api/practice.py - FastAPI app → Role routes: registers routes
backend/app/main.py - Role routes → Interview repository: reads roles
backend/app/api/roles.py - Role routes → Role matcher
backend/app/api/roles.py - FastAPI app → History routes: registers routes
backend/app/main.py - History routes → Interview repository: reads history
backend/app/api/history.py - Accessibility settings → API client: uses shared API
- FastAPI app → Settings routes: registers routes
backend/app/main.py - Settings routes → Interview repository: reads and saves
backend/app/api/settings.py