finalinterview is a comprehensive interview preparation platform that helps university students and job seekers practice for technical and behavioral interviews using AI-powered feedback. The platform combines structured learning paths with voice-based practice sessions to provide realistic interview preparation.
- AI-Powered Voice Practice: Record responses to interview questions and receive intelligent feedback
- Technical Interview Roadmap: Curated list of coding problems with difficulty levels and LeetCode integration
- Behavioral Interview Training: Practice with common behavioral questions using the STAR method
- Real-time Speech-to-Text: Convert voice responses to text using ElevenLabs API
- Intelligent Feedback: Get AI-generated feedback on your responses using Vellum AI workflows
- Voice Recording: Browser-based audio recording with multiple format support
- Session Management: Track interview sessions and question progression
- Company-Specific Preparation: Tailored content for different companies and roles
- Responsive Design: Modern, mobile-friendly interface
- Framework: React 19 with React Router for navigation
- Styling: Custom CSS with modern design system
- Components: Modular component architecture
- State Management: React hooks for local state
- API Server: RESTful API with Express.js
- File Upload: Multer for audio file handling
- AI Integration:
- ElevenLabs for speech-to-text conversion
- Vellum AI for intelligent feedback generation
- Session Management: In-memory session storage
finalinterview/
βββ client/ # React frontend
β βββ src/
β β βββ components/ # Reusable components
β β β βββ TranscribeMic.jsx # Voice recording component
β β β βββ Header.jsx # Navigation header
β β β βββ Footer.jsx # Site footer
β β βββ pages/ # Page components
β β β βββ Home.jsx # Landing page
β β β βββ Prepare.jsx # Preparation hub
β β β βββ Technical.jsx # Technical interview practice
β β β βββ Behavioral.jsx # Behavioral interview practice
β β βββ App.jsx # Main application component
β βββ package.json
βββ server/ # Node.js backend
β βββ index.js # Main server file
β βββ questions.js # Interview questions database
β βββ sessionStore.js # Session management
β βββ vellumExample.js # Vellum AI integration
β βββ package.json
βββ README.md
- Node.js (v18 or higher)
- npm or yarn
- API keys for ElevenLabs and Vellum AI
Create a .env file in the server directory:
ELEVENLABS_API_KEY=your_elevenlabs_api_key
VELLUM_API_KEY=your_vellum_api_key
PORT=5000-
Clone the repository
git clone <repository-url> cd finalinterview
-
Install server dependencies
cd server npm install -
Install client dependencies
cd ../client npm install -
Start the development servers
Terminal 1 - Backend:
cd server npm run devTerminal 2 - Frontend:
cd client npm run dev -
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
POST /api/session- Create a new interview sessionGET /api/sessions/:id/next- Get the next question in a session
POST /api/transcribe- Upload audio file for transcription and AI feedbackGET /api/ping- Health check endpoint
Create Session:
POST /api/session
Response: {
"ok": true,
"sessionId": "uuid",
"question": "Tell me about yourself"
}Transcribe Audio:
POST /api/transcribe
Content-Type: multipart/form-data
Body: {
"sessionId": "uuid",
"audio": "audio_file"
}
Response: {
"ok": true,
"sessionId": "uuid",
"nextQuestion": "Next question text",
"text": "Transcribed text",
"vellumText": "AI feedback",
"done": false
}- Landing Page: Learn about the platform and its benefits
- Prepare: Choose between technical or behavioral interview practice
- Technical Practice:
- Browse curated coding problems
- Filter by difficulty (Easy, Medium, Hard)
- Access LeetCode links for practice
- Behavioral Practice:
- Record voice responses to behavioral questions
- Receive AI feedback on your answers
- Learn the STAR method for structured responses
- Click "Start Recording" to begin
- Answer the displayed question
- Click "Stop & Send" to process your response
- Receive AI feedback and move to the next question
- Complete the session to see your progress
- Converts audio recordings to text
- Supports multiple audio formats (WebM, WAV, MP3, etc.)
- Handles various recording qualities
- Processes transcribed text and question context
- Generates intelligent feedback on responses
- Provides structured advice for improvement
- Clean, professional design
- Responsive layout for all devices
- Intuitive navigation
- Visual feedback for user actions
- Hero Section: Compelling landing page with clear value proposition
- Benefits Grid: Feature highlights with icons and descriptions
- Problem Cards: Technical problems with difficulty indicators
- Voice Interface: Intuitive recording controls with status indicators
- STAR Method Guide: Educational content for behavioral interviews
- No persistent storage of audio files
- Session-based question progression
- API key protection through environment variables
- CORS configuration for secure cross-origin requests
# Build the client
cd client
npm run build
# Start production server
cd ../server
npm start- Set production API keys
- Configure CORS for production domains
- Set up proper logging and monitoring
- Consider database integration for session persistence
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the ISC License - see the LICENSE file for details.
For support or questions:
- Create an issue in the repository
- Check the API documentation
- Review the component documentation
finalinterview - Prepare Smarter. Interview Faster. With AI.