Skip to content

wiz-abhi/RealPrep-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

43 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RealPrep AI πŸš€

An advanced, AI-powered interview preparation platform with real-time emotion detection that helps candidates practice and improve their interview skills through realistic, interactive simulations.

RealPrep AI

✨ Features

πŸŽ™οΈ Core Interview Experience

  • AI Interviewer β€” Conducts realistic interviews with varying personas (Technical, Behavioral, System Design)
  • Voice & Text Modes β€” Speak naturally with the AI or type your responses
  • Integrated Code Editor β€” Monaco-based editor for technical/coding interviews
  • Resume Analysis β€” Upload your resume for personalized questions and skill-based deep dives
  • Flexible Duration β€” Choose interview length (5, 10, 15, or 30 minutes)

🧠 Emotional Intelligence (USP)

  • Real-time Emotion Detection β€” Facial expression analysis using Hume AI throughout the interview
  • Confidence Tracking β€” Monitors your confidence levels during responses
  • Stress Detection β€” Identifies high-stress moments and tracks nervousness
  • Emotion Trends β€” Analyzes if your emotional state improved or declined

πŸ“Š Reports & Improvement

  • Comprehensive Reports β€” Detailed feedback with scoring after each session
  • Emotional Analysis β€” See your confidence %, nervousness %, stress points, and dominant emotions
  • Personalized Improvement Plan β€” AI-generated coaching covering:
    • Technical skill gaps with learning resources
    • Communication skill improvements
    • Stress management & confidence building tips
    • Prioritized action items with deadlines

πŸ” User Experience

  • Secure Authentication β€” JWT-based auth with password hashing
  • Resume Management β€” Upload, view, and manage multiple resumes
  • Interview History β€” Track all past sessions and scores
  • Custom API Keys β€” Optionally use your own API keys (stored locally in browser)
  • Speech Provider Choice β€” Switch between ElevenLabs and Azure Speech

πŸ› οΈ Tech Stack

Layer Technologies
Frontend React (Vite), TypeScript, TailwindCSS, Framer Motion
Backend Node.js, Express, Prisma ORM
Database PostgreSQL with PGVector (semantic search)
AI/ML Google Gemini, ElevenLabs (STT/TTS), Hume AI (Emotion)
Auth JWT, bcrypt

πŸ“‹ Prerequisites

  • Node.js v18 or higher
  • PostgreSQL database (local or cloud: Neon, Supabase, etc.)
  • npm or yarn

πŸš€ Quick Start

1. Clone the repository

git clone https://github.com/wiz-abhi/RealPrep-AI.git
cd RealPrep-AI

2. Install Dependencies

# Client
cd client && npm install

# Server
cd ../server && npm install

3. Configure Environment Variables

# Copy example files
cp server/.env.example server/.env
cp client/.env.example client/.env

# Edit the .env files with your API keys

4. Database Setup

cd server
npx prisma generate
npx prisma db push

5. Run the Application

# Terminal 1 - Server (http://localhost:3000)
cd server && npm run dev

# Terminal 2 - Client (http://localhost:5173)
cd client && npm run dev

βš™οΈ Environment Variables

Server (server/.env)

Variable Required Description
DATABASE_URL βœ… PostgreSQL connection string
JWT_SECRET βœ… Secret for JWT token signing
GEMINI_API_KEY βœ… Google Gemini API key for AI chat
HUME_API_KEY βœ… Hume AI API key for emotion detection
HUME_SECRET_KEY βœ… Hume AI secret key
PORT ❌ Server port (default: 3000)
FRONTEND_URL ❌ Frontend URL for CORS (production)

Client (client/.env)

Variable Required Description
VITE_ELEVENLABS_API_KEY βœ… ElevenLabs API for STT/TTS
VITE_AZURE_SPEECH_KEY ❌ Azure Speech API key (alternative)
VITE_AZURE_SPEECH_REGION ❌ Azure region (e.g., eastus)
VITE_DEFAULT_SPEECH_PROVIDER ❌ elevenlabs or azure
VITE_HUME_API_KEY ❌ Hume AI key (client-side, optional)
VITE_API_URL ❌ Backend URL (production only)

πŸ’‘ See API_SETUP.md for detailed instructions on obtaining API keys.


🌐 Deployment

Deploy to Vercel (Frontend) + Render (Backend)

Frontend (Vercel)

  1. Import your GitHub repo to Vercel
  2. Set root directory to client
  3. Add environment variable:
    • VITE_API_URL = https://your-app.onrender.com

Backend (Render)

  1. Create a new Web Service from your GitHub repo
  2. Set root directory to server
  3. Build command: npm install && npm run build
  4. Start command: npm run start
  5. Add environment variables (all server vars above)
  6. Add: FRONTEND_URL = https://your-app.vercel.app

πŸ“‚ Project Structure

realprep-ai/
β”œβ”€β”€ client/                 # React Frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/     # UI components (GlassCard, CodeEditor, ScannerOverlay)
β”‚   β”‚   β”œβ”€β”€ config/         # API configuration
β”‚   β”‚   β”œβ”€β”€ context/        # AuthContext
β”‚   β”‚   β”œβ”€β”€ hooks/          # useSpeech, useHumeVision, useAzureSpeech
β”‚   β”‚   └── pages/          # Interview, Dashboard, Report, Settings pages
β”‚   └── .env.example        # Example environment variables
β”œβ”€β”€ server/                 # Node.js Backend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ controllers/    # Interview, Resume, Auth, User controllers
β”‚   β”‚   β”œβ”€β”€ middleware/     # Auth middleware
β”‚   β”‚   β”œβ”€β”€ routes/         # API routes
β”‚   β”‚   β”œβ”€β”€ services/       # Gemini, RAG services
β”‚   β”‚   └── utils/          # Auth utilities
β”‚   β”œβ”€β”€ prisma/             # Database schema
β”‚   └── .env.example        # Example environment variables
└── README.md

πŸ”‘ API Endpoints

Endpoint Method Description
/api/auth/register POST Create new account
/api/auth/login POST User login
/api/resume/upload POST Upload resume (PDF/TXT)
/api/resume/list GET List user's resumes
/api/interview/start POST Start new interview session
/api/interview/chat POST Send message + emotions to AI
/api/interview/end POST End session & generate report
/api/interview/report/:id GET Get session report
/api/interview/improvement-plan POST Generate coaching plan
/api/interview/history GET Get interview history
/api/user/stats GET Get user statistics

🎨 UI Features

  • Glassmorphism Design β€” Modern frosted glass UI with blur effects
  • Dark Mode β€” Sleek dark theme throughout
  • Responsive Layout β€” Works on desktop and tablets
  • Real-time Feedback β€” Live transcription, typing animations
  • Floating Timer β€” Countdown timer during interviews

πŸ”’ Security

  • JWT-based authentication with httpOnly consideration
  • Passwords hashed with bcrypt
  • User API keys stored only in browser localStorage (never sent to server)
  • CORS configured for production origins

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

πŸ“„ License

This project is licensed under the MIT License.


πŸ™ Acknowledgments

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages