Skip to content

REST API for job postings with Spring Boot, PostgreSQL, Docker, JWT authentication, and Swagger documentation.

Notifications You must be signed in to change notification settings

th310rd/jobboardapi

Repository files navigation

JobBoard API

JobBoardAPI is a REST API for managing job postings and users.
It is built with Java 17 + Spring Boot + PostgreSQL and containerized with Docker.


📌 Features

  • User registration and authentication (JWT tokens)
  • CRUD operations for job postings (create, read, update, delete)
  • Search and filter jobs (by title, company, etc.)
  • User roles (e.g., job_seeker / employer)
  • Centralized error handling (GlobalExceptionHandler)

🛠 Tech Stack

  • Java 17, Spring Boot (Web, Security, Data JPA)
  • PostgreSQL (via JPA/Hibernate)
  • Docker & docker-compose
  • JUnit 5 + Mockito (testing)
  • Swagger / OpenAPI (API documentation)

🚀 Installation & Run

1. Clone the project

git clone https://github.com/th310rd/jobboardapi.git
cd jobboardapi

2. Run with Docker

docker-compose up --build

3. Run locally(without docker)

mvn spring-boot:run

📖 API Endpoints (examples)

Authentication

POST /auth/register   # register a new user
POST /auth/login      # login (retrieve JWT token)

Jobs

GET    /jobs          # get list of jobs
GET    /jobs/{id}     # get job by ID
POST   /jobs          # create a new job
PUT    /jobs/{id}     # update a job
DELETE /jobs/{id}     # delete a job

🧪 Testing

Run tests

mvn test

📚 API Documentation

After starting the application, open:

📂 Project Structure

src/
 └── main/java/com/jba/jobboardapi
     ├── auth/         # authentication and JWT
     ├── config/       # Spring configuration
     ├── controller/   # REST controllers
     ├── dtos/         # DTO classes
     ├── exceptions/   # error handling
     ├── model/        # JPA entities
     ├── repository/   # Spring Data JPA repositories
     ├── service/      # business logic
     └── user/         # user management

📷 Screenshots (Basic Usage)

User Registration and Login (as Employer)

img.png

Creating Job

img_1.png

User Registration(as Job_Seeker)

img_2.png

Login as Job_Seeker

img_3.png

Applying to Job (only Job_Seeker)

img_4.png

Checking Applicants (only Employer)

img_5.png

👤 Author

Haydaraliyev Nurmuhammad

🔗 github

About

REST API for job postings with Spring Boot, PostgreSQL, Docker, JWT authentication, and Swagger documentation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages