Skip to content

CodehubPriyanshu/HireHub-JobPortal-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

HireHub - Full-Stack Job Portal

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.

๐Ÿš€ Features

For Job Seekers

  • 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

For Employers

  • 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

Security & Authentication

  • 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

๐Ÿ› ๏ธ Tech Stack

Frontend

  • 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

Backend

  • 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

๐Ÿ“ Project Structure

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

๐Ÿš€ Quick Start

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (local or cloud instance)
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone <repository-url>
    cd hirehub-job-portal
  2. Install dependencies for both frontend and backend

    npm run install:all
  3. 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
  4. 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
  5. Access the application

๐Ÿ“ฑ Available Scripts

Root Level Scripts

  • npm run dev - Run both frontend and backend in development mode
  • npm run dev:backend - Run backend only
  • npm run dev:frontend - Run frontend only
  • npm run build - Build frontend for production
  • npm start - Start backend in production mode
  • npm run install:all - Install dependencies for both frontend and backend

Backend Scripts

  • npm start - Start server in production mode
  • npm run dev - Start server with nodemon for development

Frontend Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build
  • npm run lint - Run ESLint

๐ŸŒ API Endpoints

User Routes (/api/v1/user)

  • POST /register - Register a new user
  • POST /login - User login
  • GET /getuser - Get current user details
  • GET /logout - User logout
  • PUT /update/profile - Update user profile
  • PUT /update/password - Update user password

Job Routes (/api/v1/job)

  • GET /getall - Get all jobs (with filters)
  • GET /get/:id - Get single job by ID
  • POST /post - Post a new job (employer only)
  • GET /getmyjobs - Get jobs posted by current employer
  • DELETE /delete/:id - Delete a job (employer only)

Application Routes (/api/v1/application)

  • GET /employer/getall - Get all applications for employer
  • GET /jobseeker/getall - Get all applications by job seeker
  • POST /post/:jobId - Apply for a job
  • DELETE /delete/:id - Delete an application

๐Ÿš€ Deployment

Vercel Deployment

This project is configured for easy deployment on Vercel:

  1. Push your code to GitHub

  2. Connect to Vercel

    • Import your GitHub repository to Vercel
    • Vercel will automatically detect the configuration
  3. 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
  4. Deploy

    • Vercel will automatically build and deploy your application
    • Both frontend and backend will be served from the same domain

Manual Deployment

  1. Build the frontend

    npm run build
  2. Deploy backend to your preferred hosting service

  3. Deploy frontend build files to a static hosting service

๐Ÿ”ง Configuration

Environment Variables

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

๐Ÿ“ธ Screenshots

Home Page

home

Job Listings

Job

Employer Profile

Profile

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“ License

This project is licensed under the ISC License - see the LICENSE file for details.

๐Ÿ†˜ Support

If you encounter any issues or have questions:

  1. Check the individual README files in backend/ and frontend/ directories
  2. Review the API documentation
  3. Create an issue in the repository

๐Ÿ”ฎ Future Enhancements

  • 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

About

"MERN-based job portal with search, tracking, role-based access, secure authentication, and cloud

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published