The Real-Time Coding Interview Platform is designed to simplify and improve the process of conducting technical interviews. It provides a collaborative coding environment where interviewers and candidates can interact in real time. This platform aims to make hiring more efficient, transparent, and fair by integrating features such as live coding, video/audio conferencing, anti-cheating mechanisms, and automated evaluation tools.
Traditional interview methods often require multiple tools, such as video calls, coding platforms, and manual note-taking. This leads to inefficiencies and difficulty in maintaining a structured hiring process. Our platform brings everything into one place, allowing interviewers to:
- Conduct interviews with real-time code execution.
- Monitor candidates with anti-cheating features.
- Use custom evaluation forms for structured assessments.
- Record interviews for later review.
- Automate tasks like interview scheduling and result tracking.
- Live Coding Environment – Candidates and interviewers can write, edit, and execute code in real time.
- Video & Audio Conferencing – Integrated WebRTC-based video calls for seamless communication.
- Anti-Cheating Measures – Tab-switch detection, session monitoring, and automated alerts.
- Custom Evaluation Forms – Interviewers can create reusable assessment forms for structured feedback.
- Automated Result Management – The system records scores and feedback, making hiring decisions easier.
- Frontend: React.js (with Vite for optimization).
- Backend: Node.js, Express.js.
- Database: MongoDB for flexible data handling.
- Real-Time Features: WebRTC for video/audio, Monaco Editor for collaborative coding.
- AI Integration: Smart resume filtering and evaluation insights.
The platform helps companies and interviewers save time, reduce manual effort, and improve hiring accuracy. By providing a fair and structured evaluation process, it ensures that the best candidates are selected efficiently. Future improvements may include LinkedIn job portal integration and advanced analytics for better hiring decisions.
This database schema is designed for a Real-Time Coding Interview Platform. It structures data for managing interviewers, candidates, interviews, evaluation forms, feedback, and results.
Stores interviewer details and authentication data.
interviewerId
(PK) – Unique identifiername
,email
(Unique),company
,position
passwordHash
– Hashed password for authenticationaccessToken
,refreshToken
role
(Admin/Interviewer)createdAt
,updatedAt
Holds candidate information and login credentials.
candidateId
(PK) – Unique identifiername
,email
(Unique)passwordHash
– Hashed password for authenticationaccessToken
,refreshToken
resumeLink
,appliedPosition
createdAt
,updatedAt
Manages interview sessions.
interviewId
(PK) – Unique identifierinterviewerId
(FK → Interviewer)candidateId
(FK → Candidate)evaluationFormId
(FK → Evaluation Form)scheduledTime
,status
(Pending, Completed, Rejected, Hired)createdAt
,updatedAt
Stores templates for evaluating candidates.
evaluationFormId
(PK) – Unique identifierinterviewerId
(FK → Interviewer)title
,description
createdAt
,updatedAt
Stores feedback and scores for candidates.
responseId
(PK) – Unique identifierinterviewId
(FK → Interview)evaluationFormId
(FK → Evaluation Form)score
,comments
createdAt
,updatedAt
Stores final hiring decisions.
resultId
(PK) – Unique identifierinterviewId
(FK → Interview)responseId
(FK → Evaluation Response)finalDecision
(Hired/Rejected/On-Hold)remarks
createdAt
,updatedAt
This is the backend for the Real-Time Coding Interview Platform, built using Node.js, Express.js, and MongoDB. It provides authentication, interview management, real-time collaboration, and evaluation features via a RESTful API.
backend/
│── .gitignore
│── package.json
│── README.md
│── public/
│── src/
│ ├── config/ # Database, JWT, email service
│ ├── models/ # Mongoose models for database schema
│ ├── controllers/ # Logic for handling API requests
│ ├── routes/ # Express routes for APIs
│ ├── middlewares/ # Authentication & error handling
│ ├── utils/ # Helpers for validation & responses
│ ├── app.js # Express app setup
│ ├── index.js # Server entry point
│── .env (ignored) # Environment variables
-
Clone the repository
git clone https://github.com/your-repo.git cd backend
-
Install dependencies
npm install
-
Setup environment variables
Create a.env
file and add:MONGO_URI=your_mongodb_url JWT_SECRET=your_secret_key SMTP_USER=your_email SMTP_PASS=your_password
-
Run the server
npm start
Server runs at: http://localhost:5000
Method | Endpoint | Description |
---|---|---|
POST | /api/auth/register |
Register user |
POST | /api/auth/login |
Login user |
GET | /api/interviews |
Get all interviews |
POST | /api/interviews |
Create an interview |
GET | /api/candidates/:id |
Get candidate details |
POST | /api/evaluations |
Submit evaluation |
GET | /api/results/:id |
Get interview results |