A Node.js application to search, apply for jobs, and create and post new jobs for recruiters. Built with the MVC (Model-View-Controller) pattern.
- Features
- Prerequisites
- Installation
- Usage
- Project Structure
- API Endpoints
- Technologies Used
- Contributing
- License
- User registration and login
- Job search functionality
- Apply for jobs
- Recruiters can create, post new jobs and manage them by utilizing resource-based authorization
- Pagination for job listings
- Node.js (>=14.x)
- npm (>=6.x)
-
Clone the repository:
git clone https://github.com/kirankumar-Matham96/Easily-MVC-App-nodejs.git cd job-portal-app
-
Install the dependencies:
npm install
-
Start the application:
npm start
-
Open your browser and navigate to
http://localhost:3200
- Search for Jobs: Use the search bar on the homepage to find jobs by keywords.
- Apply for Jobs: Click on a job listing and fill out the application form.
- Create and Post Jobs: Recruiters can log in and use the 'Create Job' button to post new job listings.
job-portal-app/
├── src/
│ ├── controllers/
│ │ └── jobs.controller.js
│ │ └── user.controller.js
│ ├── middlewares/
│ │ └── auth.middleware.js
│ │ └── jobValidation.middleware.js
│ │ └── lastVisit.middleware.js
│ │ └── mailer.middleware.js
│ │ └── multer.middleware.js
│ │ └── userValidation.middleware.js
│ ├── models/
│ │ └── applicant.model.js
│ │ └── jobs.model.js
│ │ └── user.model.js
│ ├── views/
│ │ └── applicants.ejs
│ │ └── error.ejs
│ │ └── home.ejs
│ │ └── job-details.ejs
│ │ └── jobs.ejs
│ │ └── index.ejs
│ │ └── layout.ejs
│ │ └── login.ejs
│ │ └── post-new-job.ejs
│ │ └── update-job.ejs
│ └── index.js
├──public/
| ├── assets/
│ │ └── icon.svg
│ ├── CSS/
│ │ └── main.css
│ ├── files/
│ │ └── resume.pdf
│ ├── images/
│ │ └── image.png
│ └── JS/
│ └── main.js
├── .gitignore
├── package.json
└── README.md`
POST /register
: Register a new userPOST /login
: Login a userGET /logout
: Logout a user
GET /jobs
: Get all job listings with paginationPOST /jobs
: Create a new job (Recruiter only)GET /jobs/:id
: Get a specific job by IDPOST /jobs/:id/applicants
: Apply for a job
- Node.js
- Express
- Express-ejs-layouts (Embedded JavaScript Templates)
- Express-session (for authentication)
- express-validator (for validation)
- Cookie-parses (for tracking last visit)
- Multer (for file handling)
- Nodemailer (for email confirmation)
- uuid (for unique id generation)
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature
) - Commit your changes (
git commit -m 'Add some feature'
) - Push to the branch (
git push origin feature/your-feature
) - Open a pull request
please use prefixes for the commit messages as fallowing:
- feat: for adding a feature
- bug-fix: for fixing a bug
- update: for any update
- refractor: for any logic or syntax modifications
This project is licensed under the ISC License.
[Comment]< the LICENSE file for details.>