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.
- ๐ 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.
- Java Spring Boot
- Spring Web (REST APIs)
- Spring Data MongoDB
- Swagger-UI
- Maven
- ReactJS
- Axios for HTTP requests
- React Router for navigation
- TailwindCSS for styling
- MongoDB (running locally)
The Landing Page of the Job Portal Platform.
GET
- All job posts Listing here.
GET
- Search job listings by entering a keyword related to title, description, or company.
A developer-friendly interface to test and explore all RESTful APIs.
Access via: /swagger-ui.html
Displays a user-friendly message when an invalid URL is visited.
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
job-portal-frontend/
โโโ public/
โโโ src/
โ โโโ api/
โ โโโ components/
โ โโโ pages/
โ โโโ App.jsx
โ โโโ main.jsx
โโโ package.json
Ensure you have the following installed:
- Java 17+
- Node.js & npm
- MongoDB installed locally or access to MongoDB Atlas
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
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
cd frontend
npm install
npm run dev
The React app will start at http://localhost:5173
Once the application is running, Swagger UI can be accessed at:
http://localhost:8080/swagger-ui.html
It includes all endpoints, models, and schemas.
Run unit and integration tests using:
# Maven
mvn test
# Gradle
./gradlew test
-
Fetch all jobs with optional keyword filtering and pagination.
-
Supports query parameters:
keyword
: Search termpage
: Page number (starting from 1)limit
: Number of jobs per page (default: 6)
- 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"]
}
- 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)
Contributions are welcome! Please open an issue first to discuss what you would like to change.
- Fork the project
- Create your feature branch (
git checkout -b feature/NewFeature
) - Commit your changes (
git commit -m 'Add some new Features'
) - Push to the branch (
git push origin feature/NewFeature
) - Open a Pull Request
Mahmud Alam
- ๐ Portfolio: Mahmud Alam
- ๐ง Email: mahmudalam.official@gmail.com
- ๐ GitHub: GitHub
- ๐ LinkedIn: LinkedIn
- Inspired by Job Portal platforms.
- Thanks to the Java Spring Boot Community for extensive documentation and support.