A sophisticated AI-powered interview automation system that conducts voice-based interviews, evaluates candidate responses, and provides detailed analytics. The system features both admin and candidate interfaces with real-time communication capabilities.
- Role-based Access Control (Admin/Candidate)
- Voice-based Interview with real-time speech-to-text
- AI-powered Question Generation
- Response Analysis with sentiment and content evaluation
- Real-time Dashboard for monitoring interviews
- WebSocket for seamless communication
- Responsive Design for all devices
Admin Panel:
- Email: admin@gmail.com
- Password: admin1234
Candidate Account:
- Email: aravind@gmail.com
- Password: aravind
- Framework: FastAPI
- Authentication: JWT
- Database: SQLite (can be configured to PostgreSQL/MySQL)
- WebSockets: For real-time communication
- ASGI Server: Uvicorn
- Library: React 18
- State Management: React Context API
- UI Components: Custom CSS with Lucide Icons
- Web Speech API: For speech recognition and synthesis
- Python 3.9+
- Node.js 16+
- npm or yarn
-
Clone the repository
git clone https://github.com/yourusername/Interview_automation.git cd Interview_automation
-
Set up Python environment
# Create and activate virtual environment python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install Python dependencies pip install -r requirements.txt
-
Set up the database
# Run database migrations alembic upgrade head # Seed initial data python seed_users.py python seed_sample_registrations.py
-
Set up the frontend
# Install Node.js dependencies cd frontend npm install
-
Start the backend server
# From project root uvicorn app.main:app --reload
-
Start the frontend development server
# From the frontend directory npm start
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
Interview_automation/
├── app/ # Backend application
│ ├── models/ # Database models
│ ├── routers/ # API routes
│ ├── main.py # FastAPI application
│ └── ...
├── src/ # Frontend source
│ ├── components/ # React components
│ ├── assets/ # Static assets
│ ├── App.js # Main React component
│ └── ...
├── alembic/ # Database migrations
├── public/ # Static files
├── requirements.txt # Python dependencies
├── package.json # Node.js dependencies
└── README.md # This file
- User logs in with email/password
- Server validates credentials and issues JWT token
- Token is stored in localStorage/sessionStorage
- Token is sent with each subsequent request in the Authorization header
POST /api/auth/login
- User loginPOST /api/auth/register
- User registrationGET /api/interview/questions
- Get interview questionsPOST /api/interview/responses
- Submit interview responsesWS /ws/interview
- WebSocket for real-time communication
- Speech Recognition: Converts candidate's speech to text
- Natural Language Processing: Analyzes response quality
- Sentiment Analysis: Evaluates candidate's tone and confidence
- Automated Scoring: Rates responses based on content and delivery
The application is fully responsive and works on:
- Desktop browsers (Chrome, Firefox, Safari, Edge)
- Tablets
- Mobile devices
- JWT-based authentication
- Password hashing with bcrypt
- CORS protection
- Input validation
- Rate limiting
This project is licensed under the MIT License
- FastAPI - Modern, fast web framework
- React - JavaScript library for building user interfaces
- Web Speech API - For speech recognition and synthesis
For any queries or support, please contact:
- Email: shree.xai.dev@gmail.com