JobBoardAPI is a REST API for managing job postings and users.
It is built with Java 17 + Spring Boot + PostgreSQL and containerized with Docker.
- 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)
- Java 17, Spring Boot (Web, Security, Data JPA)
- PostgreSQL (via JPA/Hibernate)
- Docker & docker-compose
- JUnit 5 + Mockito (testing)
- Swagger / OpenAPI (API documentation)
git clone https://github.com/th310rd/jobboardapi.git
cd jobboardapidocker-compose up --buildmvn spring-boot:runPOST /auth/register # register a new user
POST /auth/login # login (retrieve JWT token)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 jobmvn test- Swagger UI: http://localhost:8080/swagger-ui.html
- OpenAPI JSON: http://localhost:8080/v3/api-docs
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




