Skip to content

Job Portal App is a full-stack web application built with Java Spring Boot (backend), ReactJS (frontend), and MongoDB (database). It enables users to browse, search, and create job posts. Key features include full CRUD operations, keyword-based search, and pagination. The app showcases a modular, scalable, and modern development approach.

Notifications You must be signed in to change notification settings

Mahmud-Alam/spring-boot-job-portal-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

43 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ผ Job Portal App - Java Spring Boot with REST APIs, ReactJS, MongoDB

๐Ÿ“Œ Project Overview

Job Portal App is a simple full-stack web application designed to help users browse job listings and create new job posts. It is built using Java Spring Boot for the backend, ReactJS for the frontend, and MongoDB for data persistence.

This project demonstrates how to create a modular and scalable application using a modern technology stack, implementing essential CRUD operations with pagination and keyword-based searching.


๐Ÿš€ Features

  • ๐Ÿ” Job Feed Page: View all available job posts fetched from a local MongoDB database.
  • ๐Ÿ”Ž Search Functionality: Filter job posts based on keywords like Java, Python, etc.
  • ๐Ÿ“„ Pagination: Display 6 jobs per page with clickable page numbers for easy navigation.
  • ๐Ÿ“ Create Job Post: Submit new job listings through a form and store them in MongoDB.

๐Ÿ› ๏ธ Tech Stack

Backend

Frontend

  • ReactJS
  • Axios for HTTP requests
  • React Router for navigation
  • TailwindCSS for styling

Database


๐Ÿ“ธ Project Screenshots

๐Ÿ  Home Page

The Landing Page of the Job Portal Platform. Home Page

๐Ÿ“ Job Creating Form Page

POST - Create a new job Job Creating Form Page

๐Ÿ’ผ Job Listings

GET - All job posts Listing here. Job Listings

๐Ÿ” Search Job Post by Keyword

GET - Search job listings by entering a keyword related to title, description, or company.
Search Job

๐Ÿงช Swagger UI

A developer-friendly interface to test and explore all RESTful APIs.
Access via: /swagger-ui.html Swagger UI

โŒ 404 - Not Found Page

Displays a user-friendly message when an invalid URL is visited.
404 Page


๐Ÿ—๏ธ Project Structure

๐Ÿ”™ Backend (Spring Boot)

job-portal-backend/
โ”œโ”€โ”€ src
โ”‚   โ”œโ”€โ”€ main
โ”‚   โ”‚   โ”œโ”€โ”€ java
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ com.mahmudalam.jobportal.spring_boot_job_portal_app
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ controller
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ interfaces
โ”‚   โ”‚   โ”‚       โ”œโ”€โ”€ model
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ SpringBootJobPortalAppApplication.java
โ”‚   โ”‚   โ””โ”€โ”€ resources
โ”‚   โ”‚       โ”œโ”€โ”€ application.properties
โ”‚   โ”‚       โ”œโ”€โ”€ static/
โ”‚   โ”‚       โ””โ”€โ”€ templates/
โ”‚   โ””โ”€โ”€ test
โ”‚       โ””โ”€โ”€ java
โ”‚           โ””โ”€โ”€ com.mahmudalam.jobportal.spring_boot_job_portal_app
โ”œโ”€โ”€ .env
โ””โ”€โ”€ pom.xml

๐ŸŒ Frontend (ReactJS)

job-portal-frontend/
 โ”œโ”€โ”€ public/
 โ”œโ”€โ”€ src/
 โ”‚   โ”œโ”€โ”€ api/
 โ”‚   โ”œโ”€โ”€ components/
 โ”‚   โ”œโ”€โ”€ pages/
 โ”‚   โ”œโ”€โ”€ App.jsx
 โ”‚   โ””โ”€โ”€ main.jsx 
 โ”œโ”€โ”€ package.json


๐Ÿ”ง Installation & Setup

๐Ÿ“Œ Prerequisites

Ensure you have the following installed:

  • Java 17+
  • Node.js & npm
  • MongoDB installed locally or access to MongoDB Atlas

๐Ÿ”ฝ Backend Setup

git clone https://github.com/Mahmud-Alam/spring-boot-job-portal-app.git
cd spring-boot-job-portal-app
cd backend

The Spring Boot app will start at http://localhost:8080

๐Ÿงช Configure Environment

Edit application.properties:

spring.application.name=spring-boot-job-portal-app
spring.data.mongodb.uri=mongodb://localhost:27017/job_portal_db
spring.data.mongodb.database=job_portal_db

๐ŸŒ Frontend Setup

cd frontend
npm install
npm run dev

The React app will start at http://localhost:5173


๐Ÿ“˜ API Documentation

Once the application is running, Swagger UI can be accessed at:

http://localhost:8080/swagger-ui.html

It includes all endpoints, models, and schemas.


๐Ÿงช Testing

Run unit and integration tests using:

# Maven
mvn test

# Gradle
./gradlew test

๐Ÿ“œ API Endpoints

GET /job-posts

GET /job-posts/{text}

  • Fetch all jobs with optional keyword filtering and pagination.

  • Supports query parameters:

    • keyword: Search term
    • page: Page number (starting from 1)
    • limit: Number of jobs per page (default: 6)

POST /create-job-post

  • Create a new job post
  • Accepts JSON payload:
{
  "profile": "Java Spring Boot Developer",
  "desc": "We are hiring Java Spring Boot developers!",
  "exp": 2,
  "techs": ["Java", "Spring Boot"]
}

๐Ÿ”ฎ Future Improvements

  • Add authentication (JWT-based)
  • Enable role-based access (Job Seeker vs Employer)
  • Add job details page
  • Improve form validation and error handling
  • Deploy on cloud (Render, vercel, or Heroku)

๐Ÿค Contributing

Contributions are welcome! Please open an issue first to discuss what you would like to change.

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

๐Ÿ† Author

Mahmud Alam


๐ŸŽ‰ Acknowledgments

  • Inspired by Job Portal platforms.
  • Thanks to the Java Spring Boot Community for extensive documentation and support.

Happy coding! ๐Ÿš€

About

Job Portal App is a full-stack web application built with Java Spring Boot (backend), ReactJS (frontend), and MongoDB (database). It enables users to browse, search, and create job posts. Key features include full CRUD operations, keyword-based search, and pagination. The app showcases a modular, scalable, and modern development approach.

Topics

Resources

Stars

Watchers

Forks