An intelligent interview practice platform powered by AI that helps users prepare for job interviews through realistic voice conversations, personalized feedback, and performance analytics.
- AI-Powered Voice Interviews: Conduct realistic interviews using Vapi AI's voice technology
- Real-time Transcription: Live speech-to-text conversion during interviews
- Personalized Feedback: AI-generated feedback on communication, technical knowledge, problem-solving, cultural fit, and confidence
- Interview History: Track and review past interview sessions
- User Authentication: Secure login/signup with Firebase Authentication
- Responsive Design: Modern UI built with Tailwind CSS and Radix UI components
- Voice AI Integration: Powered by Vapi AI for natural voice conversations
- Real-time Communication: WebSocket-based voice streaming
- Performance Analytics: Detailed scoring across multiple interview categories
- Database Integration: Firebase Firestore for data persistence
- Type Safety: Full TypeScript implementation
- Frontend: Next.js 15, React 19, TypeScript
- Styling: Tailwind CSS, Radix UI Components
- Voice AI: Vapi AI SDK
- Authentication: Firebase Auth
- Database: Firebase Firestore
- Form Handling: React Hook Form with Zod validation
- State Management: React hooks and context
- Deployment: Vercel-ready
Before running this project, you'll need:
- Node.js 18+
- npm, yarn, pnpm, or bun
- Firebase project with Authentication and Firestore enabled
- Vapi AI account and API credentials
Create a .env.local
file in the root directory with the following variables:
# Firebase Configuration
NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id
# Firebase Admin (for server-side operations)
FIREBASE_ADMIN_PROJECT_ID=your_firebase_project_id
FIREBASE_ADMIN_PRIVATE_KEY=your_firebase_admin_private_key
FIREBASE_ADMIN_CLIENT_EMAIL=your_firebase_admin_client_email
# Vapi AI Configuration
NEXT_PUBLIC_VAPI_PUBLIC_KEY=your_vapi_public_key
NEXT_PUBLIC_VAPI_WORKFLOW_ID=your_vapi_workflow_id
VAPI_PRIVATE_KEY=your_vapi_private_key
# Google AI (for feedback generation)
GOOGLE_AI_API_KEY=your_google_ai_api_key
-
Clone the repository
git clone <repository-url> cd interview-platform
-
Install dependencies
npm install # or yarn install # or pnpm install
-
Set up environment variables
- Copy the example environment variables above
- Create a
.env.local
file in the root directory - Fill in your actual API keys and configuration
-
Run the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to http://localhost:3000 to see the application.
interview-platform/
├── app/ # Next.js App Router
│ ├── (auth)/ # Authentication routes
│ ├── (root)/ # Main application routes
│ ├── api/ # API routes
│ └── globals.css # Global styles
├── components/ # Reusable React components
│ ├── ui/ # UI components (buttons, forms, etc.)
│ ├── Agent.tsx # Voice AI interview component
│ ├── AuthForm.tsx # Authentication forms
│ └── InterviewCard.tsx # Interview display component
├── lib/ # Utility libraries
│ ├── actions/ # Server actions
│ ├── utils.ts # Helper functions
│ └── vapi.sdk.ts # Vapi AI SDK configuration
├── firebase/ # Firebase configuration
├── constants/ # Application constants
└── types/ # TypeScript type definitions
The core interview interface that handles:
- Voice AI integration with Vapi
- Real-time transcription
- Call state management
- Interview flow control
- Firebase Authentication integration
- Protected routes
- User session management
- User signs up/logs in
- Navigate to interview section
- Start AI-powered voice interview
- Receive real-time feedback
- View detailed performance analytics
- Firebase Authentication for user management
- Protected API routes
- Environment variable protection
- Type-safe API calls with Zod validation
- Modern, responsive design
- Dark/light theme support
- Smooth animations and transitions
- Accessible components with Radix UI
- Mobile-friendly interface
The platform provides detailed feedback across five key areas:
- Communication Skills: Clarity, articulation, and professional communication
- Technical Knowledge: Domain expertise and technical proficiency
- Problem Solving: Analytical thinking and solution approach
- Cultural Fit: Alignment with company values and team dynamics
- Confidence and Clarity: Self-assurance and presentation skills
- Connect your GitHub repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on push to main branch
The application can be deployed to any platform that supports Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
- AWS Amplify
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Contact the development team
- Multi-language support
- Interview question customization
- Advanced analytics dashboard
- Integration with job boards
- Mock interview scheduling
- Video interview support
- Team collaboration features
Built with ❤️ using Next.js, React, and Vapi AI