Skip to content

An API to explore and manage your jobs with ease. Discover profiles you're passionate about and never miss out on opportunities.

Notifications You must be signed in to change notification settings

SyedAli310/jobs-api-node-js

Repository files navigation

JobEase - Explore & Manage Jobs 💼

An API to explore and manage jobs with ease. Update your recruitment process status on the go and stay ahead in the game.

Run Locally

Clone the project

  git clone https://github.com/SyedAli310/jobs-api-node-js.git

Go to the project directory

  cd my-project

Install dependencies

  npm install

Start the server

  npm run start

Environment Variables

To run this project, you will need to add the following environment variables to your .env file

MONGO_URI - Your mongoDB connection string

JWT_SECRET - Your secret string for JWT auth

JWT_LIFETIME - JWT expiration duration

Deployed Links

API - https://jobease.herokuapp.com 🔗

Front-end - https://jobease.live 🔗

Security

  • helmet
  • cors
  • xss-clean
  • express-rate-limit

API Reference/Endpoints

Register a new user

  POST /api/v1/auth/register
body Type Description
name string <Required> User name
email string <Required> User Email
password string <Required> Password

Login a user

  POST /api/v1/auth/login
body Type Description
email string <Required> User Email
password string <Required> User Password

Get all jobs for a user

  GET /api/v1/jobs
Header Value Type Description
Authorization Bearer {JWT_TOKEN} string <Required> Logged User JWT_TOKEN
Parameter Type Allowed Values Description
status string <pending> <interview> <declined> <optional> Jobs with <status>
position string any query string <optional> Jobs matching <position>
company string any query string <optional> Jobs matching <company>
sort string <createdAt> <updatedAt> <company> <position> <optional> Jobs sorted <Allowed values>. Multiple comma-seperated values allowed

Get single job for a user

  GET /api/v1/jobs/{id}
Header Value Type Description
Authorization Bearer {JWT_TOKEN} string <Required> Logged User JWT_TOKEN

Get jobs info for a user

  GET /api/v1/jobs/info
Header Value Type Description
Authorization Bearer {JWT_TOKEN} string <Required> Logged User JWT_TOKEN

Create job for a user

  POST /api/v1/jobs
Header Value Type Description
Authorization Bearer {JWT_TOKEN} string <Required> Logged User JWT_TOKEN
body Type Description
company string <Required> Company name
position string <Required> Job position
link string <Required> Job link/URL
status string <Required> Job/Application status

Update job for a user

  PATCH /api/v1/jobs/{id}
Header Value Type Description
Authorization Bearer {JWT_TOKEN} string <Required> Logged User JWT_TOKEN
body Type Description
company string <optional> Updated company
position string <optional> Updated position
link string <optional> Updated link/URL
status string <optional> Updated status

Delete job for a user

  DELETE /api/v1/jobs/{id}
Header Value Type Description
Authorization Bearer {JWT_TOKEN} string <Required> Logged User JWT_TOKEN

Get all jobs (explore) - open endpoint

  GET /api/v1/explore/jobs
Parameter Type Allowed Values Description
company string any query string <optional> Jobs matching <company>
position string any query string <optional> Jobs matching <position>
limit number any positive number <optional> Number of jobs per page <limit>
page number any positive number <optional> Jobs on page number <page>

Authors

🚀 About Me

I'm a full stack developer. I love working in JavaScript and related technologies.

🛠 Skills

Javascript jQuery HTML CSS reactjs django php nodejs angular

🔗 Socials - Say Hi 👋

email

linkedin

twitter

Feedback

If you have any feedback/queries, please reach out to me at [email protected]

About

An API to explore and manage your jobs with ease. Discover profiles you're passionate about and never miss out on opportunities.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published