An advanced mock interview platform built with React, TypeScript, and AI to help you ace your next interview.
- AI-Generated Questions: Get personalized interview questions based on job position and experience
- Voice Recording: Practice with speech-to-text functionality
- Real-time Feedback: Get instant feedback on your answers
- Progress Tracking: Monitor your interview performance over time
- Authentication: Secure user authentication with Clerk
- Responsive Design: Works seamlessly on desktop and mobile
- Frontend: React 19, TypeScript, Vite
- Styling: Tailwind CSS, Radix UI
- Authentication: Clerk
- Database: Firebase Firestore
- AI: Google Gemini API
- Voice Recognition: react-hook-speech-to-text
- Form Handling: React Hook Form + Zod
- Deployment: Vercel
- Node.js 18+
- pnpm (recommended) or npm
- Clone the repository:
git clone https://github.com/Chhavi001/Interview-mocker.git
cd Interview-mocker- Install dependencies:
pnpm install- Set up environment variables:
cp .env.example .envFill in your environment variables:
- VITE_CLERK_PUBLISHABLE_KEY: Get from Clerk Dashboard
- VITE_GEMINI_API_KEY: Get from Google AI Studio
- Firebase Config: Get from your Firebase project settings
- Start the development server:
pnpm run dev- Push to GitHub: Make sure your code is pushed to GitHub
- Connect to Vercel:
- Go to Vercel Dashboard
- Click "New Project"
- Import your GitHub repository
- Configure Environment Variables:
- Add all environment variables from your
.envfile - Make sure to exclude any test/development keys
- Add all environment variables from your
- Deploy: Vercel will automatically deploy your app
# Install Vercel CLI
npm i -g vercel
# Login to Vercel
vercel login
# Deploy
vercel --prodSet these in your Vercel dashboard:
VITE_CLERK_PUBLISHABLE_KEY=your_production_clerk_key
VITE_GEMINI_API_KEY=your_gemini_api_key
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.firebasestorage.app
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
# Development
pnpm run dev
# Build for production
pnpm run build
# Preview production build
pnpm run preview
# Lint code
pnpm run lintsrc/
├── components/ # Reusable UI components
├── routes/ # Page components
├── layouts/ # Layout components
├── lib/ # Utility functions
├── types/ # TypeScript type definitions
├── config/ # Configuration files
├── handlers/ # Authentication handlers
└── provider/ # Context providers
- Fork the repository
- Create your 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.
- Clerk for authentication
- Google Gemini for AI capabilities
- Firebase for database
- Vercel for hosting