)"
# 6️⃣ Start the application
python app.py
Open your browser and navigate to: http://localhost:5000 🎉
Click to expand Authentication details
- JWT Token-based Authentication: Secure session management
- Password Hashing: Using Werkzeug's security utilities
- Email Validation: Proper email format checking
- Session Expiry: Automatic token expiration
POST /api/auth/register
- User registrationPOST /api/auth/login
- User authenticationGET /api/auth/profile
- Get user profilePOST /api/auth/logout
- Secure logout
// Register new user
const registerUser = async (userData) => {
const response = await fetch('/api/auth/register', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(userData)
});
return response.json();
};
Click to expand Resume Processing details
- PDF Text Extraction: Using PyPDF2 for accurate text parsing
- Skills Identification: AI-powered skill detection
- Experience Parsing: Automatic work history extraction
- Education Analysis: Academic background processing
- 📄 PDF files (primary)
- 📝 Plain text input
- 🔄 Multiple resume versions
- Text Extraction → Raw text from PDF/input
- Content Analysis → Google Gemini processes content
- Structured Parsing → JSON format with categorized data
- Validation → Ensures data quality and completeness
{
"name": "John Doe",
"email": "[email protected]",
"skills": ["Python", "React", "SQL"],
"experience": [
{
"company": "Tech Corp",
"position": "Software Engineer",
"duration": "2020-2023"
}
],
"education": [...],
"projects": [...]
}
Click to expand AI Engine details
- Resume-Based Questions: Tailored to candidate's background
- Category Distribution: Technical, behavioral, situational
- Difficulty Scaling: Adaptive question complexity
- Follow-up Intelligence: Context-aware follow-up questions
evaluation_criteria = {
"technical_accuracy": "Technical knowledge demonstration",
"communication_clarity": "Clear and articulate responses",
"problem_solving": "Analytical thinking and approach",
"experience_relevance": "Real-world application examples"
}
- AI Analysis (60%): Google Gemini evaluates content quality
- Similarity Matching (40%): TF-IDF compares with ideal answers
- Final Score: Weighted combination with detailed breakdown
- Lightweight Processing: TF-IDF instead of heavy transformers
- Caching Strategy: Reduces API calls for similar questions
- Error Handling: Graceful fallbacks for AI service issues
- Response Time: Average 2-3 seconds per evaluation
Click to expand Voice Processing details
- Audio Capture: Browser MediaRecorder API
- Format Support: WAV, MP3, M4A, OGG
- Whisper Integration: OpenAI's state-of-the-art STT
- Quality Enhancement: Noise reduction and normalization
class VoiceProcessor:
def __init__(self):
self.whisper_model = whisper.load_model("base")
def speech_to_text(self, audio_path):
# Advanced audio processing
result = self.whisper_model.transcribe(audio_path)
return result["text"]
// Voice recording functionality
const recordVoice = async () => {
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const recorder = new MediaRecorder(stream);
// Recording logic...
};
- Microphone Permissions: Graceful permission handling
- Audio Quality: Automatic quality detection
- Fallback Options: Text input when voice fails
- Browser Compatibility: Cross-browser support
Click to expand Analytics details
- Overall Score: Comprehensive performance rating
- Skill Breakdown: Individual skill assessments
- Progress Tracking: Improvement over time
- Comparative Analysis: Benchmarking against standards
def generate_comprehensive_report(self, data):
pdf = FPDF()
pdf.add_page()
# Header with branding
self._add_header(pdf, data)
# Performance summary with charts
self._add_performance_summary(pdf, data)
# Detailed question analysis
self._add_question_breakdown(pdf, data)
# Recommendations and next steps
self._add_recommendations(pdf, data)
return pdf.output(dest='S').encode('latin-1')
- Executive Summary: High-level performance overview
- Skills Analysis: Detailed breakdown by competency
- Question-by-Question: Individual answer evaluations
- Improvement Roadmap: Personalized recommendations
- Progress Visualization: Charts and graphs
Click to expand Database details
CREATE TABLE users (
id INTEGER PRIMARY KEY,
email VARCHAR(120) UNIQUE NOT NULL,
full_name VARCHAR(100),
password_hash VARCHAR(255),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE resumes (
id INTEGER PRIMARY KEY,
user_id INTEGER FOREIGN KEY,
text_content TEXT,
file_path VARCHAR(255),
parsed_data JSON,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE interviews (
id INTEGER PRIMARY KEY,
user_id INTEGER FOREIGN KEY,
start_time DATETIME,
end_time DATETIME,
transcript TEXT,
evaluation JSON,
report_path VARCHAR(255),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
- SQLAlchemy Integration: Object-relational mapping
- Relationship Management: Foreign key constraints
- JSON Field Support: Flexible data storage
- Migration Support: Database version control
journey
title AI Interview CRM User Journey
section Getting Started
Sign Up : 5: User
Login : 5: User
Upload Resume : 4: User
section Interview Preparation
Generate Questions: 5: AI
Review Profile : 4: User
Start Interview : 5: User
section Interview Process
Answer Questions : 4: User
Get Real-time Feedback: 5: AI
Complete Interview: 4: User
section Results & Improvement
View Report : 5: User
Download PDF : 4: User
Track Progress : 5: User
- Hero Section: Compelling value proposition
- Feature Highlights: Key platform benefits
- Call-to-Action: Quick registration process
- Social Proof: Success stories and testimonials
- Performance Overview: Quick stats and metrics
- Recent Activity: Latest interviews and scores
- Progress Tracking: Visual improvement charts
- Quick Actions: Start new interview, view reports
- Question Display: Clear, readable question presentation
- Response Options: Voice recording or text input
- Progress Indicator: Current question position
- Real-time Feedback: Instant scoring and suggestions
- Executive Summary: High-level performance overview
- Detailed Analysis: Question-by-question breakdown
- Visual Charts: Performance graphs and comparisons
- Action Items: Personalized improvement recommendations
# Run all tests
python test_platform.py
# Run specific test categories
python -m pytest tests/ -k "authentication"
python -m pytest tests/ -k "interview_flow"
python -m pytest tests/ -k "ai_engine"
- ✅ Authentication: Registration, login, JWT validation
- ✅ Resume Processing: PDF parsing, AI analysis
- ✅ Interview Flow: Question generation, answer evaluation
- ✅ Voice Processing: STT, audio handling
- ✅ Report Generation: PDF creation, analytics
- ✅ Database Operations: CRUD operations, relationships
- ✅ API Endpoints: All REST endpoints
- ✅ Error Handling: Edge cases, failure scenarios
- CSS Variables: Easy theme customization
- Responsive Design: Mobile-first approach
- Animation Library: Smooth transitions and effects
- Component System: Reusable UI components
- Modern ES6+: Clean, maintainable code
- API Integration: Fetch-based HTTP client
- Voice Recording: MediaRecorder API integration
- Real-time Updates: WebSocket support ready
# 🤖 AI Configuration
GOOGLE_API_KEY=your_gemini_api_key_here
AI_MODEL=gemini-1.5-flash
# 🗄️ Database Configuration
DATABASE_URL=sqlite:///interview.db
SQLALCHEMY_TRACK_MODIFICATIONS=False
# 🔐 Security Configuration
SECRET_KEY=your_super_secret_key_here
JWT_SECRET_KEY=your_jwt_secret_key_here
JWT_EXPIRATION_HOURS=24
# 📁 File Upload Configuration
UPLOAD_FOLDER=static/uploads
MAX_CONTENT_LENGTH=16777216 # 16MB
# 🎤 Voice Processing Configuration
WHISPER_MODEL=base
SUPPORTED_AUDIO_FORMATS=wav,mp3,m4a,ogg
# 📊 Analytics Configuration
ENABLE_ANALYTICS=True
REPORT_GENERATION=True
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]
- 🔧 Heroku: One-click deployment
- ☁️ AWS: EC2, ECS, or Lambda
- 🌐 Google Cloud: App Engine or Cloud Run
- 💙 Azure: App Service or Container Instances
- Development: SQLite (included)
- Production: PostgreSQL, MySQL, or MongoDB
- Cloud: AWS RDS, Google Cloud SQL, Azure Database
- HTTPS: SSL/TLS encryption
- Environment Variables: Secure secret management
- Rate Limiting: API endpoint protection
- Input Validation: XSS and injection prevention
- CORS Configuration: Cross-origin request handling
- Lightweight AI: TF-IDF instead of heavy transformers (90% size reduction)
- Efficient Caching: Redis integration ready
- Database Indexing: Optimized queries
- CDN Integration: Static asset delivery
- Lazy Loading: On-demand resource loading
- Performance Metrics: Response time tracking
- Error Monitoring: Automated error reporting
- Usage Analytics: User behavior insights
- Health Checks: System status monitoring
-
🍴 Fork the Repository
git clone https://github.com/hari7261/AI-INTERVIEW-CRM.git
-
🌿 Create Feature Branch
git checkout -b feature/amazing-feature
-
💡 Make Your Changes
- Follow code style guidelines
- Add tests for new features
- Update documentation
-
✅ Test Your Changes
python test_platform.py
-
📤 Submit Pull Request
- Clear description of changes
- Reference related issues
- Include screenshots if UI changes
- Code Style: PEP 8 for Python, ESLint for JavaScript
- Documentation: Docstrings for all functions
- Testing: Minimum 80% code coverage
- Version Control: Semantic versioning (semver)
Use GitHub Issues with the following template:
- Bug Description: Clear, concise description
- Steps to Reproduce: Detailed reproduction steps
- Expected Behavior: What should happen
- Screenshots: Visual evidence if applicable
- Environment: OS, Python version, browser
This project is licensed under the MIT License - see the LICENSE file for details.
- ✅ Commercial Use: Use in commercial projects
- ✅ Modification: Modify and adapt the code
- ✅ Distribution: Share with others
- ✅ Private Use: Use for personal projects
- ❌ Liability: No warranty or liability
- ❌ Patent Grant: No patent rights granted
- Google Gemini: For powerful AI capabilities
- OpenAI Whisper: For excellent speech-to-text
- Flask Community: For the amazing web framework
- Open Source Contributors: For inspiration and tools
|
"Having gone through countless interviews myself and seeing friends struggle with interview preparation, I realized there was a gap in accessible, AI-powered practice platforms. This project combines my passion for AI with my desire to help fellow developers and job seekers succeed in their careers."
- 🤖 Democratize AI: Make advanced AI interview practice accessible to everyone
- 📈 Skill Enhancement: Help candidates identify and improve their weak areas
- 🌍 Global Impact: Support job seekers worldwide in achieving their career goals
- 🔄 Continuous Learning: Provide personalized feedback for ongoing improvement
🎯 User-Centric | 🔧 Clean Code | 🚀 Performance | 🌟 Innovation |
---|---|---|---|
Always put user needs first | Write maintainable, readable code | Optimize for speed and efficiency | Embrace cutting-edge technology |
Gather feedback continuously | Follow best practices | Test performance rigorously | Experiment with new ideas |
Design intuitive interfaces | Document thoroughly | Scale intelligently | Stay ahead of trends |
I'm always excited to connect with fellow developers, discuss new ideas, or help with any questions you might have about the project!
🤝 Let's build something amazing together!
🚀 Get Started Now • ⭐ Star on GitHub • 🐛 Report Issues
Made with ❤️ by Hari, for developers worldwide
🎉 Thank you for choosing AI Interview CRM! Together, let's help candidates ace their interviews and build their dream careers! 🚀