Skip to content

RajviDhameliya/JobLinker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Job Linker - Full Stack Job Portal

A modern job portal platform connecting students with recruiters. Built with React, Node.js, Express.js, and MongoDB.

πŸš€ Project Overview

Job Linker is a comprehensive full-stack job portal application that enables students to browse and apply for jobs while allowing recruiters to post job openings and manage applications. The platform features secure authentication, real-time application tracking, and an intuitive user interface.

✨ Features

For Students

  • πŸ” Browse and search jobs by title, description, or location
  • πŸ“„ View detailed job descriptions with company information
  • πŸ“ Apply to jobs with one-click application
  • πŸ“Š Track application status (pending, accepted, rejected)
  • πŸ‘€ Manage profile with bio, skills, resume, and profile photo

For Recruiters

  • 🏒 Create and manage company profiles
  • πŸ“‹ Post job openings with detailed descriptions
  • πŸ‘₯ View and manage job applicants
  • βœ… Accept or reject applications
  • πŸ“ˆ Dashboard with job statistics

πŸ› οΈ Technology Stack

Frontend

  • React 18 - UI library
  • Vite 5 - Build tool
  • React Router DOM 6 - Routing
  • Tailwind CSS 3 - Styling
  • Redux Toolkit - State management
  • Axios - HTTP client
  • Framer Motion - Animations

Backend

  • Node.js - Runtime environment
  • Express.js - Web framework
  • MongoDB - Database
  • Mongoose - ODM
  • JWT - Authentication
  • bcryptjs - Password hashing
  • Cloudinary - Image storage
  • Multer - File uploads

πŸ“‹ Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v16 or higher)
  • npm or yarn
  • MongoDB (local or MongoDB Atlas account)
  • Git

πŸ”§ Installation & Setup

1. Clone the Repository

git clone https://github.com/RajviDhameliya/JobLinker.git
cd Job_Linker

2. Backend Setup

cd backend
npm install

Create a .env file in the backend directory:

PORT=3000
MONGO_URI=your_mongodb_connection_string
SECRET_KEY=your_jwt_secret_key
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

Start the backend server:

npm run dev

The server will run on http://localhost:3000

3. Frontend Setup

cd frontend
npm install

Start the development server:

npm run dev

The frontend will run on http://localhost:5173

πŸ“ Project Structure

Job_Linker/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ controllers/      # Business logic
β”‚   β”‚   β”œβ”€β”€ user.controller.js
β”‚   β”‚   β”œβ”€β”€ job.controller.js
β”‚   β”‚   β”œβ”€β”€ company.controller.js
β”‚   β”‚   └── application.controller.js
β”‚   β”œβ”€β”€ models/           # Mongoose schemas
β”‚   β”‚   β”œβ”€β”€ user.model.js
β”‚   β”‚   β”œβ”€β”€ job.model.js
β”‚   β”‚   β”œβ”€β”€ company.model.js
β”‚   β”‚   └── application.model.js
β”‚   β”œβ”€β”€ routes/           # Express routes
β”‚   β”‚   β”œβ”€β”€ user.route.js
β”‚   β”‚   β”œβ”€β”€ job.route.js
β”‚   β”‚   β”œβ”€β”€ company.route.js
β”‚   β”‚   └── application.route.js
β”‚   β”œβ”€β”€ middlewares/      # Custom middleware
β”‚   β”‚   β”œβ”€β”€ isAuthenticated.js
β”‚   β”‚   └── mutler.js
β”‚   β”œβ”€β”€ utils/            # Utility functions
β”‚   β”‚   β”œβ”€β”€ db.js
β”‚   β”‚   β”œβ”€β”€ datauri.js
β”‚   β”‚   └── cloudinary.js
β”‚   β”œβ”€β”€ index.js          # Server entry point
β”‚   └── package.json
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/   # React components
β”‚   β”‚   β”‚   β”œβ”€β”€ admin/     # Admin components
β”‚   β”‚   β”‚   β”œβ”€β”€ auth/      # Auth components
β”‚   β”‚   β”‚   β”œβ”€β”€ shared/    # Shared components
β”‚   β”‚   β”‚   └── ui/        # UI components
β”‚   β”‚   β”œβ”€β”€ hooks/         # Custom hooks
β”‚   β”‚   β”œβ”€β”€ redux/         # Redux store
β”‚   β”‚   β”œβ”€β”€ utils/         # Utilities
β”‚   β”‚   β”œβ”€β”€ App.jsx        # Main app component
β”‚   β”‚   └── main.jsx       # Entry point
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”‚
└── README.md

πŸ”Œ API Endpoints

User Endpoints

  • POST /api/v1/user/register - Register new user
  • POST /api/v1/user/login - User login
  • GET /api/v1/user/logout - User logout
  • POST /api/v1/user/profile/update - Update user profile

Job Endpoints

  • POST /api/v1/job/post - Create new job (Recruiter only)
  • GET /api/v1/job/get - Get all jobs
  • GET /api/v1/job/get/:id - Get job by ID
  • GET /api/v1/job/getadminjobs - Get recruiter's jobs

Company Endpoints

  • POST /api/v1/company/register - Create company
  • GET /api/v1/company/get - Get all companies
  • GET /api/v1/company/get/:id - Get company by ID
  • PUT /api/v1/company/update/:id - Update company

Application Endpoints

  • GET /api/v1/application/apply/:id - Apply for a job
  • GET /api/v1/application/get - Get user's applied jobs
  • GET /api/v1/application/:id/applicants - Get applicants for a job
  • POST /api/v1/application/status/:id/update - Update application status

πŸ§ͺ Testing

Postman Collection

Import the Postman collection to test all API endpoints. Ensure you:

  1. Set up environment variables in Postman
  2. Login first to get authentication token
  3. Use the token in subsequent requests

Test Scenarios

  • User registration and login
  • Job creation and retrieval
  • Company management
  • Application submission and status updates

πŸš€ Deployment

Frontend (Vercel)

-- https://job-linker-lovat.vercel.app

Backend (Render)

-- https://joblinker-hb4r.onrender.com


Built with ❀️ by Rajvi Dhameliya

About

This project is a full-stack MERN Job Portal that enables students to search and apply for jobs while allowing recruiters to manage companies, job postings, and applicant workflows.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages