Skip to content

Full-stack MERN job portal with recruiter–candidate workflows, role-based access, resume uploads, search, filters, and application tracking

Notifications You must be signed in to change notification settings

akaash1024/hiredd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HireDD - Job Portal Platform

A comprehensive full-stack job portal application built with the MERN stack, connecting job seekers with recruiters through an intuitive and secure platform.

🚀 Live Demo

📋 Table of Contents

For Job Seekers

  • 👤 User Registration & Authentication - Admin side only for now.
  • 📄 Profile Management - Upload and manage profile pictures with automatic image resizing
  • 🖼️ Image Optimization - Automatic image compression and resizing for optimal performance
  • 🔍 Advanced Job Search - Browse, filter, and search through available job postings
  • 📧 Application Tracking - Real-time job application status updates
  • Job Bookmarking - Not handled from FE part

For Recruiters

  • 🏢 Company Profile Management - Create and manage detailed company information
  • 👥 Candidate Management - Review, filter, and manage job applications efficiently
  • 📊 Recruitment Dashboard - Monitor job postings, applications,
  • 🔍 Candidate Search - Work in Progress

Technical Features

  • 🔐 Role-Based Access Control - Granular permissions for job seekers, recruiters, and admins
  • ☁️ Cloud Storage Integration - Cloudinary integration with automatic image optimization
  • 🛡️ Advanced Security - Secure authentication with httpOnly cookies and CSRF protection
  • 🔄 Real-time Updates - Live status updates for applications
  • 📊 Data Validation - Comprehensive input validation and sanitization
  • 🔧 Error Handling - Comprehensive error logging and user-friendly error messages
  • 📦 Modular Architecture - Clean, maintainable code structure
  • 🧪 API Testing - Comprehensive test coverage for all endpoints

📷 Screenshot

Screenshot 2025-08-20 105755 Screenshot 2025-08-20 105819 Screenshot 2025-08-19 180807 Screenshot 2025-08-20 105612 Screenshot 2025-08-20 105620 Screenshot 2025-08-20 105638 Screenshot 2025-08-20 105723

🛠️ Tech Stack

Frontend

  • React.js - Component-based UI library
  • Redux Toolkit - State management
  • React Router - Client-side routing
  • Axios - HTTP client for API calls
  • CSS3 - Styling and responsive design

Backend

  • Node.js - JavaScript runtime
  • Express.js - Web framework
  • MongoDB - NoSQL database
  • Mongoose - MongoDB object modeling
  • JWT - JSON Web Tokens for authentication
  • Cookie Parser - Cookie handling middleware
  • Multer - File upload handling
  • Cloudinary - Cloud-based image storage with automatic resizing

Deployment & Tools

  • Vercel - Frontend deployment
  • Render - Backend deployment
  • Git - Version control
  • Postman - API testing

🚀 Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (local or cloud)
  • Cloudinary account for image uploads

Installation

  1. Clone the repository

    git clone https://github.com/akaash1024/hiredd.git
    cd hiredd
  2. Install Backend Dependencies

    cd backend
    npm install
  3. Install Frontend Dependencies

    cd ../frontend
    npm install
  4. Set up Environment Variables

    Create .env file in the backend directory:

    PORT=3000
    MONGO_URL=your_mongodb_connection_string
    JWT_SECRET_KEY=your_jwt_secret_key
    CLOUD_NAME=your_cloudinary_cloud_name
    API_KEY=your_cloudinary_api_key
    API_SECRET=your_cloudinary_api_secret
    NODE_ENV=development
  5. Start the Application

    Backend (from backend directory):

    npm start

    Frontend (from frontend directory):

    npm run dev
  6. Access the Application

    • Frontend: http://localhost:5173
    • Backend: http://localhost:3000

📚 API Endpoints

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • GET /api/auth/me - Get current user
  • POST /api/auth/logout - User logout

Jobs (Coming Soon)

  • GET /api/jobs - Get all jobs
  • POST /api/jobs - Create job posting (recruiters only)
  • GET /api/jobs/:id - Get specific job
  • PUT /api/jobs/:id - Update job posting
  • DELETE /api/jobs/:id - Delete job posting

Applications (Coming Soon)

  • POST /api/applications - Apply for job
  • GET /api/applications/my - Get user's applications
  • GET /api/applications/job/:jobId - Get applications for specific job

🔧 Environment Variables

Variable Description Required
PORT Server port number Yes
MONGO_URL MongoDB connection string Yes
JWT_SECRET_KEY Secret key for JWT signing Yes
CLOUD_NAME Cloudinary cloud name Yes
API_KEY Cloudinary API key Yes
API_SECRET Cloudinary API secret Yes
NODE_ENV Environment (development/production) Yes

🌐 Deployment

Backend (Render)

  1. Connect your GitHub repository to Render
  2. Set environment variables in Render dashboard
  3. Deploy with automatic builds on push

Frontend (Vercel)

  1. Connect your GitHub repository to Vercel
  2. Set VITE_API_URL environment variable
  3. Deploy with automatic builds on push

🔮 Upcoming Features

  • 👨‍💼 Admin Dashboard - Comprehensive admin controls and analytics
  • 📧 Email Notifications - Automated notifications for applications and updates
  • 🤖 AI Integration - AI-powered job matching and resume analysis

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your 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 open source and available under the MIT License.

About

Full-stack MERN job portal with recruiter–candidate workflows, role-based access, resume uploads, search, filters, and application tracking

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published