This project is a simple web application designed to help recruiters manage data related to applicants/candidates easily. It comprises of a frontend built with Vite + React and a backend developed using Node.js, with PostgreSQL as the database. I have used ElephantSQL as the database storage.
- Allows the recruiter to update status of a candidate, view, delete and add records. Also computes score for candidates based on their experience working with NOdeJS and ReactJS.
- Vite
- React
- Tailwind CSS
- JavaScript
- Node.js
- Express.js
- PostgreSQL (ElephantSQL)
A home page is shown to the recruiter(assuming they have logged in already) which has options to add, update, delete or view records. The user can choose any of the operation and proceed forward.
- ADD: A admission form is shown to the user where they can fill the data related to candidate(name, email, phone, skills with experience, status, expected salary). The user can click on the "Add Candidate" button and the record will be added to the database. Score is calculated before adding on the basis of experience in NodeJS and ReactJS.
- UPDATE: The recruiter enters the email for a record and if it is found in the database, the details are shown. The recruiter can update the status and the salary and save the updated information
- DELETE: The recruiter enters the email for a record and if it is found in the database, the details are deleted from the database.
- VIEW: The recruiter can view all the records in the database;
Email validation and phone no(10 digits) is also done on the client side. If all the entered values are satisfying then a post request is sent to the backend.
All the values are extracted first and then validation is done again. If there is some error, the error is returned. According to the request by the user, the operation is performed and results are returned.
Note
When accessing the backend for the first time(calling any backend api endpoint), it will take some time because the backend is redeployed on render if there's not traffic for some time.
git clone https://github.com/mufsh/recruita.git
cd recruita
cd client # Navigate to the frontend directory
npm install
cd ../server # Navigate to the backend directory
npm install
- Create a .env file in the backend directory.
- Add necessary environment variables such as PORT, USERNAME, HOSTNAME, PASSWORD, DATABASE, DB_DIALECT, DB_PORT for connectiong to the database.
nodemon index.js
npm run dev
- Description: Endpoint to add candidates to the database.
- Request Body: JSON data containing candidate details.
- Response: Returns the candidate record if its added successfully to the database otherwise the error is returned.
- Description: Endpoint to search candidates in the database.
- Request Body: JSON data containing candidate email.
- Response: Returns the candidate record if its found in the database otherwise the error is returned.
- Description: Endpoint to update candidate details in the database.
- Request Body: JSON data containing candidate details.
- Response: Returns the candidate record if its updated successfully in the database otherwise the error is returned.
- Description: Endpoint to get all candidate details in the database.
- Response: Returns all the candidates records.
- Description: Endpoint to delete candidates from the database.
- Request Body: JSON data containing candidate email.
- Response: Deletes the candidate record if its found in the database otherwise the error is returned.
Attributes:
* ID (Primary Key)
* Name
* Email(unique)
* Phone(Unique)
* Status
* Skills ( Array of objects which has a skill and its experience)
* Expected Salary
* Score(calculated on the basis of experience in NodeJS and ReactJS)
- The recruiter is already logged in.
- Implement user authentication for secure access to data.
- Add other functionalities such as score on the basis of education.







