Master your interview skills with AI-powered practice sessions
SkillWise-AI is a comprehensive web application that helps engineering students and professionals prepare for technical interviews using advanced AI technology. The platform provides personalized interview practice, daily quiz challenges, study assistance, and resume analysis with ATS optimization.
๐ Live Demo: https://my-project.tech
- Project Overview
- Key Features
- Tech Stack
- Project Structure
- Getting Started
- Development Workflow
- API Documentation
- Environment Variables
- Deployment
- Contributing
- License
The primary objective of SkillWise-AI is to bridge the gap between academic knowledge and interview readiness for engineering students. By leveraging AI technology, the platform provides:
- Personalized Interview Practice: AI-powered mock interviews tailored to specific domains and difficulty levels
- Skill Assessment: Comprehensive evaluation and feedback on technical and soft skills
- Knowledge Reinforcement: Daily quiz challenges covering core engineering subjects
- Resume Optimization: AI-driven resume analysis with ATS compatibility scoring
- Study Assistance: Subject-specific AI tutoring based on standard textbooks
- Real-time voice-to-text transcription using Whisper API
- Dynamic question generation based on domain (Technical, Behavioral, System Design)
- Difficulty levels: Beginner, Intermediate, Advanced
- Comprehensive feedback with scoring (0-100)
- Session history and progress tracking
- Auto-generated questions for 6 core engineering subjects:
- Data Structures & Algorithms
- Operating Systems
- Computer Networks
- Database Management Systems
- Software Engineering
- Algorithm Design & Analysis
- Multiple choice questions with instant feedback
- Performance analytics and streak tracking
- Subject-specific tutoring using standard textbooks
- Conversational AI based on Llama-4-Scout model
- Context-aware responses with chat history
- Supports ADA, CN, DBMS, OS, SE, and DS subjects
- AI-powered grammatical error detection
- ATS (Applicant Tracking System) compatibility scoring
- Personalized improvement suggestions
- Support for PDF, DOCX, and TXT formats
- Secure authentication with JWT tokens
- Profile management with photo and resume upload
- Password reset functionality via email
- Session tracking and performance analytics
- React 19.1.0 - Latest React with concurrent features and modern hooks
- Vite 6.3.5 - Ultra-fast build tool and development server
- Tailwind CSS 4.1.5 - Utility-first CSS framework with custom configuration
- Redux Toolkit 2.8.2 - Modern Redux state management
- React Router DOM 7.6.1 - Declarative routing for React applications
- Framer Motion 12.19.1 - Production-ready motion library for React
- Axios 1.9.0 - Promise-based HTTP client
- React Hot Toast 2.5.2 - Beautiful toast notifications
- React Icons 5.5.0 - Popular icon library
- React Markdown 10.1.0 - Markdown component for React
- Recharts 3.0.2 - Composable charting library
- @lottiefiles/dotlottie-react 0.14.2 - Lottie animations for React
- Express.js 5.1.0 - Fast, unopinionated web framework
- MongoDB - NoSQL database with Mongoose 8.14.1 ODM
- JWT - JSON Web Token authentication with jsonwebtoken 9.0.2
- Cloudinary 1.41.3 - Cloud-based image and file storage
- Bcrypt.js 3.0.2 - Password hashing library
- Nodemailer 7.0.3 - Email sending functionality
- Multer 2.0.1 - Middleware for handling multipart/form-data
- Morgan 1.10.0 - HTTP request logger middleware
- CORS 2.8.5 - Cross-Origin Resource Sharing middleware
- Cookie Parser 1.4.7 - Cookie parsing middleware
- HTTP Proxy Middleware 3.0.5 - Proxy middleware for API routing
- FastAPI - Modern Python web framework for building APIs
- Groq API - High-performance LLM inference for AI responses
- Whisper API - Speech-to-text transcription service
- LangChain - Framework for developing LLM applications
- LangChain Groq - Groq integration for LangChain
- LangChain Community - Community-driven LangChain components
- LangChain HuggingFace - HuggingFace integration
- Motor 3.0.0 - Async MongoDB driver for Python
- PyMongo 4.0.0 - MongoDB Python driver
- Pydantic - Data validation using Python type annotations
- PyPDF2 - PDF text extraction library
- Python-DOCX - Word document processing
- PyJWT - JSON Web Token implementation
- FAISS-CPU - Facebook AI Similarity Search library
- Uvicorn - ASGI server implementation
Mini-Project/
โ
โโโ ๐ฑ client/ # React Frontend Application
โ โโโ src/
โ โ โโโ components/ # Reusable UI components
โ โ โ โโโ AuthLayout.jsx # Authentication wrapper layout
โ โ โ โโโ Navbar.jsx # Navigation component
โ โ โ โโโ ProtectedRoute.jsx # Route protection wrapper
โ โ โ โโโ Loading.jsx # Loading state components
โ โ โ โโโ VoiceRecorder.jsx # Voice recording component
โ โ โ โโโ Gamification.jsx # Gamification features
โ โ โ โโโ StreakVisualizer.jsx # Streak tracking visualization
โ โ โ โโโ ErrorBoundary.jsx # Error boundary component
โ โ โ โโโ DotLottieLoader.jsx # Lottie animation loader
โ โ โ โโโ ResumeATS.jsx # Resume ATS analysis
โ โ โ โโโ shared/ # Shared components
โ โ โโโ pages/ # Main application pages
โ โ โ โโโ Home.jsx # Landing page
โ โ โ โโโ Dashboard.jsx # User dashboard
โ โ โ โโโ Profile.jsx # User profile management
โ โ โ โโโ Login.jsx # User authentication
โ โ โ โโโ Register.jsx # User registration
โ โ โ โโโ ForgotPassword.jsx # Password reset request
โ โ โ โโโ ResetPassword.jsx # Password reset form
โ โ โ โโโ Quiz.jsx # Quiz interface
โ โ โ โโโ QuizSelection.jsx # Subject selection for quiz
โ โ โ โโโ QuizResults.jsx # Quiz results display
โ โ โ โโโ MockInterview.jsx # Mock interview interface
โ โ โ โโโ MockInterviewSelection.jsx # Interview type selection
โ โ โ โโโ MockInterviewResults.jsx # Interview results
โ โ โ โโโ InterviewHistory.jsx # Interview session history
โ โ โ โโโ StudyAssistant.jsx # AI study assistant
โ โ โ โโโ ResumeATSPage.jsx # Resume analysis page
โ โ โโโ redux/ # State management
โ โ โ โโโ store.js # Redux store configuration
โ โ โ โโโ slices/ # Redux slices for different features
โ โ โโโ utils/ # Utility functions
โ โ โ โโโ api.js # API configuration and utilities
โ โ โ โโโ dqApi.js # Daily questions API
โ โ โโโ hooks/ # Custom React hooks
โ โ โโโ contexts/ # React context providers
โ โ โโโ assets/ # Static assets and images
โ โโโ public/ # Public static files
โ โ โโโ ada.jpg # Subject images
โ โ โโโ cn.jpg
โ โ โโโ dbms.jpg
โ โ โโโ ds.jpg
โ โ โโโ os.jpg
โ โ โโโ se.jpg
โ โโโ package.json # Frontend dependencies
โ โโโ vite.config.js # Vite configuration
โ โโโ tailwind.config.js # Tailwind CSS configuration
โ โโโ eslint.config.js # ESLint configuration
โ โโโ vercel.json # Vercel deployment config
โ
โโโ ๐ฅ๏ธ server/ # Node.js Backend Server
โ โโโ controllers/ # Business logic controllers
โ โ โโโ authController.js # Authentication logic
โ โ โโโ userController.js # User management
โ โ โโโ dqController.js # Daily questions management
โ โ โโโ interviewController.js # Interview session management
โ โ โโโ assistantController.js # Study assistant proxy
โ โโโ models/ # Database schemas (Mongoose)
โ โ โโโ userModel.js # User data schema
โ โ โโโ dqModel.js # Daily questions schema
โ โ โโโ interviewModel.js # Interview session schema
โ โ โโโ assistantModel.js # Study assistant session schema
โ โ โโโ resumeModel.js # Resume analysis schema
โ โ โโโ quizHistoryModel.js # Quiz performance history
โ โโโ routes/ # API route definitions
โ โ โโโ authRoutes.js # Authentication endpoints
โ โ โโโ userRoutes.js # User management endpoints
โ โ โโโ dqRoutes.js # Daily questions endpoints
โ โ โโโ interviewRoutes.js # Interview endpoints
โ โ โโโ assistantRoutes.js # Study assistant endpoints
โ โโโ middlewares/ # Custom middleware
โ โ โโโ isLogin.js # JWT authentication middleware
โ โโโ config/ # Configuration files
โ โ โโโ cloudinaryConfig.js # Cloudinary setup
โ โ โโโ cloudinaryStorage.js # File storage configuration
โ โโโ utils/ # Utility functions
โ โ โโโ email.js # Email service utilities
โ โ โโโ catchAsync.js # Async error handling
โ โ โโโ pythonAPI.js # Python service integration
โ โโโ jwt/ # JWT utilities
โ โ โโโ jsonWebToken.js # Token generation and validation
โ โโโ package.json # Backend dependencies
โ โโโ server.js # Express server entry point
โ
โโโ ๐ services/ # Python AI/ML Services
โ โโโ controllers/ # AI service controllers
โ โ โโโ assistant_controller.py # Study assistant AI logic
โ โ โโโ interview_controller.py # Interview AI logic and feedback
โ โโโ models/ # Data models and AI prompts
โ โ โโโ database_models.py # Pydantic models for database
โ โ โโโ request_models.py # API request validation models
โ โ โโโ response_model.py # API response models
โ โ โโโ prompts.py # AI prompts and templates
โ โโโ routes/ # FastAPI route definitions
โ โ โโโ assistant_routes.py # Study assistant API endpoints
โ โ โโโ interview_routes.py # Interview AI API endpoints
โ โโโ database/ # Database configuration
โ โ โโโ db_config.py # MongoDB async connection
โ โโโ utils/ # Utility functions
โ โ โโโ helper.py # Text processing utilities
โ โ โโโ auth_middleware.py # JWT authentication for FastAPI
โ โโโ speech_output/ # Generated speech files
โ โโโ minenv/ # Python virtual environment
โ โโโ api.py # FastAPI main application
โ โโโ auth.py # Authentication logic
โ โโโ requirements.txt # Python dependencies
โ โโโ test_auth.py # Authentication testing
โ
โโโ ๏ฟฝ Documentation Files
โ โโโ README.md # Main project documentation
โ โโโ ASSISTANT_PAGINATION_IMPLEMENTATION.md
โ โโโ DOTLOTTIE_LOADER_FIX.md
โ โโโ INTERVIEW_FEEDBACK_DISPLAY_ENHANCEMENT.md
โ โโโ TEXT_TO_SPEECH_INTEGRATION.md
โ โโโ VOICE_TO_TEXT_INTEGRATION.md
โ โโโ AUTHENTICATION_GUIDE.md
โ
โโโ ๐ง Configuration Files
โโโ package.json # Root package.json for workspace
โโโ debug.txt # Debug information
- Node.js (v18 or higher)
- Python (v3.8 or higher)
- MongoDB (local or cloud instance)
- Git
- Clone the repository
git clone https://github.com/yourusername/SkillWise-AI.git
cd Mini-Project- Setup Backend Server (Node.js)
cd server
npm install- Setup Frontend Client (React)
cd ../client
npm install- Setup AI Services (Python)
cd ../services
python -m venv minenv
# On Windows
minenv\Scripts\activate
# On macOS/Linux
source minenv/bin/activate
pip install -r requirements.txtCreate .env files in each directory:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/SkillWise-AI
JWT_SECRET=your_jwt_secret_key_here
JWT_EXPIRES_IN=7d
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_cloudinary_key
CLOUDINARY_API_SECRET=your_cloudinary_secret
EMAIL_USERNAME=your_email@gmail.com
EMAIL_PASSWORD=your_app_password
FRONTEND_URL=http://localhost:5173GROQ_API_KEY_DQ=your_groq_api_key_for_daily_questions
GROQ_API_AUDIO=your_groq_audio_api_key
MONGODB_URI=mongodb://localhost:27017/SkillWise-AIVITE_APP_BACKEND_URL=http://localhost:5000
VITE_APP_SERVICES_URL=http://localhost:8000You can use VS Code tasks or run manually:
- Open VS Code in the project root
- Use Ctrl+Shift+P (Cmd+Shift+P on macOS) and type "Tasks: Run Task"
- Select one of the available tasks:
- Start Client Development Server - Runs the React frontend
- Start Server Development Server - Runs the Node.js backend
- Start Python API Service - Runs the FastAPI Python services
-
Start MongoDB (if running locally)
-
Start the Backend Server
cd server
npm run dev- Start the AI Services
cd services
# Activate virtual environment first
python api.py- Start the Frontend Client
cd client
npm run devThe application will be available at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
- AI Services: http://localhost:8000
- API Documentation: http://localhost:8000/docs
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLintnpm run dev # Start with nodemon (auto-reload)
npm start # Start production serverpython api.py # Start FastAPI server
uvicorn api:api --reload --host 0.0.0.0 --port 8000 # Start with auto-reloadThe application follows a microservices architecture:
- Frontend (React): Handles user interface and client-side state management
- Backend (Node.js/Express): Manages user authentication, database operations, and file uploads
- AI Services (Python/FastAPI): Provides AI-powered features like interview feedback, study assistance, and resume analysis
- Hot Reload: All services support hot reload during development
- Error Boundaries: React error boundaries catch and handle client-side errors gracefully
- Async Operations: Comprehensive async/await patterns with proper error handling
- Type Safety: Pydantic models ensure type safety in Python services
- Authentication: JWT-based authentication across all services
- File Upload: Cloudinary integration for file storage and management
Base URL: http://localhost:5000/api/v1/auth
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/register |
User registration | โ |
POST |
/login |
User login | โ |
GET |
/logout |
User logout | โ |
POST |
/forgot-password |
Password reset request | โ |
POST |
/reset-password/:token |
Reset password with token | โ |
PATCH |
/update-password |
Update current password | โ |
PATCH |
/update-profile |
Update user profile | โ |
GET |
/me |
Get current user details | โ |
Base URL: http://localhost:5000/api/v1/users
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET |
/profile |
Get user profile | โ |
PATCH |
/profile |
Update user profile | โ |
POST |
/upload-avatar |
Upload profile picture | โ |
POST |
/upload-resume |
Upload resume file | โ |
Base URL: http://localhost:5000/api/v1/dq
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET |
/daily-questions |
Get all daily questions | โ |
GET |
/subject/:subject |
Get questions by subject | โ |
POST |
/submit-answers |
Submit quiz answers | โ |
GET |
/history |
Get quiz history | โ |
GET |
/streak |
Get current streak | โ |
Base URL: http://localhost:5000/api/v1/interview
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/create-session |
Create interview session | โ |
GET |
/sessions |
Get user interview sessions | โ |
GET |
/session/:id |
Get specific session | โ |
PATCH |
/session/:id |
Update session | โ |
DELETE |
/session/:id |
Delete session | โ |
Base URL: http://localhost:8000/services/api/v1
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/interview/transcript |
Convert voice to text | โ |
POST |
/interview/get-interview |
Get AI interview questions | โ |
POST |
/interview/feedback |
Generate interview feedback | โ |
POST |
/interview/text-to-speech |
Convert text to speech | โ |
POST |
/interview/resume-based-interview |
Resume-based interview | โ |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/assistant/chat |
Chat with study assistant | โ |
POST |
/assistant/resume |
Analyze resume with ATS | โ |
POST |
/assistant/daily-questions |
Generate daily questions | โ |
GET |
/assistant/subjects |
Get available subjects | โ |
// POST /api/v1/auth/login
{
"email": "user@example.com",
"password": "securePassword123"
}
// Response
{
"status": "success",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": "60f7b3b3b3b3b3b3b3b3b3b3",
"name": "John Doe",
"email": "user@example.com"
}
}// POST /services/api/v1/interview/transcript
// Form Data: file (audio file)
// Response
{
"text": "Hello, my name is John and I am a software developer..."
}// POST /services/api/v1/interview/feedback
{
"questions": ["Tell me about yourself"],
"answers": ["I am a software developer..."],
"domain": "technical",
"difficulty": "intermediate"
}
// Response
{
"overall_score": 85,
"feedback": {
"technical_knowledge": 90,
"communication": 80,
"confidence": 85
},
"detailed_feedback": "Your technical knowledge is excellent...",
"suggestions": ["Practice explaining complex concepts more clearly"]
}- FastAPI Swagger UI: http://localhost:8000/docs
- FastAPI ReDoc: http://localhost:8000/redoc
All protected endpoints require a JWT token in the Authorization header:
Authorization: Bearer <your_jwt_token>
- Voice Recognition: Real-time speech-to-text using Groq Whisper API
- Dynamic Question Generation: AI generates contextual follow-up questions based on responses
- Multiple Interview Types: Technical coding, behavioral, system design, and resume-based interviews
- Difficulty Scaling: Beginner, Intermediate, and Advanced difficulty levels
- Comprehensive Feedback: Detailed scoring on technical knowledge, communication skills, and confidence
- Session History: Track progress across multiple interview sessions
- Resume-Based Questions: AI analyzes uploaded resume to generate relevant questions
- 6 Core Engineering Subjects:
- Data Structures & Algorithms (DS)
- Operating Systems (OS)
- Computer Networks (CN)
- Database Management Systems (DBMS)
- Software Engineering (SE)
- Algorithm Design & Analysis (ADA)
- Intelligent Question Generation: AI-powered question creation based on curriculum
- Performance Analytics: Detailed tracking of performance trends and weak areas
- Streak System: Gamified daily practice with streak counters and achievements
- Instant Feedback: Immediate results with detailed explanations for each answer
- Adaptive Difficulty: Questions adapt based on user performance and learning curve
- Subject-Specific Expertise: Specialized AI tutors for each engineering domain
- Textbook Integration: Responses based on standard engineering textbooks and curriculum
- Conversational Interface: Natural language interaction with context-aware responses
- Chat History: Persistent conversation history for continued learning
- Multi-Modal Support: Text-based queries with comprehensive explanations
- Personalized Learning: Adapts explanations based on user's knowledge level
- AI-Powered Grammar Check: Advanced grammatical error detection and correction
- ATS Compatibility Scoring: Detailed analysis for Applicant Tracking System optimization
- Format Analysis: Support for PDF, DOCX, and TXT file formats
- Personalized Suggestions: Tailored recommendations for improvement
- Industry Standards: Analysis based on current hiring trends and requirements
- Skills Gap Analysis: Identification of missing keywords and skills
- Secure Authentication: JWT-based authentication with refresh token support
- Profile Customization: Comprehensive profile management with photo upload
- Password Security: Bcrypt hashing with password reset functionality via email
- Session Tracking: Detailed analytics on user performance and progress
- Cloud Storage: Secure file storage using Cloudinary integration
- Data Privacy: GDPR-compliant user data handling and privacy controls
- Streak Tracking: Visual streak counters with calendar integration
- Performance Graphs: Interactive charts showing progress over time
- Achievement System: Badges and milestones for consistent practice
- Leaderboards: Competitive elements to encourage regular engagement
- Progress Visualization: GitHub-style contribution graphs for quiz activities
The frontend is configured for deployment on Vercel with the included vercel.json:
# Install Vercel CLI
npm i -g vercel
# Deploy from client directory
cd client
vercel --prod# Add to package.json in server/
{
"scripts": {
"start": "node server.js",
"build": "npm install"
}
}# Dockerfile for backend
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 5000
CMD ["npm", "start"]# Dockerfile for services
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "api:api", "--host", "0.0.0.0", "--port", "8000"]Update your production environment variables:
# Production URLs
VITE_APP_BACKEND_URL=https://your-backend-domain.com
VITE_APP_SERVICES_URL=https://your-python-services-domain.com
FRONTEND_URL=https://your-frontend-domain.com
# Database
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/SkillWise-AI
# Security
JWT_SECRET=your_super_secure_jwt_secret_for_production- Error Tracking: Implement Sentry for production error monitoring
- Performance: Use React DevTools and browser performance monitoring
- API Monitoring: FastAPI built-in metrics and logging
- Database Monitoring: MongoDB Atlas monitoring for production
- Fork the repository and clone your fork
- Create a feature branch:
git checkout -b feature/amazing-feature - Install dependencies for all services (see Getting Started)
- Make your changes following the coding standards
- Test thoroughly across all services
- Commit your changes:
git commit -m 'Add amazing feature' - Push to your branch:
git push origin feature/amazing-feature - Open a Pull Request with a clear description
- Use functional components with hooks
- Follow ESLint configuration
- Use Tailwind CSS for styling
- Implement proper error boundaries
- Write meaningful component names
- Use async/await for asynchronous operations
- Implement proper error handling with try-catch
- Follow RESTful API conventions
- Use meaningful variable and function names
- Add JSDoc comments for complex functions
- Follow PEP 8 style guidelines
- Use type hints with Pydantic models
- Implement proper async patterns
- Add docstrings for all functions
- Handle exceptions gracefully
This project uses several open-source libraries and services:
- React: MIT License
- FastAPI: MIT License
- Express.js: MIT License
- Tailwind CSS: MIT License
- MongoDB: Server Side Public License (SSPL)
- Groq API: Commercial API service
- Cloudinary: Commercial service with free tier