Skip to content

Awvyyy/JobTracker-API

Repository files navigation

JobTracker API

Backend API project for tracking job applications, built with Java 17, Spring Boot, PostgreSQL, Flyway, Docker Compose and OpenAPI.

The project is focused on practicing backend development fundamentals: application setup, database configuration, migrations, API documentation, security foundations and automated testing.

Status: work in progress. The repository currently contains the project setup, database configuration and Spring Boot test foundation.


Tech Stack

  • Java 17
  • Spring Boot
  • Spring Web MVC
  • Spring Data JPA
  • Spring Security
  • PostgreSQL
  • Flyway
  • Docker Compose
  • OpenAPI / Swagger UI
  • JUnit 5
  • Gradle

Project Goals

The goal of this project is to build a backend service for managing job applications.

Planned core functionality:

  • Create and manage job applications
  • Store company, position, status and application dates
  • Track application progress
  • Add notes for each application
  • Filter applications by status
  • Provide API documentation through OpenAPI
  • Prepare a clean backend foundation for future authentication and testing

Current Features

  • Spring Boot project structure
  • Gradle-based build
  • PostgreSQL configuration
  • Docker Compose setup for local PostgreSQL
  • Flyway dependency for database migrations
  • Spring Security foundation
  • OpenAPI dependency for API documentation
  • Basic Spring Boot context test

Getting Started

Prerequisites

Make sure you have installed:

  • Java 17+
  • Docker and Docker Compose
  • Git

Run Locally

Clone the repository:

git clone https://github.com/Awvyyy/JobTracker-API.git
cd JobTracker-API

Start PostgreSQL:

docker compose up -d

Run the application:

./gradlew bootRun

On Windows:

gradlew.bat bootRun

Run Tests

./gradlew test

On Windows:

gradlew.bat test

Database

The local PostgreSQL container uses the following default configuration:

Database: jobtracker
Username: jobtracker
Password: jobtracker
Port: 5433

Test profile configuration uses:

Database: jobtracker_test
Username: jobtracker
Password: jobtracker

API Documentation

OpenAPI / Swagger UI dependency is included in the project.

After the application is running, API documentation will be available at:

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

Suggested Future Improvements

  • Add domain entities for job applications
  • Add REST controllers and DTOs
  • Add request validation
  • Add global error handling
  • Add Flyway migration scripts
  • Add integration tests
  • Add authentication and authorization
  • Add pagination and filtering
  • Add CI workflow with GitHub Actions

Author

Mihhail Osipchik

About

Job tracking backend API built with Spring Boot, PostgreSQL, Flyway, Docker Compose and OpenAPI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages