Skip to content

sabuj-inc/PhonebookApplication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

📞 PhonebookApplication (Java Console Project)

The PhonebookApplication is a simple console-based project written in Java. It allows users to manage contacts by performing essential operations such as adding, updating, deleting, searching, and sorting using core Java concepts like OOP, ArrayLists, binary search, and merge sort.


🚀 Features

  • ✅ Add new contacts
  • 📋 View all saved contacts
  • ✏️ Update contact information
  • ❌ Delete contacts by name
  • 🔍 Search contact using Binary Search
  • 🔃 Sort contacts by Add Date (Descending) using Merge Sort
  • 👋 Exit the application gracefully

🛠️ Technologies Used

  • Java (JDK 8+)
  • Object-Oriented Programming (OOP)
  • Algorithms (Binary Search, Merge Sort)
  • Console I/O

A console-based contact management system built with Java, demonstrating object-oriented programming, real-time input handling, and algorithmic operations such as binary search and merge sort.


📖 1.1 Overview

The Phonebook Application is a Java console project that provides core contact management functionalities such as adding, updating, deleting, and searching contacts. The system uses object-oriented programming principles and demonstrates data manipulation techniques like binary search, merge sort, and list management. It simulates the operations of a digital phonebook and offers practical experience in Java-based system development.


💡 1.2 Motivation

In the age of smartphones and digital communication, contact management is fundamental. This project bridges the gap between theoretical Java knowledge and practical application. It reinforces key concepts like:

  • Class design
  • Encapsulation
  • ArrayList manipulation
  • Algorithm implementation in a structured, interactive environment

🧩 1.3 Problem Definition

📌 1.3.1 Problem Statement

Manual contact management is inefficient and error-prone. Most beginner Java tutorials emphasize syntax but neglect real-world system building. This project fills that gap by enabling:

  • Real-time data operations
  • Algorithmic sorting and searching
  • Hands-on object-oriented design

🔍 1.3.2 Complex Engineering Problem

This application addresses key challenges in software development:

  • Designing and managing dynamic object collections
  • Implementing efficient searching using binary search
  • Performing merge sort based on contact metadata
  • Maintaining a text-based user interface
  • Handling user input and exceptions robustly

🎯 1.4 Design Goals / Objectives

The goal is to build a modular, maintainable, and efficient phonebook system that:

  • Supports real-time console interaction
  • Provides all CRUD operations
  • Demonstrates search and sort algorithms
  • Applies OOP principles like encapsulation and abstraction
  • Handles edge cases: empty input, invalid data, duplicates, etc.

📋 1.4.1 Functionalities

Feature Description
👀 View Contacts Display all saved contact entries
➕ Add Contact Add new contacts with name and phone number
✏️ Update Contact Modify existing contact information
❌ Delete Contact Remove contact by name
🔎 Search Contact Use binary search to find contacts
🔽 Sort Contacts Sort by add date using merge sort
🚪 Exit Cleanly terminate the program

🎓 1.5 Application

📘 1.5.1 Educational Use Cases

  • Learn and apply Java OOP fundamentals
  • Understand and implement binary search and merge sort
  • Practice managing dynamic data structures (ArrayList)
  • Reinforce concepts like modular design and method abstraction

💼 1.5.2 Relevance & Industry Demand

  • 🔧 Data Management Apps: Similar logic used in CRM tools & syncing platforms
  • 🧠 Algorithm Design: Mastery of core search/sort algorithms
  • 🌐 Backend Dev Foundation: Mimics REST-like CRUD logic in a console environment
  • 💼 Career Utility: Helps software developers, QA engineers, and backend testers

🏁 1.6 Conclusion

The Phonebook Application is a compact yet powerful Java project that simulates real-world system development. It covers OOP, algorithm implementation, and user interaction, making it ideal for students, beginners, and enthusiasts.

This project lays the foundation for more advanced systems like:

  • GUI-based apps (Swing/JavaFX)
  • Persistent storage with files or databases
  • Android-based contact managers

🙋‍♂️ Author

Sabuj
Java Developer | Android App Creator

About

PhonebookApplication is a Java console-based app to manage personal contacts. It allows users to add, view, update, delete, search, and sort contacts. The app uses object-oriented principles, binary search for quick lookups, and merge sort to organize contacts by add date.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages