A Job Portal web application built using the MERN stack to connect job seekers with employers. The platform allows users to register, post jobs, search for jobs, and apply online.
-
Job Seeker:
- Sign up and log in.
- Create and update a profile with skills, experience, and resume upload.
- Search and filter jobs by keyword, location, and category.
- Apply to jobs and view application status.
-
Employer:
- Sign up and log in.
- Post jobs with details (title, description, location, salary, and requirements).
- Manage job postings (edit/delete).
- View applications and contact candidates.
- Authentication and Authorization (JWT-based).
- Secure password storage (bcrypt hashing).
- Responsive design for mobile and desktop.
- Real-time notifications for applications (optional).
- Admin panel for managing users and posts (optional).
- React.js with Hooks and Context API/Redux for state management.
- React Router for navigation.
- Styled Components/Material-UI for UI design.
- Node.js with Express.js for the server.
- MongoDB with Mongoose for the database.
- JWT for authentication and authorization.
- Multer for file uploads (e.g., resumes).
- Cloudinary/AWS S3 for storing resumes and images.
- Axios for API calls.
- Dotenv for environment variables.
- Node.js installed on your system.
- MongoDB instance (local or cloud-based like MongoDB Atlas).
- A GitHub account (for code hosting).
-
Clone the Repository:
git clone https://github.com/yourusername/job-portal.git cd job-portal
-
Install Dependencies:
- For backend:
cd backend npm install
- For frontend:
cd frontend npm install
- For backend:
-
Environment Variables: Create a
.env
file in thebackend
folder and add:PORT=5000 MONGO_URI=your_mongo_uri JWT_SECRET=your_jwt_secret CLOUDINARY_URL=your_cloudinary_url (optional)
-
Run the Application:
- Start the backend:
cd backend npm start
- Start the frontend:
cd frontend npm start
- Start the backend:
-
Access the Application:
- Frontend:
http://localhost:3000
- Backend:
http://localhost:5000
- Frontend:
job-portal/
├── backend/
│ ├── config/ # Database and environment configurations
│ ├── controllers/ # Logic for handling requests
│ ├── middleware/ # Authentication and other middleware
│ ├── models/ # MongoDB schemas
│ ├── routes/ # API endpoints
│ └── server.js # Main server file
├── frontend/
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Pages for routes
│ │ ├── context/ # State management
│ │ ├── utils/ # Helper functions
│ │ └── App.js # Main React component
│ └── package.json # Frontend dependencies
└── README.md # Project documentation
POST /api/auth/register
: Register a new user.POST /api/auth/login
: Log in a user.
GET /api/jobs
: List all jobs.POST /api/jobs/apply/:id
: Apply to a job.
POST /api/jobs
: Create a job post.PUT /api/jobs/:id
: Edit a job post.DELETE /api/jobs/:id
: Delete a job post.
- Add real-time chat between employers and job seekers.
- Integrate payment gateways for premium job postings.
- Add an admin dashboard for managing platform activity.
Contributions are welcome! Follow these steps:
- Fork the repository.
- Create a feature branch (
git checkout -b feature-name
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-name
). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE
file for details.
- GitHub Repository: Job Portal
- LinkedIn: Your LinkedIn Profile
- Portfolio: Your Portfolio