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.
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.
To install dependencies:
npm install
To run in dev mode:
npm run dev
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
Check APIs Documentation : https://documenter.getpostman.com/view/27228437/2s9YytgLa7
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 |
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 |
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 |