Skip to content

Latest commit

 

History

History
163 lines (111 loc) · 2.91 KB

File metadata and controls

163 lines (111 loc) · 2.91 KB

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