GitHub - KaranUnique/Interview-Prep-AI: Interview Prep AI is an AI-powered platform that helps users prepare for technical interviews by generating personalized, role-based questions and concept explanations using a Gemini-powered API and RAG-based architecture. It is designed to be scalable, extensible, and open for community contributions.

License: MIT PRs Welcome JavaScript React Node.js

πŸ€– AI-powered interview preparation platform that generates role-specific questions, provides detailed explanations, and helps you ace your technical interviews.

Interview Prep AI is a full-stack web application that helps users prepare for interviews with AI-generated, role-specific questions and answers. Users can practice, expand on answers, get detailed explanations, and track their progressβ€”all in a modern, responsive interface.

✨ Features

  • 🎯 AI-powered Questions: Generate role-specific interview questions and answers using Google's Gemini AI
  • πŸ“š Deep Learning: Expand answers and dive deep into concepts with detailed explanations
  • πŸ’Ύ Save & Organize: Save your favorite questions and revisit them anytime
  • πŸ“Š Progress Tracking: Monitor your preparation progress with built-in analytics
  • πŸ” User Authentication: Secure login/signup with JWT authentication
  • πŸ“± Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
  • ⚑ Real-time AI: Get instant responses to your interview queries
  • 🎨 Modern UI: Beautiful, intuitive interface built with Tailwind CSS

πŸ›  Tech Stack

Frontend

  • React 18 - Modern React with hooks and functional components
  • Vite - Fast build tool and development server
  • Tailwind CSS - Utility-first CSS framework
  • Axios - HTTP client for API requests
  • React Router - Client-side routing

Backend

  • Node.js - JavaScript runtime
  • Express.js - Web framework for Node.js
  • MongoDB - NoSQL database with Mongoose ODM
  • JWT - JSON Web Tokens for authentication
  • bcryptjs - Password hashing
  • Google Gemini API - AI for question generation

Development Tools

  • ESLint - Code linting and formatting
  • Git - Version control

Quick Start

Prerequisites

  • Node.js (v16+ recommended)
  • npm or yarn
  • MongoDB instance (local or cloud)
  • Google Gemini API key (free at AI Studio)

Installation

  1. Clone the repository

    git clone https://github.com/KaranUnique/Interview-Prep-AI.git
    cd Interview-Prep-AI
  2. Install dependencies

    # Backend dependencies
    cd backend
    npm install
    
    # Frontend dependencies
    cd ../frontend/InterviewPrepAI
    npm install
  3. Set up environment variables

    Create a .env file in the backend/ directory:

    # Database
    MONGO_URI=your_mongodb_connection_string
    
    # Authentication
    JWT_SECRET=your_super_secret_jwt_key_here
    
    # AI Configuration
    GEMINI_API_KEY=your_gemini_api_key_here
    GEMINI_MODEL=gemini-1.5-flash
    
    # Server Configuration
    PORT=8000
    NODE_ENV=development
    FRONTEND_ORIGIN=http://localhost:5173
  4. Start the development servers

    Start the backend (in one terminal):

    Start the frontend (in another terminal):

    cd frontend/InterviewPrepAI
    npm run dev
  5. Open your browser Navigate to http://localhost:5173 and start preparing for your interviews!

πŸ“ Project Structure

Interview-Prep-AI/
β”œβ”€β”€ backend/                    # Express.js API server
β”‚   β”œβ”€β”€ config/                # Database configuration
β”‚   β”œβ”€β”€ controllers/           # Request handlers
β”‚   β”œβ”€β”€ middlewares/           # Authentication & other middlewares
β”‚   β”œβ”€β”€ models/                # MongoDB schemas
β”‚   β”œβ”€β”€ routes/                # API endpoints
β”‚   β”œβ”€β”€ utils/                 # Helper functions
β”‚   └── server.js              # Server entry point
β”œβ”€β”€ frontend/
β”‚   └── InterviewPrepAI/       # React frontend application
β”‚       β”œβ”€β”€ public/            # Static assets
β”‚       β”œβ”€β”€ src/
β”‚       β”‚   β”œβ”€β”€ components/    # Reusable UI components
β”‚       β”‚   β”œβ”€β”€ context/       # React context providers
β”‚       β”‚   β”œβ”€β”€ pages/         # Page components
β”‚       β”‚   β”œβ”€β”€ utils/         # Utility functions
β”‚       β”‚   └── main.jsx       # App entry point
β”‚       └── package.json
β”œβ”€β”€ .gitignore                 # Git ignore rules
└── README.md                  # This file

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style and conventions
  • Write clear, descriptive commit messages
  • Test your changes before submitting
  • Update documentation as needed

Areas for Contribution

  • πŸ› Bug fixes and improvements
  • ✨ New features and enhancements
  • πŸ“š Documentation improvements
  • 🎨 UI/UX improvements
  • ⚑ Performance optimizations

πŸ› Troubleshooting

Issue Solution
401 Unauthorized after deploy Ensure JWT secret is consistent; clear localStorage token
CORS errors Verify FRONTEND_ORIGIN matches exact protocol + domain (no trailing slash)
404 API calls Confirm VITE_BACKEND_URL has no trailing slash and includes https
Mixed content warnings Use https for backend URL in production
AI API errors Check your Gemini API key and model configuration

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Google Gemini AI for powering the interview question generation
  • React & Vite for the amazing frontend development experience
  • Express.js & MongoDB for the robust backend infrastructure
  • Tailwind CSS for the beautiful utility-first styling

Built with ❀️ by KaranUnique

GitHub followers GitHub stars

⭐ If this project helped you, please give it a star!