Skip to content

baderkothman/InterviewScheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interview Scheduler

Interview Scheduler is a full-stack hiring operations project built as a monorepo. It combines a public application intake flow with an internal admin workspace for reviewing candidates, scheduling interviews, and tracking hiring activity.

The project has two main parts:

  • backend/ contains the ASP.NET Core API, database access, authentication, ATS-style scoring logic, and automatic interview creation.
  • frontend/ contains the React application used by both public applicants and authenticated admins.

What the project does

The system supports two parallel hiring flows:

  1. Public application flow Applicants open /google-form, fill in their details, upload a CV, and the form auto-submits once valid.
  2. Internal admin flow Recruiters or admins log in, review candidates and interviews, inspect ATS-scored applications, and monitor activity from the dashboard.

Main workflow

  1. A candidate submits an application with a CV.
  2. The backend stores the file in backend/Uploads/Applications.
  3. The ATS scoring logic validates the submission and scores it out of 100.
  4. If the application passes the acceptance threshold, the backend:
    • creates or updates the candidate record
    • assigns an interviewer based on the applied role
    • creates an interview automatically
  5. The frontend admin area shows the resulting records in:
    • Dashboard
    • Candidates
    • Interviews
    • Applications / ATS review

Project structure

InterviewScheduler/
|-- backend/   ASP.NET Core API, EF Core, SQL Server, JWT auth
|-- frontend/  React + Vite client application
`-- README.md

Features

  • JWT-based admin authentication
  • Candidate CRUD management
  • Interview CRUD management
  • Public application submission with CV upload
  • ATS-style scoring for submitted applications
  • Automatic candidate and interview creation for accepted applications
  • Admin application review with score breakdown and interview preview
  • Dashboard with candidate and interview summary data
  • Light/dark theme toggle with persisted preference
  • Global API exception handling
  • Login and public submission rate limiting

Tech stack

  • Backend: ASP.NET Core net9.0, Entity Framework Core, SQL Server, JWT, Swagger
  • Frontend: React, Vite, React Router, Axios

Running the project

1. Start the backend

cd backend
dotnet restore
dotnet ef database update
dotnet run --urls http://localhost:5000

The API will be available at http://localhost:5000, and Swagger at http://localhost:5000/swagger.

2. Start the frontend

cd frontend
npm install
npm run dev

The frontend runs at http://localhost:5173 by default and expects the API at http://localhost:5000/api.

Default admin login

  • Email: admin@interviewscheduler.local
  • Password: Admin@12345!

Important routes

  • Public application form: http://localhost:5173/google-form
  • Application status page: http://localhost:5173/application-status/:trackingCode
  • Admin login: http://localhost:5173/login
  • Admin dashboard: http://localhost:5173/dashboard
  • Candidates: http://localhost:5173/candidates
  • Interviews: http://localhost:5173/interviews
  • Applications: http://localhost:5173/applications

Part-specific documentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors