Streamlining interview scheduling is a complex task for HR teams. Utilizing Django, Django REST framework, and Redis for caching becomes essential for an efficient solution. These frameworks, coupled with dedicated scheduling software, significantly enhance scheduling capabilities, simplifying the management of interview schedules by integrating technology effectively.
-
Clone repository
-
Create Virtualenv & activate
virtualenv venv source venv/bin/activate
-
Install the packages
pip install -r requirement.txt
-
start the Django application
cd interview_scheduler python3 manage.py runserver
-
Start the redis server on port 6376(refer settings.py)
redis-server --port 6376
-
Method: POST
-
URL:
http://127.0.0.1:8000/api/register/candidates/
-
Headers: No specific headers are required.
-
Body:
{ "full_name": "Namith Prasad", "email": "namith@example.com", "contact": "9864565289" }
Status Code: 201 Created
Response Body:
{
"candidate_id": 76053,
"full_name": "Namith Prasad",
"email": "namith@example.com",
"contact": "9864565289"
}
-
Method: POST
-
URL:
http://127.0.0.1:8000/api/register/interviewers/
-
Headers: No specific headers are required.
-
Body:
{ "full_name": "Bharath", "email": "bharath@example.com", "contact": "9188292137" }
Status Code: 201 Created
Response Body:
{
"interviewer_id": 93717,
"full_name": "Bharath",
"email": "bharath@example.com",
"contact": "9188292137"
}
-
Method: POST
-
URL:
http://127.0.0.1:8000/api/interview/
-
Headers: No specific headers are required.
-
Body:
{ "interview_date": "2023-12-05", "role": "Django Backend developer", "candidate_id": 76053, // Candidate ID "interviewer_id": 93717 // Interviewer ID }
Status Code: 201 Created
Response Body:
{
"interview_date": "2023-12-05",
"role": "Django Backend developer",
"interview_code": "72245",
"candidate_id": 76053,
"interviewer_id": 93717,
"interview_time_slot": "NULL"
}
-
Method: POST
-
URL:
http://127.0.0.1:8000/api/register/availability/candidate/
-
Headers: No specific headers are required.
-
Body:
{ "candidate_id": 76053, "interview_code": "72245", "start_time": "09:00 AM", "end_time": "03:00 PM" }
Status Code: 201 Created
Response Body:
{
"candidate_id": 76053,
"interview_code": "72245",
"start_time": "09:00 AM",
"end_time": "03:00 PM"
}
-
Method: POST
-
URL:
http://127.0.0.1:8000/api/register/availability/interviewer/
-
Headers: No specific headers are required.
-
Body:
{ "interviewer_id": 93717, "interview_code": "72245", "start_time": "12:00 PM", "end_time": "03:00 PM" }
Status Code: 201 Created
Response Body:
{
"interviewer_id": 93717,
"interview_code": "72245",
"start_time": "12:00 PM",
"end_time": "03:00 PM"
}
-
Method: POST
-
URL:
http://127.0.0.1:8000/api/scheduler/find-slots/76053/93717/
-
Headers: No specific headers are required.
-
Body:
{ "interview_code": "72245" }
Status Code: 201 Created
Response Body:
{
"interview_code": "72245",
"available_slots": "['12:00 PM , 01:00 PM', '01:00 PM , 02:00 PM', '02:00 PM , 03:00 PM']"
}
Note : I have included the remaining API operations in the Postman collection. As this is in the initial stage, if you discover any issues in the system design, please let me know.