Skip to content

Repository files navigation

🚀 WeHire - Full Stack Job Portal

A modern, production-ready Job Portal built with Spring Boot, React, and PostgreSQL. The application allows users to browse jobs, apply for positions, and manage job postings through a secure, scalable architecture. It is fully containerized using Docker and deployment-ready with Kubernetes.


✨ Features

  • 🔐 JWT Authentication & Authorization
  • 👤 Role-Based Access Control (Admin & User)
  • 📋 Create, Update, Delete & Search Jobs
  • 🔍 Advanced Filtering & Pagination
  • 📝 Apply for Jobs
  • 📂 Resume Upload Support
  • ✅ Input Validation
  • ⚠️ Global Exception Handling
  • 🐳 Dockerized Frontend & Backend
  • ☸️ Kubernetes Deployment Manifests
  • 🗄️ PostgreSQL Database
  • 🌐 RESTful APIs

🛠️ Tech Stack

Backend

  • Java 21
  • Spring Boot
  • Spring Security
  • Spring Data JPA
  • Hibernate
  • PostgreSQL
  • JWT
  • Maven
  • JUnit 5
  • Mockito
  • Spring Boot Test
  • MockMvc

Frontend

  • React
  • Vite
  • Axios
  • CSS

DevOps

  • Docker
  • Docker Compose
  • Kubernetes
  • Nginx
  • Terraform
  • Helm

📁 Project Structure

WeHire-Fullstack
│
├── jobapp/                # Spring Boot Backend
├── wehire-frontend/       # React Frontend
├── k8s/                   # Kubernetes Manifests
├── docker-compose.yml
└── README.md

⚙️ Getting Started

Clone the Repository

git clone https://github.com/<your-username>/WeHire-Fullstack.git
cd WeHire-Fullstack

Testing

The backend includes automated tests using JUnit 5, Mockito, and Spring Boot Test.

Test Coverage

The project currently covers:

  • Service layer unit testing
  • Controller layer testing
  • Business logic validation
  • Exception handling scenarios
  • Authorization and ownership checks

Running Tests

To run all backend tests:

cd jobapp

mvn clean test

🐳 Run with Docker

docker compose up --build

Application URLs

Service URL
Frontend http://localhost:5173
Backend http://localhost:8080

☸️ Kubernetes Deployment

Apply the Kubernetes manifests:

kubectl apply -f k8s/

Check resources:

kubectl get all

Helm

Helm charts are used for Kubernetes deployments.

Chart Structure

wehire-chart/
├── Chart.yaml
├── values.yaml
├── templates/
│   ├── backend-configmap.yaml
│   ├── backend-deployment.yaml
│   ├── backend-secret.yaml
│   ├── backend-service.yaml
│   ├── frontend-deployment.yaml
│   ├── frontend-service.yaml
│   ├── postgres-deployment.yaml
│   ├── postgres-pvc.yaml
│   ├── postgres-secret.yaml
│   └── postgres-service.yaml
└── charts/

🔐 Authentication

The application uses:

  • JWT Access Tokens
  • Refresh Tokens
  • BCrypt Password Encryption
  • Spring Security

📦 API Features

  • User Registration
  • User Login
  • Refresh Token
  • CRUD Job APIs
  • Search Jobs
  • Apply for Jobs
  • File Upload
  • Validation
  • Exception Handling

CI Pipeline

GitHub Actions automatically runs on every push.

Pipeline:

Git Push | | GitHub Actions | | Backend:

  • Maven build
  • Docker image build
  • Docker Hub push

Frontend:

  • npm build
  • Docker image build
  • Docker Hub push

👨‍💻 Author

Karan Negi


About

A production-ready full-stack job portal built with Spring Boot, React, PostgreSQL, Docker, and Kubernetes. Features JWT authentication, role-based access, REST APIs, containerized deployment, and cloud-ready infrastructure.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages