A modern, real-time video interviewing platform that enables seamless remote technical interviews with built-in code editor support. VirtualHire revolutionizes the way companies conduct technical interviews by providing a comprehensive suite of tools for both interviewers and candidates.
- 💻 Real-time video conferencing using WebRTC
- 🔒 Secure authentication system
- 📝 Built-in code editor for technical interviews
- 📅 Interview scheduling system
- 🎙️ Real-time speech-to-text subtitles
- 🎯 Interactive dashboard for interview management
- 🔐 Protected routes and secure sessions
- 🎨 Modern UI with Tailwind CSS
- React with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- WebRTC for real-time communication
- Code editor for technical interviews
- React Router for navigation
- Node.js
- Express.js
- MongoDB (with Mongoose)
- WebSocket for signaling server
- JWT for authentication
- Cron jobs for interview status management
├── Backend/ # Backend server implementation
│ ├── controllers/ # Request handlers
│ ├── middlewares/ # Custom middleware functions
│ ├── model/ # Database models
│ ├── routes/ # API routes
│ ├── services/ # Business logic
│ └── jobs/ # Scheduled tasks
│
├── frontend/ # React frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom React hooks
│ │ └── lib/ # Utility functions
│ └── public/ # Static assets
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
-
Clone the repository
git clone <repository-url> cd RemoteInterviewPlatform
-
Install backend dependencies
cd Backend npm install
-
Install frontend dependencies
cd frontend npm install
-
Set up environment variables Create a
.env
file in both the backend and frontend directories with the necessary environment variables.
-
Start the backend server
cd Backend npm start
-
Start the frontend development server
cd frontend npm run dev
The platform uses WebRTC for peer-to-peer video communication, implemented in the WebRTCComponent.tsx
. This enables high-quality, low-latency video calls between interviewers and candidates.
Built-in code editor component (CodeEditor.tsx
) allows candidates to write and execute code during technical interviews. The editor supports syntax highlighting and multiple programming languages.
The platform includes a comprehensive interview scheduling system with:
- Calendar integration for selecting interview slots
- Automated notifications
- Status tracking
- Cron jobs for managing interview states
Secure authentication implemented using JWT tokens, with protected routes ensuring only authorized access to various platform features.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.