An AI-powered mock interview platform built with Next.js, Firebase, Google Gemini API, and Vapi AI for voice interactions.
- 🤖 AI-Powered Interviews: Practice with intelligent AI interviewers
- 🎤 Voice Interactions: Real-time voice conversations using Vapi AI
- 🔥 Firebase Backend: Secure authentication and data storage
- 📊 Detailed Feedback: Comprehensive interview analysis and scoring
- 🎯 Multiple Interview Types: Technical, Behavioral, and Mixed interviews
- 📱 Responsive Design: Works on desktop and mobile devices
- Frontend: Next.js 15, React 19, TypeScript
- Styling: Tailwind CSS
- Backend: Firebase (Authentication, Firestore)
- AI: Google Gemini API, Vapi AI
- Deployment: Docker, Docker Compose
- Node.js 18+
- Docker and Docker Compose
- Firebase project
- Google Gemini API key
- Vapi AI account
- Clone the repository:
git clone https://github.com/yourusername/code-coach.git
cd code-coach- Copy environment template:
cp env.example .env- Configure your environment variables in
.env:- Firebase configuration
- Google Gemini API key
- Vapi AI credentials
# Production
docker-compose up --build
# Stop services
docker-compose down- Install dependencies:
npm install- Run development server:
npm run devai_mock_interviews/
├── app/ # Next.js app directory
│ ├── (auth)/ # Authentication pages
│ ├── (root)/ # Main application pages
│ ├── api/ # API routes
│ └── layout.tsx # Root layout
├── components/ # React components
├── lib/ # Utility functions and actions
├── firebase/ # Firebase configuration
├── types/ # TypeScript type definitions
├── public/ # Static assets
├── Dockerfile # Development Docker image
├── docker-compose.yml # Docker Compose configuration
POST /api/vapi/generate- Generate interview questions
See env.example for all required environment variables:
- Firebase Configuration: Authentication and database setup
- Google Gemini API: AI interview generation
- Vapi AI: Voice interaction capabilities
- Next.js Configuration: Application settings
The application is fully containerized with Docker:
- Development: Hot reloading with volume mounting
- Security: Non-root user execution
The Docker setup supports deployment to:
- AWS ECS