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.
- Java 17
- Spring Boot
- Spring Web MVC
- Spring Data JPA
- Spring Security
- PostgreSQL
- Flyway
- Docker Compose
- OpenAPI / Swagger UI
- JUnit 5
- Gradle
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
- 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
Make sure you have installed:
- Java 17+
- Docker and Docker Compose
- Git
Clone the repository:
git clone https://github.com/Awvyyy/JobTracker-API.git
cd JobTracker-APIStart PostgreSQL:
docker compose up -dRun the application:
./gradlew bootRunOn Windows:
gradlew.bat bootRun./gradlew testOn Windows:
gradlew.bat testThe 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
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
- 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
Mihhail Osipchik
- GitHub: Awvyyy
- LinkedIn: Mihhail Osipchik