How squidchemistry/interviewcoach works
AI Interview Coach is a full-stack practice platform: candidates authenticate, configure their profile and resume, select a question or round, conduct a streamed mock interview, and receive evidence-backed evaluation and progress guidance. The backend’s interview service coordinates sessions and code submissions; the state-machine engine, evaluation, streaming, AI, and code execution are distinct domain stages. The README documents additional product branches, including question discovery, spaced-repetition revision, billing, sharing, and administration. Some backend implementations were not sampled, so their internal call links are omitted or marked unverified.
Main entry points: InterviewService.java Session orchestration · EvaluationService.java Rubric evaluation · useSessionRoom.ts Interview room · QuestionService.java Question bank
Components 23
Identity and accounts
- Authentication
backend/src/main/java/com/aicoach/auth/service/AuthService.java - User and profile
backend/src/main/java/com/aicoach/user/service/UserService.java
Interview practice
- Interview room
frontend/src/features/interviews/room/useSessionRoom.ts - Session orchestration
backend/src/main/java/com/aicoach/interview/service/InterviewService.java - Session state engine
backend/src/main/java/com/aicoach/interview/service/engine/InterviewEngine.java - Round and question planning
backend/src/main/java/com/aicoach/interview/service/round/RoundFactory.java - Interview session data
backend/src/main/java/com/aicoach/interview/repository/SessionRepository.java - Live event stream
backend/src/main/java/com/aicoach/interview/service/stream/SessionStreamService.java - Code execution
backend/src/main/java/com/aicoach/execution/service/CodeRunner.java
Preparation content
- Resume parsing
backend/src/main/java/com/aicoach/resume/service/ResumeService.java - Question bank
backend/src/main/java/com/aicoach/question/service/QuestionService.java - Content administration
backend/src/main/java/com/aicoach/question/service/QuestionAdminService.java
Evaluation and progress
- Rubric evaluation
backend/src/main/java/com/aicoach/interview/service/evaluation/EvaluationService.java - Interview reports
backend/src/main/java/com/aicoach/interview/web/PublicReportController.java - Progress and revision
backend/src/main/java/com/aicoach/progress/service/ProgressService.java
Platform services
- Web application
frontend/src/app/App.tsx - AI providers and prompts
backend/src/main/java/com/aicoach/ai/service/AiGateway.java - Subscriptions and billing
backend/src/main/java/com/aicoach/billing/service/BillingService.java - Razorpay or mock payments
backend/src/main/java/com/aicoach/billing/service/PaymentProvider.java - Administrative audit
backend/src/main/java/com/aicoach/audit/service/AuditService.java - PostgreSQL and pgvector
Other components
- Candidate
- Judge0 sandbox
Connections 25
- Candidate → Web application: uses
- Web application → Authentication: authenticates
- Authentication → User and profile: creates users
backend/src/main/java/com/aicoach/auth/service/AuthService.java - Candidate → Interview room: starts practice
- Interview room → Session orchestration: sends answers
- Session orchestration → Session state engine: dispatches commands
backend/src/main/java/com/aicoach/interview/service/InterviewService.java - Session orchestration → Interview session data: reads and writes
backend/src/main/java/com/aicoach/interview/service/InterviewService.java - Session orchestration → Round and question planning: plans rounds
- Session orchestration → Code execution: runs submissions
backend/src/main/java/com/aicoach/interview/service/InterviewService.java - Code execution → Judge0 sandbox: executes code
- Session orchestration → Live event stream: publishes events
backend/src/main/java/com/aicoach/interview/service/InterviewService.java - Interview room → Live event stream: replays events
- Session orchestration → Rubric evaluation: evaluates session
- Rubric evaluation → AI providers and prompts: requests assessment
backend/src/main/java/com/aicoach/interview/service/evaluation/EvaluationService.java - Resume parsing → AI providers and prompts: extracts profile
backend/src/main/java/com/aicoach/resume/service/ResumeService.java - Candidate → Resume parsing: uploads resume
- Candidate → Question bank: browses questions
- Session orchestration → Question bank: selects questions
backend/src/main/java/com/aicoach/interview/service/InterviewService.java - Rubric evaluation → Interview reports: provides feedback
- Candidate → Progress and revision: reviews progress
- Candidate → Subscriptions and billing: manages plan
- Subscriptions and billing → Razorpay or mock payments: charges subscription
backend/src/main/java/com/aicoach/billing/service/BillingService.java - Content administration → Administrative audit: records changes
backend/src/main/java/com/aicoach/question/service/QuestionAdminService.java - Rubric evaluation → PostgreSQL and pgvector: stores evaluations
- Question bank → PostgreSQL and pgvector: stores and searches