Giter VIP home page Giter VIP logo

jobsearchappapis's Introduction

Job Search App

A Job Search App API is similar to linkedIn website to create company, job an apply for a job by create application, using NodeJS runtime environment and ExpressJS as the server framework.

Prerequisites

Before you run the API, make sure you have the following prerequisites installed:

MongoDB Server: Ensure you have MongoDB Server installed. You can download and install MongoDB from MongoDB official website.

Installation

To install dependencies:

npm install

Running the API

To run in dev mode:

npm run dev

File Structure

Following ExpressJS Structure:

  • DB : for DB connection and Entities Schemas
  • Src : for middlewares, modules (controllers,routes) , utils
  ├── DB
  |   ├── models
  |   |      ├── applications.model.js
  |   |      ├── company.model.js
  |   |      ├── job.model.js
  |   |      ├── OTP.model.js
  |   |      └── user.model.js
  |   ├── connection.js
  |   └── dbMethods.js
  ├── src
  |   ├── middlewares
  |   |      ├── authHandler.js
  |   |      ├── authorizationHandler.js
  |   |      ├── globalErrorHandler.js
  |   |      ├── uploadingFilesHandler.js
  |   |      └── validationMiddleware.js
  │   ├── modules
  |   |      ├── users
  |   |      |      ├── controllers.js
  |   |      |      ├── dataValidationSchema.js
  |   |      |      └── routes.js
  |   |      ├── company
  |   |      |      ├── controllers.js
  |   |      |      ├── dataValidationSchema.js
  |   |      |      └── routes.js
  |   |      ├── job
  |   |      |      ├── controllers.js
  |   |      |      ├── dataValidationSchema.js
  |   |      └──    └── routes.js
  |   ├── utils
  |   |      ├── allowedExtensions.js
  |   |      ├── generalSystemConstants.js
  |   |      ├── generateUniqueString.js
  |   |      ├── generateUserToken.js
  |   |      └── mediaHostConnection.js
  ├── index.js
  ├── .env
  ├── README.md
  └── .gitignore

Endpoints

User

Method URL Description
GET /users/myProfile Get Private Profile and must be logged In
GET /users/allAccountsWithRecoveryEmail Get Users accounts using same recoveryEmail
GET /users/userProfile/:userId Get Profile of users using Id and must be logged In
POST /users/signUp Create a new user account
POST /users/signIn Authenticate and get access token
POST /users/forgetPassword Forget Password
POST /users/verifyOTPAndUpdatePassword Send OTP to change password with new one
PUT /users/updateProfile Update User Profile and must be logged In
PUT /users/changePassword Change Password and must be logged In
PUT /users/updateProfileImage Change Profile Image and must be logged In
DELETE /users/deleteProfile Delete User Profile and must be logged In

Company

Method URL Description
GET /company/companyDetails/:companyId get company and must be logged In
GET /company/searchByName get company using query params and must be logged In
GET /company/companyJobsApplications/:companyId get company applications and must be logged In
POST /company/createCompany Create new company and must be logged In with HR role
PUT /company/updateCompany Update company and must be logged In with HR role
PUT /company/updateProfileImage/:companyId Change Profile Image and must be logged In
DELETE /company/deleteCompany Delete company and must be logged In with HR role

Jobs

Method URL Description
GET /jobs/getJobsWithFullInfo Get all jobs with Full Info and must be logged In
GET /jobs/getJobsWithCompanyName Get jobs wit company name and must be logged In
GET /jobs/getJobsWithFilter Get all jobs using filter in query params and must be logged In
POST /jobs/addJob add new job and must be HR , logged In and add it for his company
POST /jobs/applyJob/:jobId Add application for job and must be user role, logged In
PUT /jobs/updateJob/:jobId Update job and must be HR , logged In and update it for his company
DELETE /jobs/deleteJob/:jobId Delete job and must be HR , logged In and delete it for his company

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.