Skip to content

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

 
 
 

Contributors

Languages