Skip to content

faafal/contacts-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contacts-Phone-Book (Java)

A design-pattern-driven contact management system ensuring data integrity and decoupled persistence through advanced software architecture.

Project Description

The system is built with a focus on architectural cleanliness and scalability. By utilizing a State Machine to manage navigation context and the Command Pattern to encapsulate logic, the application remains modular and easily extensible.

A core architectural choice is the implementation of the Serialization Proxy Pattern. This mechanism decouples domain-specific behavior (logic in Person or Organization classes) from the underlying storage format on disk. This ensures the database remains stable and version-resistant even as the domain objects evolve.

Key Features

Command Pattern & State Machine [Logic]

The application navigation is managed by a context-aware state machine. Each user action - be it adding, searching, or listing - is encapsulated within a separate command object.

Command List:

  • ADD: Dynamic contact creation (Person or Organization) with field-level validation.
  • LIST: Full database traversal with interactive record selection.
  • SEARCH: High-speed regex-based searching across all contact fields.
  • COUNT: Real-time record statistics.

Installation & Building

Required JDK 23 version

Windows

.\mvnw.cmd clean package

Linux / macOS

./mvnw clean package

Running the Application

The system accepts an optional parameter for the database file path.

java -jar target/rcaban_contacts-1.0-SNAPSHOT.jar contacts.db

Quality Assurance & Static Analysis

The project is 100% compliant with Google's coding standards. Every class and method is fully documented using Javadoc.

Checkstyle Report

JaCoCo - Code Coverage

Unit tests verify almost every branch of the logic, ensuring stability during refactoring.

Coverage Report

PMD & CPD (Static Analysis)

The code has been checked for logical errors and redundancies.

PMD CPD

SpotBugs

Bytecode analysis confirms the absence of hidden bugs and security vulnerabilities.

SpotBugs

About

Interactive command-line contacts management engine featuring advanced search algorithms, robust data validation, and automated QA gates (Checkstyle, PMD, SpotBugs).

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages