An intelligent AI-powered platform designed to help job seekers prepare for technical interviews through realistic mock interviews, personalized feedback, and comprehensive performance analysis.
- AI-Powered Mock Interviews: Practice with AI interviewers that simulate real interview scenarios
- Real-time Feedback: Get instant feedback on your responses and interview performance
- Comprehensive Analytics: Track your progress with detailed performance metrics
- Voice Recognition: Speak naturally with built-in speech-to-text capabilities
- Video Recording: Record your interviews for later review and analysis
- Technical Interviews: Programming, system design, and technical concepts
- Behavioral Interviews: STAR method practice and soft skills assessment
- Role-Specific: Tailored questions for different job roles and industries
- Personalized Question Generation: AI creates questions based on your resume and target role
- Performance Tracking: Monitor improvement over time with detailed analytics
- Interview History: Access all your past interviews and feedback
- Resume Analysis: Upload your resume for customized interview preparation
- Node.js 18+
- MongoDB database
- Google Gemini API key
- Clone the repository
git clone https://github.com/yourusername/mockmate.git
cd mockmate- Install dependencies
npm install- Environment Setup
Create a
.env.localfile in the root directory:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboard
GOOGLE_GENERATIVE_AI_API_KEY=your_google_ai_api_key
MONGODB_URI=your_mongodb_connection_string- Run the development server
npm run dev- Open your browser Navigate to http://localhost:3000
- Framework: Next.js 15 (Full-stack React framework)
- UI Library: React 19
- Styling: Tailwind CSS, Radix UI
- Authentication: Clerk
- Speech Recognition: React Speech Recognition
- Video Recording: React Webcam
- Runtime: Node.js (via Next.js API routes)
- Database: MongoDB with Mongoose ODM
- API Framework: Next.js API Routes (built-in backend)
- AI Integration: Google Gemini API
- File Storage: MongoDB GridFS (for audio/video files)
- Session Management: Clerk (JWT-based authentication)
- Deployment: Vercel (serverless functions)
- CDN: Vercel Edge Network
- Database Hosting: MongoDB Atlas
- Environment: Serverless architecture
βββ app/
β βββ (auth)/ # Authentication pages
β βββ api/ # API routes
β βββ dashboard/ # Main application
β βββ HowItWorks/ # Documentation pages
β βββ globals.css # Global styles
βββ components/
β βββ ui/ # Reusable UI components
βββ lib/
β βββ utils.js # Utility functions
βββ utils/
β βββ database.js # Database connection
β βββ model.js # Mongoose models
βββ public/ # Static assets
- Sign Up: Create an account using Clerk authentication
- Upload Resume: Let AI analyze your resume for personalized questions
- Choose Interview Type: Select technical, behavioral, or role-specific interviews
- Start Interview: Begin your mock interview with AI
- Review Feedback: Get detailed analysis and improvement suggestions
- Question Generation: AI creates questions based on your profile
- Response Recording: Answer questions via text, voice, or video
- Real-time Analysis: Get immediate feedback on your responses
- Performance Report: Receive comprehensive evaluation after completion
POST /api/save-interview- Save new interview sessionGET /api/get-interview/:id- Retrieve specific interviewPATCH /api/update-interview/:id- Update interview detailsDELETE /api/delete-interview/:id- Delete interview
POST /api/questions- Generate interview questionsPOST /api/save-response- Save candidate responsePATCH /api/update-response/:id- Update existing responseGET /api/get-feedback/:interviewId- Get interview feedback
POST /api/gemini- Process with Google Gemini AIPOST /api/gemini/feedback- Generate AI feedbackPATCH /api/gemini/update-feedback/:id- Update AI feedback
- HeroSection: Landing page introduction
- Features: Showcase of platform capabilities
- HowItWorks: Step-by-step usage guide
- UserInterviewList: Display all user interviews
- AddInterview: Create new interview sessions
- RecordAnswer: Audio/video recording interface
- ShowQuestions: Display interview questions
- Testimonial: User success stories
- CTA: Call-to-action sections
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run swagger # Generate API documentation| Variable | Description | Required |
|---|---|---|
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY |
Clerk publishable key | Yes |
CLERK_SECRET_KEY |
Clerk secret key | Yes |
GOOGLE_GENERATIVE_AI_API_KEY |
Google AI API key | Yes |
MONGODB_URI |
MongoDB connection string | Yes |
Speech Recognition Not Working
- Ensure microphone permissions are granted
- Check browser compatibility for Web Speech API
- Try using Chrome for best results
Video Recording Issues
- Verify camera permissions
- Check browser support for getUserMedia API
- Ensure HTTPS in production
API Errors
- Verify all environment variables are set
- Check Google AI API quota limits
- Ensure MongoDB connection is active
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add 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.
- Google for Gemini AI API
- Clerk for authentication services
- Documentation: Check our How It Works page
- Issues: Report bugs using GitHub Issues