Skip to content

Latest commit

 

History

146 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LibraryOOP# Personal Library Tracker

Java MIT License


📌 Sürüm Bilgisi | Version Info

● Current Version: 3.0.0 ● Geçerli Sürüm: 3.0.0


Language / Dil Status / Durum
English Coming Soon
Türkçe ✅

🇬🇧 English

This project is a modern JavaFX-based personal library management system developed using Java and Object-Oriented Programming (OOP) principles.
Multiple users can register and log into the system, add books they have read, and view their personal reading lists.

Each user manages their own books independently, and all data is stored persistently using a JSON file.
Whenever a book is added, the system automatically saves the updated data.

The project focuses on practicing:

  • Object-Oriented Programming (OOP)
  • Class responsibility separation
  • JSON-based data persistence
  • JavaFX-based graphical user interface (GUI)

✨ Features

  • 🖥️ Modern JavaFX Desktop Interface (Completely replaces console UI)
  • 👤 User and Admin role-based registration & login system
  • 🔐 Secure authentication with password requirements
  • 📚 Personal Bookshelf: Add, edit, and track reading status & ratings for your books
  • 🏛️ Library System: Borrow and return books with live copy tracking
  • ⚙️ Smart Editing: Intelligent field locking depending on whether the book is personal or from the library
  • 👑 Admin Panel: Complete control to add/edit/delete books, manage users, and view active loans
  • 💾 Persistent data storage with automatic JSON saves
  • 🧱 Strong Object-Oriented design (Library, User, Book, Loan classes)

🚀 Usage

🟢 macOS / Linux

Compile

javac -cp ".:lib/json.jar" Codes/*.java

Run

java -cp ".:lib/json.jar:Codes" MainLibrary

🟢 Windows

Compile

javbash
javac -cp ".;lib/json.jar" Codes\*.java

Run

java -cp ".;lib/json.jar;Codes" MainLibrary

🇹🇷 Türkçe

Bu proje, Java ve Nesne Yönelimli Programlama (OOP) prensipleri kullanılarak geliştirilmiş modern JavaFX tabanlı bir kütüphane ve kitaplık yönetim sistemidir.
Birden fazla kullanıcı sisteme kayıt olabilir, giriş yapabilir ve okudukları kitapları kendi hesaplarına ekleyebilir.

Her kullanıcı kendi kitap listesini bağımsız olarak yönetir ve tüm veriler JSON dosyası kullanılarak kalıcı olarak saklanır.
Her kitap eklendiğinde sistem otomatik olarak verileri JSON dosyasına kaydeder.

Projenin amacı:

  • OOP tasarım pratiği yapmak
  • Sınıf sorumluluklarını doğru ayırmak
  • JSON ile veri kalıcılığı sağlamak
  • JavaFX ile Masaüstü Arayüz (GUI) geliştirmeyi öğrenmek

✨ Özellikler

  • 🖥️ Modern JavaFX Masaüstü Arayüzü (Konsol yapısından tamamen GUI'ye geçiş)
  • 👤 Kullanıcı ve Admin rolleri ile kayıt & giriş sistemi
  • 🔐 Şifre gereksinimli güvenli kimlik doğrulama mekanizması
  • 📚 Kişisel Kitaplık: Kitap ekleme, okuma durumu ve puan güncelleme
  • 🏛️ Kütüphane Sistemi: Kopya takibi ile kitap ödünç alma ve iade etme
  • ⚙️ Akıllı Düzenleme: Kütüphaneden alınan ile kişisel kitapları ayırıp formda özel kilitleme mantığı
  • 👑 Admin Paneli: Kitapları, kullanıcıları yönetme ve tüm ödünç (Loan) işlemlerini takip etme
  • 💾 JSON ile verilerin otomatik ve kalıcı olarak saklanması
  • 🧱 Güçlü Nesne Yönelimli Programlama tasarımı (Library, User, Book, Loan sınıfları)

🟢 macOS / Linux

Derleme

javac -cp ".:lib/json.jar" Codes/*.java

Çalıştırma

java -cp ".:lib/json.jar:Codes" MainLibrary

🟢 Windows

Derleme

javbash
javac -cp ".;lib/json.jar" Codes\*.java

Çalıştırma

java -cp ".;lib/json.jar;Codes" MainLibrary

📌 Version History / Sürüm Geçmişi

Version Date Description
v3.0.0 2026-09-16 Migrated project to a JavaFX Desktop Application, completely removing terminal interfaces / Proje JavaFX Masaüstü Uygulamasına taşındı, terminal arayüzleri tamamen kaldırıldı
v2.4.0 2026-08-27 80 books and their copies have been added to library / 80 kitap ve kopyaları kütüphaneye eklendi
v2.3.0 2026-08-26 Input manager and comment lines have been created / Girdi yönetimi ve yorum satırları oluşturuldu
v2.2.0 2026-08-25 Library system has been created. / Kütüphane sistemi oluşturuldu
v2.1.0 2026-08-22 Loan class has been created. Borrow and return dates have been logged / Loan class'ı oluşturuldu. Ödünç alma-verme tarihleri loglanmaya başlandı
v2.0.0 2026-08-21 Redesigned the library and bookshelf system. Added ReadingRecord, LibraryBook, reading status, book source tracking and Borrowable interface / Kütüphane ve kitaplık sistemi yeniden tasarlandı. ReadingRecord, LibraryBook, okuma durumu, kitap kaynağı takibi ve Borrowable interface’i eklendi.
v1.3.0 2026-08-04 Added category, reading status, and rating information for books / Kitaplar için kategori, okuma durumu ve puanlama eklendi
v1.2.2 2026-08-03 Bug has been fixed in capitalize words function / Capitalize word fonksiyonundaki bug düzeltildi
v1.2.1 2026-07-22 Reading list menu has been improved / Okuma listesi menüsü iyileştirildi
v1.2.0 2026-07-20 Refactored the project structure by separating menu handling and username/password validation into dedicated classes / Proje yapısı yeniden düzenlendi, menü yönetimi ile kullanıcı adı ve şifre doğrulama işlemleri ayrı sınıflara taşındı
v1.1.0 2026-02-22 Password requirements have been created / Şifre gereksinimleri eklendi
v1.0.3 2026-02-21 Min password length requirement has been added / Minimum şifre uzunluğu gerekliliği eklendi
v1.0.2 2026-02-18 Automatically capitalize the first letter of book and author names / Kitap ve yazar adlarının ilk harflerini otomatik büyütme eklendi
v1.0.1 2026-02-17 Checking password method has been created / Parola kontrolü metodu oluşturuldu
v1.0.0 2026-02-14 Initial release / İlk sürüm

About

A modern JavaFX desktop application for personal library management and book tracking, built with OOP principles and JSON data persistence.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages