Skip to content

Latest commit

 

History

History
44 lines (32 loc) · 1.44 KB

File metadata and controls

44 lines (32 loc) · 1.44 KB

Client Management System

A JavaFX desktop application for managing clients, contracts, and payments, built as an academic project at TVZ Zagreb. The system supports multiple user roles with secure authentication and provides a full audit trail of all data changes.

Architecture

The application follows the MVC pattern with a layered structure:

  • Model layer — domain entities (Client, Contract, Payment) with builder patterns for flexible object construction
  • Repository layer — data access abstraction over an embedded H2 SQL database
  • UI layer — JavaFX views with role-based access control

Key Features

  • Authentication — BCrypt password hashing with admin and standard user roles
  • Client management — full CRUD operations for clients and associated contracts
  • Change tracking — audit log that records all modifications with timestamps and user attribution
  • Data validation — input validation with user-friendly error handling via custom AlertHandling

Tech Stack

Component Technology
Language Java
UI JavaFX (FXML)
Database H2 (embedded)
Security BCrypt
Build Maven

Project Scope

~4,200 lines of code across 67 classes.

Running

  1. Clone the repository
  2. Open in IntelliJ IDEA (or any IDE with Maven support)
  3. Run the main application class