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_URL
to your Vercel domain - Update
VITE_BACKEND_URL
to 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