Skip to content

MERN Stack Job Portal A full-featured job portal web application built with the MERN stack (MongoDB, Express.js, React.js, Node.js) that connects job seekers with employers in a seamless, user-friendly platform.

Notifications You must be signed in to change notification settings

CosmicRick/mern_stack_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ MERN Stack Job Portal

A full-stack, enterprise-grade job portal application built with the MERN stack (MongoDB, Express.js, React, Node.js). This comprehensive platform provides a complete solution for job posting, application management, user authentication, and company profiles with both a robust backend API and a modern React frontend.


πŸ“‹ Table of Contents


✨ Features

πŸ” User Management & Authentication

  • Secure Authentication: JWT-based authentication with registration, login, and logout
  • Role-Based Access Control: User and admin roles with appropriate permissions
  • Profile Management: Complete user profiles with personal details, education, experience, and skills
  • Resume Upload & Analysis: AI-powered resume parsing and analysis for personalized recommendations
  • Application Dashboard: Track job applications with status updates (Applied, Interviewing, Offered, Rejected)

πŸ’Ό Job Management System

  • Job Creation & Management: Full CRUD operations for job postings with detailed attributes
  • Advanced Search & Filtering: Search jobs by title, company, location, type, and tags
  • Smart Job Recommendations: AI-powered job matching based on user profiles
  • Application Tracking: Complete workflow for job applications with status management
  • Job Analytics: Statistics and insights for job postings and applications

🏒 Company Management

  • Company Profiles: Comprehensive company registration and profile management
  • Company Directory: Browse and search companies by name, industry, and size
  • Employee Management: Track company employees and job postings
  • Company Analytics: Real-time statistics on job postings and applications

πŸ€– AI-Powered Features

  • Intelligent Job Search: AI-enhanced job recommendations and contextual search
  • Resume Analysis: Automated resume parsing for skill extraction and job matching
  • Company Discovery: AI-powered company recommendations based on user preferences
  • Smart Application Matching: Intelligent matching between candidates and job requirements

πŸ“Š Analytics & Reporting

  • Dashboard Analytics: Real-time insights on applications, jobs, and user engagement
  • Performance Metrics: Track platform usage, success rates, and user behavior
  • Admin Panel: Comprehensive admin dashboard for platform management

πŸ› οΈ Tech Stack

Backend Technologies

  • Runtime: Node.js (v14+)
  • Framework: Express.js
  • Database: MongoDB with Mongoose ODM
  • Authentication: JSON Web Tokens (JWT) + bcrypt
  • Middleware: CORS, cookie-parser, dotenv
  • AI Integration: Axios for external AI APIs

Frontend Technologies

  • Framework: React 18+ with Hooks
  • Build Tool: Vite (ultra-fast development)
  • Routing: React Router DOM
  • HTTP Client: Axios
  • Styling: Modern CSS3 with responsive design
  • Development: Hot Module Replacement (HMR)

Development Tools

  • Version Control: Git & GitHub
  • Package Manager: npm
  • Code Organization: Modular architecture with clear separation of concerns
  • Environment: Development and production configurations

πŸ“ Project Structure

mern_stack_project/
β”‚
β”œβ”€β”€ πŸ“‚ backend/                     # Node.js + Express API
β”‚   β”œβ”€β”€ πŸ“‚ models/                  # Database schemas
β”‚   β”‚   β”œβ”€β”€ user.model.js           # User schema with authentication
β”‚   β”‚   β”œβ”€β”€ job.model.js            # Job posting schema
β”‚   β”‚   β”œβ”€β”€ company.model.js        # Company profile schema
β”‚   β”‚   └── application.model.js    # Job application schema
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ conroller/              # Business logic controllers
β”‚   β”‚   β”œβ”€β”€ user.controller.js      # User management & auth
β”‚   β”‚   β”œβ”€β”€ job.controller.js       # Job CRUD operations
β”‚   β”‚   β”œβ”€β”€ application.controller.js # Application workflow
β”‚   β”‚   └── company.controller.js   # Company management
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ routes/                  # API route definitions
β”‚   β”‚   β”œβ”€β”€ user.rout.js           # User & auth routes
β”‚   β”‚   β”œβ”€β”€ job.rout.js            # Job management routes
β”‚   β”‚   β”œβ”€β”€ company.rout.js        # Company routes
β”‚   β”‚   └── application.rout.js    # Application routes
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ middleware/              # Custom middleware
β”‚   β”‚   └── isAuthenticated.js      # JWT authentication middleware
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ utils/                   # Utility functions
β”‚   β”‚   └── db.js                   # Database connection
β”‚   β”‚
β”‚   β”œβ”€β”€ index.js                    # Server entry point
β”‚   └── package.json                # Backend dependencies
β”‚
β”œβ”€β”€ πŸ“‚ frontend/                    # React.js Application
β”‚   β”œβ”€β”€ πŸ“‚ public/                  # Static assets
β”‚   β”‚   └── favicon.svg             # App favicon
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“‚ src/                     # React source code
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ components/          # Reusable UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ Header.jsx          # Navigation header
β”‚   β”‚   β”‚   └── Footer.jsx          # App footer
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ pages/               # Page components
β”‚   β”‚   β”‚   └── Home.jsx            # Homepage component
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ services/            # API integration
β”‚   β”‚   β”‚   └── api.js              # HTTP client & API calls
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ utils/               # Helper functions
β”‚   β”‚   β”‚   └── helpers.js          # Utility functions
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ hooks/               # Custom React hooks
β”‚   β”‚   β”œβ”€β”€ πŸ“‚ context/             # React context providers
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ App.jsx                 # Main application component
β”‚   β”‚   β”œβ”€β”€ App.css                 # App-specific styles
β”‚   β”‚   β”œβ”€β”€ main.jsx                # React DOM entry point
β”‚   β”‚   └── index.css               # Global styles
β”‚   β”‚
β”‚   β”œβ”€β”€ index.html                  # HTML template
β”‚   β”œβ”€β”€ vite.config.js             # Vite configuration
β”‚   β”œβ”€β”€ package.json               # Frontend dependencies
β”‚   └── README.md                   # Frontend documentation
β”‚
β”œβ”€β”€ πŸ“‚ assets/                      # Project assets
β”‚   └── πŸ“‚ logo/                    # Logo files
β”‚
β”œβ”€β”€ .env                           # Environment variables
└── README.md                      # Project documentation

πŸš€ Getting Started

πŸ“‹ Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (local installation or MongoDB Atlas)
  • npm or yarn package manager
  • Git for version control

⚑ Quick Setup

  1. πŸ“₯ Clone the repository:
    git clone https://github.com/CosmicRick/mern_stack_project.git
    cd mern_stack_project

πŸ”§ Backend Setup

  1. πŸ“‚ Navigate to backend directory:

    cd backend
  2. πŸ“¦ Install dependencies:

    npm install
  3. βš™οΈ Configure environment variables:

    Create a .env file in the backend/ directory:

    PORT=8000
    MONGO_URI=your_mongodb_connection_string
    SECRET_KEY=your_jwt_secret_key
    NODE_ENV=development
    
    # Optional AI Integration
    AI_JOB_SEARCH_API=your_ai_api_endpoint
    AI_COMPANY_SEARCH_URL=your_ai_company_search_endpoint
    AI_API_KEY=your_ai_api_key
  4. πŸš€ Start the backend server:

    npm start

    Backend will run on http://localhost:8000

🎨 Frontend Setup

  1. πŸ“‚ Navigate to frontend directory:

    cd ../frontend
  2. πŸ“¦ Install frontend dependencies:

    npm install
  3. πŸš€ Start the development server:

    npm run dev

    Frontend will run on http://localhost:3000

🎯 Quick Start Commands

# Start both servers concurrently (from project root)
npm run dev:all          # If you have concurrently setup

# Or start them separately:
# Terminal 1 - Backend
cd backend && npm start

# Terminal 2 - Frontend
cd frontend && npm run dev

User Endpoints

  • POST /api/users/register β€” Register a new user
  • POST /api/users/login β€” Authenticate and receive JWT token
  • POST /api/users/logout β€” End user session
  • PUT /api/users/profile/:userId β€” Update user profile
  • GET /api/users/profile/:userId β€” Fetch user profile
  • POST /api/users/analyze-resume/:userId β€” AI-based resume analysis (generates tags and role suggestions)

Job Endpoints

  • POST /api/jobs/create β€” Create a job posting (auth required)
  • GET /api/jobs/all β€” Retrieve all jobs (with filtering)
  • GET /api/jobs/search β€” Search jobs by title or tags
  • GET /api/jobs/:jobId β€” Get job details
  • PUT /api/jobs/:jobId β€” Update job posting (auth required)
  • DELETE /api/jobs/:jobId β€” Delete job posting (auth required)
  • POST /api/jobs/smart-search β€” AI-powered job recommendations/search

Company Endpoints

  • POST /api/companies β€” Register a new company
  • GET /api/companies β€” List all companies (supports industry filter)
  • GET /api/companies/search β€” Search companies by name
  • POST /api/companies/ai-search β€” AI-powered company discovery

Application Endpoints

  • POST /api/applications/apply/:jobId β€” Apply to a job (auth required)
  • GET /api/applications/my-applications β€” View user’s job applications
  • GET /api/applications/all β€” (Admin) View all applications
  • PUT /api/applications/status/:applicationId β€” (Admin) Update application status
  • POST /api/applications/ai-search β€” AI-powered job matching

For a complete overview of all API endpoints, consult the controller and model files in the backend/ directory.


Contributing

Contributions are highly encouraged! To get involved, please fork this repository and submit a pull request for review.

Development workflow:

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

License


πŸ“„ License

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

πŸ“œ What this means:

  • βœ… Commercial use - Use this project for commercial purposes
  • βœ… Modification - Modify and adapt the code
  • βœ… Distribution - Distribute original or modified versions
  • βœ… Private use - Use for personal/private projects
  • ❗ Attribution required - Give credit to original authors

πŸ‘₯ Authors & Contributors

πŸ—οΈ Core Development Team

CosmicRick
CosmicRick

Full-Stack Developer
Sayandip Naskar
Sayandip Naskar

Full-Stack Developer
Sourish Mallick
Sourish Mallick

Full-Stack Developer

🀝 How to Become a Contributor

We welcome contributions! Check out our Contributing Guidelines above to get started.


πŸ“ž Support & Contact


πŸ™ Acknowledgments

  • React Team for the amazing React library
  • MongoDB for the robust database solution
  • Express.js for the web framework
  • Vite for the lightning-fast build tool
  • Open Source Community for inspiration and tools

⭐ Show Your Support

If this project helped you, please consider giving it a ⭐ star on GitHub!

Made with ❀️ by the MERN Stack Team

⬆ Back to Top

About

MERN Stack Job Portal A full-featured job portal web application built with the MERN stack (MongoDB, Express.js, React.js, Node.js) that connects job seekers with employers in a seamless, user-friendly platform.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •