Skip to content

Latest commit

 

History

History
215 lines (146 loc) · 8.17 KB

File metadata and controls

215 lines (146 loc) · 8.17 KB

TalentBridge Portal

Node.js Version Express.js React Version Vite MongoDB Docker OpenAPI

TalentBridge is an advanced, full-stack recruiter-and-candidate matching portal. It streamlines job posting, candidate discovery, multi-stage application pipelines, and real-time communication.

  • Video for software visualization:

    YouTube


Table of Contents

  1. Core Features
  2. Tech Stack
  3. Images
  4. Architecture Overview
  5. Interactive API Docs (Swagger)
  6. Environment Configuration
  7. Setup & Installation
  8. API Management System

Core Features

Dual-Portal Roles (RBAC)

  • Candidates: Build profile, upload resumes, browse jobs with filters, submit applications, check application status history, and chat in real-time with recruiters.
  • Recruiters: Post/manage job listings, search candidates using robust filters, track applications, update candidate statuses, download resumes, and instantly initiate chat with applicants.

AI-Powered Resume Scoring

  • Integrated with Google's latest Gemini AI model (gemini-2.5-flash).
  • Automatically parses uploaded candidate PDF resumes upon application submission.
  • Scores the match profile from 0 to 100 against the job description and required skills.

Optimistic Concurrency Control & Audit Trails

  • Audit Trails: Every stage of an application (screening, interviewing, offered, hired, rejected) is logged in a persistent history log recording who, when, and why.

Real-Time Socket Notifications & Chat

  • Real-time notifications push application status updates instantly using Socket.IO.
  • Supports fully-featured, instantaneous 1:1 text chat sessions including technical OA links and interview invites.

Interactive Swagger OpenAPI

  • Fully self-documenting REST API with schema specifications and live "Try it out" capabilities.

Tech Stack

  • Frontend: React 19, Vite 8, React Router DOM v7, Axios, Socket.io-client.
  • Backend: Node.js, Express.js (v5), Mongoose, Socket.io, Multer, PDF-Parse, @google/genai SDK.
  • Database: MongoDB.
  • Containerization: Docker Compose (multi-container setup with hot-reloading).

Images

Visualization of the software - HomePage, Recruiter's POV, Candidate's POV:

  • HomePage:
Screenshot 2026-05-31 at 10 27 15 AM
  • Register your account:

    Screenshot 2026-05-31 at 10 27 37 AM
  • Recruiter Dashboard page:

    Screenshot 2026-05-31 at 10 27 53 AM
  • Recruiter- Post a job:

    Screenshot 2026-05-31 at 10 28 06 AM
  • Candidate search for Recruiters:

    Screenshot 2026-05-31 at 10 28 17 AM
  • Recruiter Profile page:

    Screenshot 2026-05-31 at 10 28 29 AM
  • Candidate Dashboard:

    Screenshot 2026-05-31 at 10 28 41 AM
  • Candidate Applications page:

    Screenshot 2026-05-31 at 10 28 55 AM
  • Candidate Profile page:

    Screenshot 2026-05-31 at 10 29 07 AM

Architecture Overview

graph TD
    Client[React Frontend - Port 5173] <-->|HTTP / Websockets| Server[Express Backend - Port 5000]
    Server <-->|dotenv| Env[.env Configuration]
    Server <-->|Mongoose ODM| DB[(MongoDB Database)]
    Server <-->|Google GenAI SDK| Gemini[Gemini 2.5 Flash API]
    Server <-->|Socket.IO| Realtime[Real-time Events & Live Chat]
    Server --->|Swagger UI| API_Docs[Interactive Docs /api-docs]
Loading

Interactive API Docs (Swagger)

The server exposes a production-ready interactive Swagger/OpenAPI 3.0 documentation portal. You can browse all endpoints, view detailed request/response schemas, and execute live calls (using JWT Bearer tokens).

  • API Docs URL: http://localhost:5000/api-docs

Environment Configuration

Backend Setup (server/.env)

Create a .env file in the server/ directory and configure the following variables:

# Server Port (Defaults to 5000)
PORT=5000

# MongoDB URI (Atlas cloud or local container)
MONGO_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/talentbridge

# JWT Secret (For signing authentication tokens)
JWT_SECRET=your_super_secure_random_key_here

# Google Gemini API Key (For AI resume match scoring)
GOOGLE_API_KEY=your_gemini_api_key_here

Docker compose Integration

To load your .env variables into the Docker services, ensure env_file is defined in your docker-compose.yml:

  server:
    env_file:
      - ./server/.env

Setup & Installation

Ensure you have Docker (or Node.js v20+ and MongoDB) installed.

Method A: Docker Compose (Recommended)

This runs the entire stack inside containers with hot-reloading enabled. Dependencies are isolated automatically.

  1. Ensure your backend environment file exists at ./server/.env (see config below).
  2. Start the multi-container stack:
    docker compose up -d
  3. The services will boot up:

To stop the containers:

docker compose down

Method B: Local Setup (Manual)

1. Install Dependencies

# Install server dependencies
cd server && npm install

# Install client dependencies
cd ../client && npm install

2. Run the Applications

Start the backend server:

cd server
npm start

Start the frontend application (in a new terminal):

cd client
npm run dev

API Management System

To keep standard API configurations clean, the frontend keeps a single source of truth for endpoints, avoiding hardcoded values scattered in code:

  • Endpoint Mapping: client/src/api.json contains all route configurations and HTTP methods.
  • Axios Provider: client/src/services/api.js exports the interceptor instance, handles JWT injection, and exposes typed functions for all endpoints.