Procoder is an advanced AI-powered mock interview application designed to help users prepare for technical interviews. It features a modern, immersive "Noir/Mist" UI, real-time AI feedback, and comprehensive performance analytics.
- 🤖 AI-Powered Interviews: Conducts realistic mock interviews using Google's Gemini AI to generate questions and analyze responses.
- 🎙️ Real-time Analysis: Analyzes audio responses for Fluency, Confidence, Correctness, and Body Language.
- 📊 Comprehensive Dashboard: Visualizes performance metrics with interactive charts (Bar, Pie, Line) to track progress over time.
- 🎨 Modern "Noir" UI: A premium, dark-themed interface with glassmorphism, dynamic mist animations, and a monochromatic aesthetic.
- 🔐 Secure Authentication: Full user registration and login system using JWT and bcrypt.
- 📝 Practice Mode: Access a library of practice questions across various domains.
- 📱 Responsive Design: Fully optimized for desktop and tablet experiences.
- Framework: React (Vite)
- Styling: Tailwind CSS
- Animations: Framer Motion
- Charts: Recharts
- Routing: React Router DOM
- 3D Elements: React Three Fiber (for AI Avatar)
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (Mongoose)
- AI Engine: Google Gemini API (
@google/genai) - Authentication: JSON Web Tokens (JWT) & bcryptjs
- File Handling: Multer (for audio processing)
Follow these steps to set up the project locally.
- Node.js (v16+)
- MongoDB (Local or Atlas URI)
- Google Gemini API Key
git clone https://github.com/saurabh24thakur/AI_mock_Interview_.gitNavigate to the backend directory and install dependencies:
cd backend
npm installCreate a .env file in the backend directory:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
GEMINI_API_KEY=your_google_gemini_api_keyStart the backend server:
npm run devOpen a new terminal, navigate to the frontend directory, and install dependencies:
cd frontend
npm installStart the frontend development server:
npm run devThe backend API is documented using the OpenAPI Specification (OAS). You can find the specification file at:
To view the documentation in a user-friendly way, you can paste the contents of backend/openapi.yaml into the Swagger Editor or use a VS Code extension like "OpenAPI (Swagger) Editor".
- Users:
POST /api/users/signup,POST /api/users/login,GET /api/users/profile - Interviews:
POST /api/interviews/generate-questions,POST /api/interviews/analyze,POST /api/interviews/save,GET /api/interviews - Dashboard:
GET /api/dashboard
ai_interview/
├── backend/ # Express.js Backend
│ ├── config/ # DB Configuration
│ ├── controller/ # Request Handlers (Auth, Interview, etc.)
│ ├── models/ # Mongoose Models (User, Interview, etc.)
│ ├── routes/ # API Routes
│ ├── utils/ # Helper functions (AI analysis, etc.)
│ ├── openapi.yaml # API Documentation (OpenAPI Spec)
│ └── app.js # Entry point
│
└── frontend/ # React Frontend
├── public/ # Static assets
├── src/
│ ├── component/ # Reusable components (Navbar, Charts, etc.)
│ ├── pages/ # Page components (Dashboard, Login, Interview)
│ ├── App.jsx # Main App component & Routing
│ └── main.jsx # Entry point
└── tailwind.config.js # Tailwind configuration
Contributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.
This project is licensed under the ISC License.