How charansaigompa/interviewiq-ai works
InterviewIQ AI is a full-stack mock-interview product: users authenticate, configure a role-specific interview (optionally using resume context), answer by voice or text, and receive evaluated results and reports. The map includes the documented history, analytics, and credit-purchase branches. The interview controller excerpt supports resume parsing, AI question generation, answer scoring, and persisted results; unsampled UI and route wiring is shown only at the documented subsystem level.
Main entry points: index.js Express API · App.jsx React application · user.model.js User records and credits · auth.controller.js Authentication logic
Components 27
Interview experience
- React application
client/src/App.jsx - Sign-in and setup
client/src/pages/Auth.jsx - Interview setup
client/src/components/Setp1SetUp.jsx - Interview session
client/src/components/Step2Interview.jsx - Interview history
client/src/pages/InterviewHistory.jsx - Analytics and report
client/src/pages/InterviewReport.jsx - Credit plans
client/src/pages/Pricing.jsx
API and domain
- Express API
server/index.js - Authentication routes
server/routes/auth.routes.js - Interview routes
server/routes/interview.route.js - User routes
server/routes/user.route.js - Payment routes
server/routes/payment.route.js - Authentication logic
server/controllers/auth.controller.js - Interview workflow
server/controllers/interview.controller.js - User profile
server/controllers/user.controller.js - Payment workflow
server/controllers/payment.controller.js - JWT authorization
server/middlewares/isAuth.js
AI evaluation
- OpenRouter client
server/services/openRouter.service.js
Product data
- User records and credits
server/models/user.model.js - Interview records
server/models/interview.model.js - Payment records
server/models/payment.model.js
External services
- Browser speech APIs
- Firebase Authentication
client/src/utils/firebase.js - OpenRouter AI
- Razorpay
server/services/razorpay.service.js - MongoDB
Other components
- Candidate
Connections 34
- Candidate → React application: uses
- React application → Sign-in and setup: routes to
- React application → Interview setup: routes to
- React application → Interview session: routes to
- React application → Interview history: routes to
- React application → Analytics and report: routes to
- React application → Credit plans: routes to
- Sign-in and setup → Firebase Authentication: Google sign-in
- Sign-in and setup → Express API: sends auth requests
- Interview setup → Express API: requests interview
- Interview session → Express API: submits answers
- Interview session → Browser speech APIs: uses voice
- Interview history → Express API: loads history
- Analytics and report → Express API: loads report
- Credit plans → Express API: requests payment
- Express API → Authentication routes: mounts
- Express API → Interview routes: mounts
- Express API → User routes: mounts
- Express API → Payment routes: mounts
- Authentication routes → Authentication logic: dispatches
- JWT authorization → Authentication logic: authorizes
- Authentication logic → User records and credits: reads and writes
- Authentication logic → User records and credits: issues user identity
- Interview workflow → OpenRouter client: requests analysis and scoring
- OpenRouter client → OpenRouter AI: sends prompts
- Interview workflow → User records and credits: checks and deducts credits
- Interview workflow → Interview records: creates and updates
- User profile → User records and credits: reads profile
- Payment workflow → Razorpay: creates orders
- Payment workflow → Payment records: creates and verifies records
- Payment workflow → User records and credits: adds credits
- User records and credits → MongoDB: persists
- Interview records → MongoDB: persists
- Payment records → MongoDB: persists