HireHub is a comprehensive job portal application built with the MERN (MongoDB, Express.js, React, and Node.js) stack. This project provides a seamless platform for job seekers to find opportunities and for employers to post and manage job listings.
- Job Search & Browse: Search and filter job listings by keywords, location, categories, and more
- Resume Management: Upload and manage resumes for job applications
- Application Tracking: Track all submitted job applications
- Profile Management: Update personal information and preferences
- Responsive Design: Optimized for desktop and mobile devices
- Job Posting: Create detailed job listings with requirements and descriptions
- Application Management: View and manage received applications
- Job Management: Edit, update, or delete posted jobs
- Dashboard: Comprehensive overview of posted jobs and applications
- Company Profile: Manage company information and branding
- JWT Authentication: Secure user authentication and authorization
- Role-based Access: Different permissions for job seekers and employers
- Password Encryption: Secure password hashing with bcrypt
- File Upload Security: Secure file handling with Cloudinary integration
- React.js - User interface library
- Redux Toolkit - State management
- React Router - Client-side routing
- Vite - Build tool and development server
- Axios - HTTP client for API calls
- React Toastify - Notifications
- React Icons - Icon library
- Node.js - Runtime environment
- Express.js - Web framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- JWT - JSON Web Tokens for authentication
- Cloudinary - Cloud-based file storage
- Nodemailer - Email service
- bcrypt - Password hashing
hirehub-job-portal/
├── backend/ # Backend server
│ ├── app.js # Express app configuration
│ ├── server.js # Server entry point
│ ��── config/ # Configuration files
│ ├── controllers/ # Route controllers
│ ├── database/ # Database connection
│ ├── middlewares/ # Custom middlewares
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ ├── utils/ # Utility functions
│ └── automation/ # Automated tasks
├── frontend/ # Frontend client
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── store/ # Redux store
│ │ ├── config/ # Configuration
│ │ └── App.jsx # Main App component
│ ├── public/ # Static assets
│ └── index.html # HTML template
├── package.json # Root package.json
├── vercel.json # Vercel deployment config
└── README.md # Project documentation
- Node.js (v14 or higher)
- MongoDB (local or cloud instance)
- npm or yarn package manager
-
Clone the repository
git clone <repository-url> cd hirehub-job-portal
-
Install dependencies for both frontend and backend
npm run install:all
-
Set up environment variables
Create
backend/config/config.env:PORT=4000 MONGO_URI=your_mongodb_connection_string JWT_SECRET_KEY=your_jwt_secret_key JWT_EXPIRE=7d COOKIE_EXPIRE=7 CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret FRONTEND_URL=http://localhost:5173 SMPT_SERVICE=gmail SMPT_MAIL=your_email@gmail.com SMPT_PASSWORD=your_app_password SMPT_HOST=your_email@gmail.com SMPT_PORT=587
Create
frontend/.env:VITE_BACKEND_URL=http://localhost:4000
-
Run the application
Development mode (both frontend and backend):
npm run dev
Or run separately:
# Backend only npm run dev:backend # Frontend only npm run dev:frontend
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:4000
npm run dev- Run both frontend and backend in development modenpm run dev:backend- Run backend onlynpm run dev:frontend- Run frontend onlynpm run build- Build frontend for productionnpm start- Start backend in production modenpm run install:all- Install dependencies for both frontend and backend
npm start- Start server in production modenpm run dev- Start server with nodemon for development
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
POST /register- Register a new userPOST /login- User loginGET /getuser- Get current user detailsGET /logout- User logoutPUT /update/profile- Update user profilePUT /update/password- Update user password
GET /getall- Get all jobs (with filters)GET /get/:id- Get single job by IDPOST /post- Post a new job (employer only)GET /getmyjobs- Get jobs posted by current employerDELETE /delete/:id- Delete a job (employer only)
GET /employer/getall- Get all applications for employerGET /jobseeker/getall- Get all applications by job seekerPOST /post/:jobId- Apply for a jobDELETE /delete/:id- Delete an application
This project is configured for easy deployment on Vercel:
-
Push your code to GitHub
-
Connect to Vercel
- Import your GitHub repository to Vercel
- Vercel will automatically detect the configuration
-
Set Environment Variables
- Add all required environment variables in Vercel dashboard
- Update
FRONTEND_URLto your Vercel domain - Update
VITE_BACKEND_URLto your Vercel API URL
-
Deploy
- Vercel will automatically build and deploy your application
- Both frontend and backend will be served from the same domain
-
Build the frontend
npm run build
-
Deploy backend to your preferred hosting service
-
Deploy frontend build files to a static hosting service
Backend (backend/config/config.env):
- Database and authentication settings
- Third-party service configurations (Cloudinary, Email)
- CORS and security settings
Frontend (frontend/.env):
- API endpoint configuration
- Build-time environment variables
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the ISC License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the individual README files in
backend/andfrontend/directories - Review the API documentation
- Create an issue in the repository
- Real-time chat between employers and job seekers
- Advanced job recommendation system
- Integration with LinkedIn and other job platforms
- Mobile application development
- Advanced analytics and reporting
- Video interview scheduling
- Skill assessment tests
Built with ❤️ using the MERN Stack


