How 4r1n0930/impression works
This is a browser-based AI-assisted interview platform. Interviewers and candidates join configured rooms; live audio is transcribed, interviewer speech is classified as a question, and candidate answers are evaluated while follow-up suggestions are generated. The UI also exposes account, room setup, and feedback/reporting stages. The graph reflects documented routes and sampled runtime calls; several frontend-to-backend interactions and unsampled subsystems are not shown where their wiring is unverified.
Main entry points: App.tsx Route application · InterviewController.js Interview orchestration · InterviewRoom.tsx Interviewer room · server.js HTTP and socket server
Components 27
Web application
- Route application
frontend/src/App.tsx - Dashboard
frontend/src/pages/Dashboard.tsx - Room setup
frontend/src/pages/RoomConfig.tsx - Interviewer room
frontend/src/pages/InterviewRoom.tsx - Candidate room
frontend/src/pages/Interviewee.tsx - Feedback report
frontend/src/pages/Feedback.tsx - Authentication UI
frontend/src/components/auth/AuthOverlay.tsx
Live interview
- Audio capture
frontend/src/audio/AudioCapture.ts - Socket client
frontend/src/socket.ts - HTTP and socket server
backend/server.js - Speech transcription
backend/src/services/deepgramService.js - Transcript buffering
backend/src/services/transcriptService.js - LiveKit service
backend/src/services/livekitService.js
Interview intelligence
- Interview orchestration
backend/src/controller/InterviewController.js - Question classification
backend/src/agents/QuestionAgent.js - Answer evaluation
backend/src/agents/EvaluationAgent.js - Follow-up suggestions
backend/src/agents/NextQuestionAgent.js - Overall assessment
backend/src/agents/FeedbackAgent.js - Interview endpoints
backend/src/routes/interviewRoutes.js
Accounts and rooms
- Auth endpoints
backend/src/routes/authRoutes.js - User records
backend/src/models/User.js - Room endpoints
backend/src/routes/roomRoutes.js - Room management
backend/src/controller/RoomController.js - Room service
backend/src/services/RoomService.js - Room records
backend/src/models/Room.js - Meeting token API
backend/src/routes/apiRoutes.js
Other components
- Participant
Connections 27
- Participant → Route application: uses
frontend/src/App.tsx - Route application → Dashboard: routes to
frontend/src/App.tsx - Route application → Room setup: routes to
frontend/src/App.tsx - Route application → Interviewer room: routes to
frontend/src/App.tsx - Route application → Candidate room: routes to
frontend/src/App.tsx - Route application → Feedback report: routes to
frontend/src/App.tsx - Route application → Authentication UI: uses
- Interviewer room → Audio capture: captures audio
frontend/src/pages/InterviewRoom.tsx - Candidate room → Audio capture: captures audio
frontend/src/pages/Interviewee.tsx - Audio capture → Socket client: emits PCM
- Socket client → HTTP and socket server: connects
- HTTP and socket server → Speech transcription: opens connection
backend/server.js - HTTP and socket server → Transcript buffering: forwards transcripts
backend/server.js - Transcript buffering → Interview orchestration: dispatches speech
backend/src/services/transcriptService.js - Interview orchestration → Question classification: classifies speech
backend/src/controller/InterviewController.js - Interview orchestration → Answer evaluation: evaluates answer
backend/src/controller/InterviewController.js - Interview orchestration → Follow-up suggestions: generates suggestions
backend/src/controller/InterviewController.js - Interview endpoints → Interview orchestration: reads evaluations
backend/src/routes/interviewRoutes.js - Interview endpoints → Overall assessment: builds assessment
backend/src/routes/interviewRoutes.js - Auth endpoints → User records: reads and updates
backend/src/routes/authRoutes.js - Room endpoints → Room management: routes requests
backend/src/routes/roomRoutes.js - Room management → Room service: creates room
backend/src/controller/RoomController.js - Room management → Room records: reads room
backend/src/controller/RoomController.js - Room service → Room records: persists room
backend/src/services/RoomService.js - Interviewer room → Meeting token API: requests token
frontend/src/pages/InterviewRoom.tsx - Meeting token API → Room records: validates room
backend/src/routes/apiRoutes.js - Meeting token API → LiveKit service: generates token
backend/src/routes/apiRoutes.js