An AI-powered interview simulation and coaching platform that helps candidates practice for technical and behavioral interviews with real-time feedback and scoring.
- AI-Powered Interview Simulation: Generate interview questions using GPT-4
- Real-time Feedback: Get instant AI analysis of your answers
- Multiple Interview Types: Technical, Behavioral, Case Study, System Design
- Personalized Practice: Tailored questions based on experience level and target role
- Progress Tracking: Monitor improvement across different categories
- Detailed Analytics: Track performance over time and identify areas for growth
- Backend: Node.js, Express.js, TypeScript
- Database: PostgreSQL with Prisma ORM
- AI Integration: OpenAI GPT-4
- Authentication: JWT-based auth
- File Upload: Multer for media handling
- Testing: Jest
- Development: TypeScript, ESLint
-
Clone the repository
git clone https://github.com/ai-ideas-lab/ai-interview-coach.git cd ai-interview-coach -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env # Edit .env with your database connection and API keys -
Run development setup
./dev.sh
-
Start the server
npm run dev
The server will start on http://localhost:3000
POST /api/users/register- Register new userPOST /api/users/login- User loginGET /api/users/profile- Get user profilePUT /api/users/profile- Update user profile
POST /api/interviews/sessions- Create interview sessionGET /api/interviews/sessions- Get user sessionsGET /api/interviews/sessions/:id- Get specific sessionPUT /api/interviews/sessions/:id- Update sessionDELETE /api/interviews/sessions/:id- Delete session
POST /api/interviews/sessions/:id/questions- Add question to sessionGET /api/interviews/sessions/:id/questions- Get session questionsPUT /api/interviews/questions/:id- Update questionDELETE /api/interviews/questions/:id- Delete question
POST /api/interviews/sessions/:id/start- Start AI interviewPOST /api/interviews/sessions/:id/submit-answer- Submit answer for AI analysisPOST /api/interviews/sessions/:id/analyze- Analyze specific answerPOST /api/feedback/ai-generate- Generate AI feedback
POST /api/interviews/sessions/:id/feedback- Provide feedbackGET /api/interviews/sessions/:id/score- Get session scoreGET /api/interviews/analytics- Get user analytics
GET /api/questions- Get questions from bankPOST /api/questions- Create new questionGET /api/questions/filter- Filter questions by criteriaPOST /api/questions/generate- Generate AI questions
ai-interview-coach/
βββ src/
β βββ controllers/ # Route controllers
β βββ middleware/ # Express middleware
β βββ routes/ # API routes
β βββ types/ # TypeScript type definitions
β βββ utils/ # Utility functions
β βββ index.ts # Main application file
βββ prisma/
β βββ schema.prisma # Database schema
βββ tests/
β βββ unit/ # Unit tests
β βββ integration/ # Integration tests
βββ uploads/ # File uploads
βββ logs/ # Application logs
βββ package.json
βββ tsconfig.json
βββ README.md
- Profile information
- Experience level and preferences
- Progress tracking
- Session metadata and status
- Questions and answers
- Feedback and scoring
- Pre-defined interview questions
- Categorized by type and difficulty
- AI-generated questions
- Detailed performance feedback
- Strengths and improvements
- Actionable suggestions
# Database
DATABASE_URL="postgresql://username:password@localhost:5432/ai_interview_coach"
# OpenAI Configuration
OPENAI_API_KEY="your_openai_api_key"
OPENAI_MODEL="gpt-4"
# JWT Configuration
JWT_SECRET="your_jwt_secret"
JWT_EXPIRES_IN="7d"
# Server Configuration
PORT=3000
NODE_ENV=development
# File Upload
MAX_FILE_SIZE=10485760
UPLOAD_DIR="uploads"
# Email Configuration (optional)
SMTP_HOST="smtp.gmail.com"
SMTP_PORT=587- Add new database models in
prisma/schema.prisma - Create/update controllers in
src/controllers/ - Add routes in
src/routes/ - Update middleware if needed
- Write tests in
tests/
- TypeScript strict mode enabled
- ESLint for code linting
- Jest for testing
- Prisma for database management
# Generate Prisma client
prisma generate
# Push schema to database (development)
prisma db push
# Create migration (production)
prisma migrate dev --name migration_name- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
MIT License - see LICENSE file for details
For issues and questions:
- Create an issue on GitHub
- Check the documentation
- Contact the development team
Built with β€οΈ by AI Ideas Lab