Current Projects

Financial Accounting System

Enterprise-grade financial accounting platform with Event Sourcing for banking operations, JWT-secured multi-tenant access, and automatic ECB currency integration. Modular monolith split into Core, Banking and Security modules, running in production with a live web frontend.

Java 21 Spring Boot PostgreSQL 17 Event Sourcing Spring Security (JWT) Resilience4j Testcontainers Docker

Core Module:

  • Automatic ECB integration — daily sync at 16:05 CET
  • 190k+ exchange rates — historical data since the introduction of the EUR
  • 40+ currencies, ISO 4217 compliant
  • Organizations, countries, counterparties and accounting policies

Banking Module:

  • Event Sourcing — immutable, append-only transaction audit trail
  • Bank receipts and payments — 10+ transaction types each
  • Document lifecycle: DRAFT → POST → UNPOST
  • Balance and turnover reports with filters
  • Balance snapshots with validity tracking and auto-invalidation

Security Module:

  • JWT authentication (HMAC-SHA256) — 15-minute access tokens, 7-day refresh tokens with rotation
  • Role-based access control: ADMIN, USER, GUEST
  • Account lockout — 5 failed attempts trigger a 30-minute lock
  • Rate limiting via Resilience4j — 5 requests per 60s on auth endpoints
  • Refresh tokens in HttpOnly SameSite=Strict cookies, with a token blacklist for immediate logout
  • Security audit logging and a multi-tenancy foundation binding users to organizations

Quality:

  • 1120+ test methods across 67 test files
  • 99.7% line and 97.5% branch coverage, gated in CI at 80%/75% by JaCoCo
  • N+1 prevention with JOIN FETCH — see the case study
  • Integration tests on real PostgreSQL 17 via Testcontainers

Production Infrastructure (VPS):

  • Docker Compose, nginx reverse proxy, SSL/TLS (Let's Encrypt)
  • CI/CD: GitHub Actions — automated build, test, Docker push, deploy
  • Monitoring: health checks, 99.5%+ uptime

Live Application | Live API & Swagger | Exchange Rates Demo | GitHub

Booking System

Booking and reservation API with real-time availability checking, double-booking prevention, a timed payment window, and Redis-cached statistics.

Java 21 Spring Boot 3.5 PostgreSQL 17 Redis 7 Gradle Testcontainers Docker AWS

Key Features:

  • 15-minute payment window — a scheduled job automatically cancels unpaid bookings
  • Double-booking prevention for overlapping reservations
  • Advanced search with real-time availability, built on the Specification pattern for dynamic queries
  • Redis caching with automatic invalidation on data changes
  • Event logging — an audit trail for every state change

Testing Strategy:

  • Two-tier approach: fast H2 in-memory unit and repository tests
  • Production-like end-to-end tests against PostgreSQL 17 via Testcontainers
  • Coverage reported with JaCoCo

Production Infrastructure (AWS):

  • AWS: EC2 (Spring Boot app), RDS PostgreSQL 17, S3 backups, Security Groups
  • CI/CD: GitHub Actions — automated build, test, Docker push, deploy to EC2

GitHub

Time Tracking System

Enterprise-grade employee time tracking system with check-in/check-out logging, real-time presence monitoring, and automated timesheet calculation.

Java 21 Spring Boot 3.x PostgreSQL REST API Docker nginx

Features:

  • Real-time employee presence tracking
  • Automated timesheet calculation with daily breakdown
  • Check-in/check-out logging system
  • RESTful API with OpenAPI documentation

Production Infrastructure (VPS):

  • VPS: Docker Compose, nginx reverse proxy, SSL/TLS (Let's Encrypt)
  • CI/CD: GitHub Actions — automated build, test, deploy
  • Live API: Swagger UI

View Live Demo | API Documentation | GitHub

Production Infrastructure

Centralized, Docker-based infrastructure that hosts every production backend: one shared PostgreSQL instance, an nginx reverse proxy, and automated SSL certificate management serving multiple applications behind a single entry point.

Docker Compose nginx PostgreSQL Certbot Let's Encrypt Bash GitHub Actions

What it runs:

  • nginx reverse proxy with per-application configs — routes api.tarasantoniuk.com to the Finance app and timetracking.tarasantoniuk.com to the Time Tracking app
  • Shared PostgreSQL container with a database initialization script and isolated per-application credentials
  • Certbot with a webroot challenge for issuing and auto-renewing SSL certificates
  • Environment-driven secrets kept out of version control, with a checked-in template
  • Centralized nginx access and error logs

GitHub

Random User API

Spring Boot proxy service over an external REST API, built as a working reference for resilience patterns — every outbound call is wrapped in a Retry and a Circuit Breaker, with the breaker's state exposed through Actuator.

Java 21 Spring Boot 3.5 RestClient Resilience4j Bean Validation SpringDoc OpenAPI Actuator

Resilience Configuration:

  • Retry — up to 3 attempts with a 1s delay on server errors and connectivity failures
  • Circuit Breaker — opens at a 50% failure rate over a sliding window of 10 calls, then waits 30s before half-open
  • Breaker health published at /actuator/health
  • Configurable connect and read timeouts, and a request size cap

Read the Article | GitHub

MCP Knowledge Base (GraphRAG)

AI-powered code intelligence system that indexes Java codebases and exposes structural and semantic knowledge to Claude Code via the Model Context Protocol (MCP). Combines a graph database (Neo4j) for code structure with a vector database (ChromaDB) for semantic search, implementing the GraphRAG pattern.

Java 21 Spring Boot Neo4j ChromaDB Ollama MCP (JSON-RPC 2.0) Docker Compose

Architecture:

  • mcp-indexer — scans Java source code via AST parsing (JavaParser), stores the class/method graph in Neo4j and semantic embeddings in ChromaDB
  • mcp-bridge — MCP server exposing 5 tools to Claude Code: class search, dependency graph, package browsing, semantic search, and GraphRAG (vector + graph enrichment)

Key Features:

  • GraphRAG: semantic search enriched with the dependency graph from Neo4j
  • Neo4j graph schema: classes, methods, IMPORTS/EXTENDS/IMPLEMENTS relationships
  • Vector embeddings via Ollama (nomic-embed-text) for natural language code search
  • Dual transport: HTTP and SSE (Server-Sent Events) with session management
  • Extensible parser interface for multi-language support

Private repository — available on request.

Entity Generator

JPA entity generator for PostgreSQL databases. Automates creation of Java entities from existing database schemas.

Java JPA PostgreSQL JDBC

View on GitHub

All Projects

Explore all my projects and contributions on my GitHub profile:

https://github.com/TarasAntoniuk