Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

79 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’Ό KaajKhojo

Smart Job Portal & Recruitment Platform

React Node.js Express.js MongoDB Socket.IO WebRTC JWT License

A modern MERN Stack Recruitment Platform that connects job seekers, recruiters, and administrators through secure authentication, real-time messaging, video interviews, and intelligent job management.

πŸš€ Overview

KaajKhojo is a full-stack recruitment platform developed using the MERN Stack to simplify and modernize the hiring process. The platform enables recruiters to post job openings, manage applications, and conduct interviews, while job seekers can create professional profiles, apply for jobs, and communicate directly with recruiters.

The application integrates Socket.IO for real-time messaging and WebRTC for browser-based video interviews, creating a seamless recruitment experience.


πŸ’‘ Project Motivation

Challenge Solution
Delayed recruiter–candidate communication πŸ’¬ Real-time messaging
Disconnected interview workflow πŸŽ₯ Integrated WebRTC video interviews
Weak authentication mechanisms πŸ” Secure JWT-based authentication
Scattered recruitment process πŸ“‹ Centralized job management
Limited role management πŸ‘₯ Role-based dashboards
Scalability concerns ☁️ Cloud-ready architecture

🎯 Objectives

Objective Description
πŸ“Œ Centralized Platform Build a unified recruitment system
πŸ’¬ Better Communication Improve recruiter and candidate interaction
πŸ” Secure Authentication Enable authentication and authorization
⚑ Scalable Architecture Develop a responsive, scalable application
⏱ Faster Hiring Reduce recruitment turnaround time
😊 Better User Experience Deliver a modern and intuitive interface

✨ Features

πŸ‘€ Job Seeker 🏒 Recruiter πŸ›‘ Admin
βœ… User Registration & Login βœ… Recruiter Registration βœ… Dashboard
βœ… Profile Management βœ… Company Profile Management βœ… Manage Users
βœ… Resume Upload βœ… Create Job Listings βœ… Manage Recruiters
βœ… Browse Jobs βœ… Edit/Delete Jobs βœ… Moderate Job Posts
βœ… Search & Filter Jobs βœ… View Applicants βœ… Manage Applications
βœ… Apply for Jobs βœ… Shortlist Candidates βœ… Platform Monitoring
βœ… Application Tracking βœ… Chat with Candidates
βœ… Real-Time Chat βœ… Conduct Video Interviews
βœ… Video Interviews

πŸ’¬ Real-Time Communication

Feature Description
πŸ’¬ Socket.IO Live Chat Instant recruiter–candidate messaging
πŸŽ₯ WebRTC Video Calling Browser-based video interviews
πŸ”’ Secure Peer-to-Peer Communication Encrypted direct communication
πŸ”” Instant Notifications Real-time updates and alerts
βœ… Chat After Application Approval Messaging enabled after recruiter approval

πŸ›  Tech Stack

Category Technologies
Frontend React HTML5 CSS3 JavaScript
Backend Node.js Express.js
Database MongoDB Mongoose MongoDB Atlas
Authentication JWT Express Session
Real-Time Socket.IO WebRTC
File Upload Multer
Email Service Nodemailer
Development Tools VS Code Postman
Version Control Git GitHub

πŸ—οΈ System Architecture

KaajKhojo System Architecture


πŸ“ Project Structure

KaajKhojo/

β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ middleware/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ socket/
β”‚   β”œβ”€β”€ uploads/
β”‚   β”œβ”€β”€ server.js
β”‚   └── .env
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   └── utils/
β”‚   └── package.json
β”‚
β”œβ”€β”€ package.json
β”œβ”€β”€ README.md
└── .gitignore

βš™ Installation

Clone Repository

git clone https://github.com/jyoti1900/KaajKhojo.git

cd KaajKhojo

Install Backend

cd backend

npm install

Install Frontend

cd ../frontend

npm install

πŸ”‘ Environment Variables

Create a .env file inside the backend directory.

# Server
PORT=8080
NODE_ENV=development

# Database
MONGO_URI=your_mongodb_connection_string

# Authentication
SESSION_SECRET=your_session_secret
JWT_SECRET=your_jwt_secret

# Admin
ADMIN_EMAIL=admin@kaajkhojo.com
ADMIN_PASSWORD=your_admin_password

# SMTP
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your_email@gmail.com
EMAIL_PASSWORD=your_app_password

# Google OAuth
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

GOOGLE_SIGNUP_CALLBACK=http://localhost:8080/api/v1/auth/google/signup/callback
GOOGLE_LOGIN_CALLBACK=http://localhost:8080/api/v1/auth/google/login/callback

# Frontend
CLIENT_URL=http://localhost:3000

β–Ά Running Locally

Backend

cd backend

npm start

Frontend

cd frontend

npm start

Application runs at:

Frontend : http://localhost:3000

Backend : http://localhost:8080

πŸ” Authentication & Security

Security Feature Description
πŸ”‘ JWT Authentication Secure user authentication using JSON Web Tokens
πŸ›‘ Express Sessions Session management for authenticated users
πŸ‘₯ Role-Based Authorization Access control for Admin, Recruiter, and Job Seeker
πŸ”’ Protected API Routes Restricts unauthorized API access
πŸ” Password Hashing Encrypts user passwords before storage
βœ… Input Validation Validates incoming user data
πŸ“‚ Secure File Uploads Safely uploads resumes and documents
βš™ Environment Variable Protection Secures sensitive application credentials

πŸ“¦ API Modules

Module Description
πŸ” Authentication User registration, login, JWT, and session management
πŸ‘€ Users User profile and account management
🏒 Recruiters Recruiter profiles and company management
πŸ’Ό Jobs Job creation, updates, and listings
πŸ“„ Applications Job application submission and tracking
πŸ“Ž Resume Upload Resume upload and document management
πŸ’¬ Chat Real-time recruiter–candidate messaging
πŸŽ₯ Video Interview WebRTC-based online interviews
πŸ“Š Admin Dashboard Platform monitoring and management

⚑ Performance Optimizations

Optimization Benefit
πŸ— Modular MVC Architecture Improves maintainability and scalability
πŸ”— RESTful API Design Efficient and standardized API communication
πŸƒ MongoDB Query Optimization Faster database performance
⚑ Efficient Socket.IO Handling Low-latency real-time communication
πŸš€ Lazy Component Loading Faster initial page load
βš› Optimized React Rendering Reduces unnecessary re-renders
☁️ Scalable Backend Structure Supports increasing user traffic

πŸ§ͺ Experimental Results

Result Impact
πŸ’¬ Faster Recruiter Response Improved communication through real-time chat
πŸŽ₯ Integrated Video Interviews Reduced reliance on third-party meeting tools
πŸ“ˆ Higher Candidate Engagement Better interaction with recruiters
☁️ Scalable Architecture Supports multiple concurrent users
πŸ“‹ Centralized Workflow Simplified recruitment management

🚧 Challenges Faced

Challenge Solution
πŸŽ₯ WebRTC Peer-to-Peer Communication Implemented browser-based video calling
πŸ”„ Socket.IO Synchronization Managed real-time communication across users
πŸ” Role-Based Route Protection Secured APIs based on user roles
πŸ“Ž Secure Resume Uploads Implemented protected file upload handling
πŸ”— Workflow Integration Connected chat and interviews with job applications

πŸš€ Future Enhancements

Feature Description
πŸ€– AI Job Recommendation Personalized job suggestions
πŸ“§ Email Notifications Automated email updates
πŸ”” Push Notifications Real-time browser notifications
πŸ“Š Analytics Dashboard Recruitment insights and reporting
πŸ“… Interview Scheduling Built-in interview planner
🐳 Docker & Kubernetes Container orchestration and scalability
βš™ CI/CD Pipeline Automated build, testing, and deployment

πŸ‘¨β€πŸ’» Development Team

Team Member Contribution
Jyotipriya Das Project Lead, Backend Development, API Design, Database Architecture
Sayan Pal Frontend Development, Testing, Debugging
Indrajit Sahu User & Recruiter Frontend Modules
Hasanoor Zaman Admin Dashboard Development

🀝 Contributing

Contributions are welcome!

  1. Fork the repository

  2. Create a feature branch

git checkout -b feature/new-feature
  1. Commit your changes
git commit -m "Add new feature"
  1. Push to GitHub
git push origin feature/new-feature
  1. Open a Pull Request

πŸ“œ Conclusion

KaajKhojo demonstrates the development of a modern recruitment platform that combines secure authentication, intelligent job management, real-time communication, and browser-based video interviews into a unified ecosystem. Its modular architecture, scalable backend, and responsive frontend make it suitable for real-world recruitment workflows and future enterprise enhancements.


πŸ“„ License

This project is licensed under the MIT License.


⭐ If you found this project useful, consider giving it a Star on GitHub!

About

A full-stack Smart Job Portal built with the MERN stack, featuring JWT authentication, recruiter dashboards, application tracking, real-time chat with Socket.io, and WebRTC-powered video interviews.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages