PROJECTS

Software Engineer (Career Transition)

Java & Backend Projects

Java projects evolving from console workflows into a packaged desktop application with persistence (SQLite), search/sort UX, unit tests, and packaging.

Back to Projects

More Java & backend work

This tracker is built in stages (1–5). Each stage adds a concrete feature: persistence, UI, database, tests, and packaging.

Job Application Tracker

A staged Java project that progresses from a console tracker to a packaged desktop application.

  • Stage 1: Console CRUD + status workflow + CSV export.
  • Stage 2: CSV load/save persistence.
  • Stage 3: Swing desktop UI (Add/Update/Delete + filter + CSV controls).
  • Stage 4: SQLite persistence (JDBC + schema/init).
  • Stage 5: Search + sort controls, basic unit tests (JUnit 5).
Java 17+ Maven Swing UI SQLite (JDBC) JUnit 5 jpackage (DMG)

  • Architecture: UI/Entry → Service → Repository → Persistence (CSV → SQLite via JDBC).
  • Core stack: Java 17+, Maven, Swing UI, SQLite (sqlite-jdbc).
  • Data model: JobApplication + ApplicationStatus enum (typed workflow).
  • Quality: validation + clearer UI messaging; JUnit 5 tests for service/repository behavior.
  • Distribution: packaged for macOS using jpackage (DMG).

Helpdesk Ticket Triage System

A staged helpdesk ticketing project focused on backend fundamentals: a structured ticket lifecycle, repository patterns, and API design. Built in phases to evolve from a console workflow into a REST-backed system.

  • Stage 1: Console CRUD + ticket workflow + basic search + SQLite persistence.
  • Stage 2: Spring Boot REST API + Swagger/OpenAPI docs + in-memory repository + Bean Validation + centralized error handling + Bruno API testing.
  • Stage 3: Spring Data JPA persistence + H2 database + H2 Console + Actuator health endpoint (DB-backed CRUD).
Java 17+ Spring Boot Maven REST API Swagger / OpenAPI Bean Validation Bruno Spring Data JPA H2 Actuator

  • API Layer: Spring MVC TicketController exposes CRUD endpoints under /api/tickets.
  • OpenAPI: Swagger UI generated via springdoc OpenAPI for interactive endpoint documentation and testing.
  • DTO Mapping: Request/response DTOs mapped via TicketMapper to keep the domain model clean.
  • Workflow: Status + priority modeled with typed enums (TicketStatus, Priority).
  • Storage (Stage 2): TicketRepository + InMemoryTicketRepository for memory-backed storage.
  • Persistence (Stage 3): Spring Data JPA repository backed by an H2 database for real CRUD persistence.
  • H2 Console: Inspect the database directly at /h2-console (confirm rows exist / updates persist).
  • Validation: Bean Validation on request DTOs to reject invalid payloads early.
  • Error Handling: Centralized exception mapping via GlobalExceptionHandler returning consistent ApiError JSON.
  • API Testing: Bruno collection for repeatable local CRUD requests using a {{baseUrl}} environment variable.
  • Observability: Spring Boot Actuator health endpoint at /actuator/health.