Skip to content

Job Finder .NET Web API: A robust system for efficient job management. Streamline job discovery and handling with this powerful API, designed for seamless integration and enhanced performance

Notifications You must be signed in to change notification settings

AbdullrhmanElhelw/JobFinderAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JobFinder πŸ…°πŸ…Ώβ„Ή

This API provides a set of endpoints for managing job-related activities, including administration, applicant, applicant skills, applications, companies, emails, jobs, resumes, skills, and various data transfer objects (DTOs).

⭐ Key Features

Admin Management:

πŸ” Create Account: Create admin accounts.

πŸš€ Login: Log in as an admin.

❌ Delete Account: Delete admin accounts.

πŸ”„ Update Account: Update admin accounts.

πŸ› οΈ Partial Update: Partially update admin accounts.

πŸ‘₯ Retrieve All Admins: Retrieve all admins.

πŸ“– Retrieve with Paging: Retrieve admins with paging.

Applicant Management:

πŸ“ Register: Register a new applicant.

πŸšͺ Login: Log in as an applicant.

βž• Add Skills: Add skills to an applicant.

πŸ” Retrieve Skills: Retrieve applicant skills.

❌ Delete Skills: Delete skills of an applicant.

✏️ Update Info: Update applicant information.

πŸ“§ Confirm Email: Confirm applicant's email.

🏒 Create Experience: Create work experience for an applicant.

πŸ•΅οΈ Retrieve with Jobs: Retrieve applicant details with jobs.

❌ Delete Experience: Delete work experience of an applicant.

πŸ”„ Update Applicant: Update applicant details.

πŸ”„ Update Experience: Update work experience details.

πŸ”„ Partial Update: Partially update applicant details.

πŸ‘₯ Retrieve All Applicants: Retrieve all applicants.

❌ Delete Skill: Delete a skill of an applicant.

❌ Delete Experience: Delete work experience of an applicant.

πŸ”„ Update Applicant: Update applicant details.

πŸ”„ Update Experience: Update work experience details.

πŸ”„ Partial Update: Partially update applicant details.

Application Management:

🏹 Apply for jobs.

Company Management:

🏒 Create: Create a new company.

πŸš€ Login: Log in as a company.

πŸ” Filter Companies: Filter companies.

πŸ•΅οΈ Get with Jobs: Get all companies with jobs.

πŸ‘₯ Get Job Applicants: Get job applicants for a company.

❌ Delete: Delete a company.

πŸ”„ Update: Update company details.

πŸ› οΈ Partial Update: Partially update company details.

πŸ“– Retrieve All Companies: Retrieve all companies.

Email Management:

πŸ“§ Confirm Email: Confirm email.

πŸ”’ Send Reset Password Email: Send reset password email.

πŸ”„ Reset Password: Reset password.

πŸ”„ Update Email: Update email.

πŸ”„ Confirm Updated Email: Confirm updated email.

Employer Management:

πŸ“ Register Employers: Register employers.

πŸšͺ Login as Employer: Log in as an employer.

πŸ‘₯ Get Employer Details: Get employer details.

❌ Delete Employers: Delete employers.

Job Management:

πŸ“ˆ Get All Jobs: Get all jobs.

πŸ“ˆ Get All Jobs with Pagination: Get all jobs with pagination.

πŸ” Filter Jobs: Filter jobs.

❌ Delete Job: Delete a job.

πŸ”„ Update Job: Update job details.

πŸ› οΈ Partial Update Job: Partially update job details.

Resume Management:

πŸ“„ Create Resume: Create a new resume.

πŸ“„ Retrieve Resume: Retrieve a resume.

πŸ—‘οΈ Delete Resume: Delete a resume.

Skill Management:

πŸ” Get All Skills: Get all skills.

πŸ” Retrieve Skill by ID: Retrieve a skill by ID.

πŸ”„ Update Skill: Update a skill.

❌ Delete Skill: Delete a skill.

πŸ” Filter Skills: Filter skills.

πŸ“– Get All Skills with Pagination: Get all skills with pagination.

πŸ“ Create New Skill: Create a new skill.

πŸ“ Create Multiple Skills: Create multiple skills.

πŸ› οΈ Partial Update Skill: Partially update a skill.

Endpoints

Admin Endpoints

HTTP Method Endpoint Description
POST /api/Admin/CreateAdmin Create a new admin
POST /api/Admin/Login Login as an admin
POST /api/Admin/Logout Logout an admin
GET /api/Admin/GetAdmin Get admin details
GET /api/Admin/GetAllAdmins Get all admins
GET /api/Admin/GetAllAdminsWithPaging/{pageNumber}/{pageSize} Get all admins with paging
DELETE /api/Admin/DeleteAdmin Delete an admin
PUT /api/Admin/UpdateAdmin Update admin details
PATCH /api/Admin/PartialUpdateAdmin Partially update admin details

Applicant Endpoints

HTTP Method Endpoint Description
POST /api/Applicant/Register Register a new applicant
POST /api/Applicant/Login Login as an applicant
POST /api/Applicant/AddSkill Add a skill to an applicant
POST /api/Applicant/CreateExperience Create work experience for an applicant
GET /api/Applicant/ApplicantSkills/{id} Retrieve skills of an applicant
GET /api/Applicant/ApplicantWithJobs/{id} Retrieve applicant details with jobs
GET /api/Applicant/GetAllApplicants Get all applicants
DELETE /api/Applicant/DeleteSkill/{applicantId}/{skillId} Delete a skill of an applicant
DELETE /api/Applicant/Delete/{applicantId}/{experienceId} Delete work experience of an applicant
PUT /api/Applicant/UpdateApplicant/{id} Update applicant details
PUT /api/Applicant/UpdateExperience/{applicantId}/{experienceId} Update work experience details
PATCH /api/Applicant/PartialUpdateApplicant Partially update applicant details

Application Endpoints

HTTP Method Endpoint Description
POST /api/Application/ApplyJob Apply for a job

Company Endpoints

HTTP Method Endpoint Description
POST /api/Company/register Create a new company
POST /api/Company/login Login as a company
GET /api/Company/GetAll Get all companies
GET /api/Company/GetAll/{filter} Get filtered companies
GET /api/Company/GetAllWithJobs Get all companies with jobs
GET /api/Company/GetJobApplicants/{companyId}/{jobId} Get job applicants for a company
DELETE /api/Company/{id} Delete a company
PUT /api/Company/Update/{Id} Update company details
PATCH /api/Company/PartialUpdate/{Email} Partially update company details

Email Endpoints

HTTP Method Endpoint Description
POST /api/Email/ConfirmEmail Confirm email
POST /api/Email/SendResetPasswordEmail Send reset password email
POST /api/Email/ResetPassword Reset password
PUT /api/Email/UpdateEmail Update email
POST /api/Email/ConfirmUpdateEmail Confirm updated email

Employer Endpoints

HTTP Method Endpoint Description
POST /api/Employer/Register Register a new employer
POST /api/Employer/Login Login as an employer
GET /api/Employer/Get/{id} Get employer details
DELETE /api/Employer/Delete/{id} Delete an employer

Job Endpoints

HTTP Method Endpoint Description
GET /api/Job Get all jobs
GET /api/Job/GetAllWithPagination Get all jobs with pagination
GET /api/Job/{filter} Filter jobs
POST /api/Job/Create Create a new job
DELETE /api/Job/Delete/{jobId} Delete a job
PUT /api/Job/Update Update job details
PATCH /api/Job/PartialUpdate/{id} Partially update job details

Resume Endpoints

HTTP Method Endpoint Description
POST /api/Resume Create a new resume
GET /api/Resume/{id} Get a resume by ID
DELETE /api/Resume/{applicantId}/{ResumeId} Delete a resume

Skill Endpoints

HTTP Method Endpoint Description
GET /api/Skill/GetAll Get all skills
GET /api/Skill/{id} Get a skill by ID
PUT /api/Skill/{id} Update a skill
DELETE /api/Skill/{id} Delete a skill
GET /api/Skill/{filter} Filter skills
GET /api/Skill/GetAll/{pageSize}/{pageNumber} Get all skills with pagination
POST /api/Skill Create a new skill
POST /api/Skill/multiple Create multiple skills
PATCH /api/Skill/partial-update/{id} Partially update a skill

Tools and Concepts

This project utilizes the following tools and concepts:

  • .Net 8: The project is developed using the .Net 8 framework, providing a robust and feature-rich development environment.
  • EF-Core For Database Command: Using EF-Core For Commands Only Like ( Create, Update, Delete ).
  • Dapper For Database Queries: Using Dapper for Querying as it is a micro ORM and is really fast.
  • JWT (JSON Web Tokens): JSON Web Tokens are employed for secure and efficient authentication and authorization processes.
  • CQRS With Mediator: The project adopts the Command Query Responsibility Segregation (CQRS) pattern with Mediator for managing and separating command and query responsibilities, promoting a cleaner and more scalable architecture.
  • UnitOfWork: Unit of Work pattern is implemented to manage transactions and ensure data consistency across multiple database operations.
  • Repository Pattern: The repository pattern is utilized for abstracting data access and providing a consistent interface for interacting with the underlying data storage.
  • Outlook SMTP Server: supports sending emails using the Outlook SMTP server
  • Built Completely in Clean Architecture: The project is structured following the Clean Architecture principles, promoting separation of concerns, maintainability, and testability.

Swagger Documentation

Bump.sh Documentation

About

Job Finder .NET Web API: A robust system for efficient job management. Streamline job discovery and handling with this powerful API, designed for seamless integration and enhanced performance

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published