Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

Java Projects ☕

Java IDE Status

A collection of Java console applications developed during my training at Coding Factory (AUEB). These projects demonstrate my progression from basic syntax to more complex Object-Oriented Design patterns and Data Structures.

🚀 Featured Projects (in src/projects)

Focus: Separation of Concerns, Java Streams, Service Layer Pattern

A robust library simulation that manages books, members, and loans completely in-memory. This project represents a step up in architecture, separating the User Interface (Console) from the Business Logic.

  • Architecture: Separation of UI (Main), Service (Logic), and Domain (Entities).
  • Key Features:
    • Smart Loan System: Prevents borrowing if copies are unavailable or user validation fails.
    • Java Streams: Used extensively for filtering (searching books) and sorting (listing active loans by due date).
    • Robust Validation: Inputs are protected against crashes; ISBNs and Dates are handled logically.
    • Logic: Calculates available copies dynamically based on active loans (Single Source of Truth).

Focus: CRUD Operations, Data Structures (Maps), Input Validation

A functional address book application that allows users to manage their contacts efficiently.

  • Algorithms: Uses HashMap Indexing to search for phone numbers in O(1) time (instant lookup) rather than looping through lists.
  • Validation: Strict Regex validation for E.164 phone formats and email addresses.
  • Features: Add, Search (by name prefix or phone), Update, and Delete contacts.

🕹️ Mini Apps (in src/mini_apps)

Smaller exercises focused on specific logic challenges:

  • Guess Game: A number guessing game implementing "lives" and retry logic.
  • Entry System: Logic gates for age checks and VIP access control.
  • FizzBuzz: The classic coding interview question implementation.

🛠️ Tech Stack

  • Language: Java 21 (Amazon Corretto)
  • Concepts: OOP (Encapsulation, Polymorphism), Java Streams API, Collections Framework (List, Map, Set).
  • Tools: IntelliJ IDEA, Git & GitHub.

📂 Project Structure

The repository is organized into two main categories:

Java-Projects/
└── src/
    ├── mini_apps/             # Logic puzzles & basic exercises
    │   ├── EntrySystem
    │   ├── FizzBuzz
    │   └── GuessGame
    │
    └── projects/              # Full-featured applications
        ├── contactbook/       # HashMap & CRUD demo
        └── librarymanagement/ # Advanced architecture demo
            ├── domain/        # Entities (Book, Loan, Member)
            ├── service/       # Business Logic (LibraryService)
            └── ui/            # Entry point (LibraryApp)

🏃 How to Run

  1. Clone the repository.
  2. Open the folder in IntelliJ IDEA.
  3. Navigate to the entry point: src/projects/librarymanagement/ui/LibraryApp.java
  4. Right-click the class file and select Run.

Created by Giannis as part of the Coding Factory curriculum.

About

"A collection of Java console applications developed during my Coding Factory (AUEB) training. Focuses on OOP, Data Structures, and Algorithms."

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages