A JobPortal web application built using the MERN stack (MongoDB, Express, React, and Node.js), where users can post job listings, search for jobs, apply for jobs, and manage their job postings.
- Features
- Tech Stack
- Installation
- Environment Variables
- Usage
- Folder Structure
- API Endpoints
- Contributing
- License
- User Authentication: Sign up, log in, and log out functionality with JWT-based authentication.
- Job Postings: Employers can post jobs and manage their listings.
- Job Search: Users can search for jobs using various filters like location, salary, and job type.
- Application Management: Users can apply to jobs, and employers can view/manage applications.
- Responsive UI: Mobile-friendly design with React for a smooth user experience.
- Real-time Notifications: Notifications for job postings, applications, and updates (optional).
- Frontend: React, Redux, Bootstrap/Material-UI
- Backend: Node.js, Express.js
- Database: MongoDB (with Mongoose for object data modeling)
- Authentication: JWT (JSON Web Tokens) for secure authentication
- Deployment: Heroku (or any cloud platform) for backend, Netlify (or any other) for frontend
To run the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/arnavsawant9/JobPortal.git cd JobPortal
Install backend dependencies: cd backend npm install
Install frontend dependencies: cd ../frontend npm install
Set up MongoDB: Make sure MongoDB is running locally, or you can use MongoDB Atlas (a cloud-based database service).
Set up environment variables (see Environment Variables section for details).
Run the backend: cd ../backend npm start
Run the frontend: In a new terminal window, run the following commands: cd frontend npm start
The application should now be running at:
Frontend: http://localhost:5173 Backend: http://localhost:3000
Environment Variables You need to set the following environment variables in a .env file in the backend folder: PORT=5000 MONGO_URI=your-mongo-db-connection-string JWT_SECRET=your-jwt-secret
Usage Once the app is running, you can:
Sign up as an employer or job seeker. Post jobs as an employer. Search for jobs as a job seeker. Apply to jobs. Manage your job applications.
Folder Structure JobPortal/ │ ├── backend/ # Backend code (Node.js, Express, MongoDB) │ ├── models/ # Mongoose models │ ├── routes/ # API routes │ ├── controllers/ # Controller functions │ ├── middleware/ # Custom middleware (e.g., auth) │ └── server.js # Entry point for backend │ ├── frontend/ # Frontend code (React, Redux) │ ├── src/ │ │ ├── components/ # React components │ │ ├── pages/ # React pages (Job listings, dashboard, etc.) │ │ ├── store/ # Redux store and actions │ │ └── App.js # Main app component │ └── public/ # Static assets │ └── README.md # This README file
Contributions are welcome! Please feel free to submit a Pull Request or create an Issue to report any bugs or feature requests.
Fork the project. Create your feature branch: git checkout -b feature/my-feature. Commit your changes: git commit -m 'Add my feature'. Push to the branch: git push origin feature/my-feature. Open a pull request.