SyedAli310 / jobs-api-node-js

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

Home Page:https://jobease.herokuapp.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 alizaidi310@gmail.com

About

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

https://jobease.herokuapp.com


Languages

Language:JavaScript 99.9%Language:Procfile 0.1%