A full-stack library management system with a graphical desktop UI (JavaFX), PostgreSQL database, and layered Java backend using JPA + Hibernate.
This main branch is currently inactive and reserved for future production-ready releases.
The codebase and all active development are maintained in other branches.
A proof-of-concept version is available on the milestone/poc branch.
🎥 Watch the demo video
📄 Read the release notes
🧭 For details on upcoming goals and planned features, see the Release Planning Meeting – 2025-06-17.
The system follows a multi-layered architecture built on the MVC design pattern, extended with:
- A dedicated Service Layer to separate business logic from UI
- A DAO Layer (Data Access Object) for clean database interaction
- Utility classes and Singletons for shared session and navigation handling
This structure improves modularity and testability, allowing for isolated maintenance and future expansion (e.g., switching out database technology with minimal changes to core logic).
📷 View Login Architecture Diagram
Development is organized around a disciplined feature-branch workflow. Features were implemented incrementally and consolidated into dev, with completed branches archived under the retired/feature/... namespace to keep the repo clean.
Commits and branch names document progress transparently.
📁 Note: Completed feature branches are moved under
retired/feature/to reflect archival status.
- 🛠️
feature/maven_integration→ Initial setup and build configuration - 📐
docs/requirements-and-design→ Planning, mockups, and system design - 🧩
feature/javafx-view-switching&feature/css-implementation→ GUI interaction base - 🎯
feature/guestViews/contextSharing&feature/frontend-guestViews→ Core guest UI development - 🧪
feature/frontend-guestViews-testfx-integration→ GUI testing with TestFX - 🛢️
feature/database-setup,feature/database-implementation→ DAO and PostgreSQL connectivity - 🔁
feature/frontend-borrowerviews→ Borrower flows - 👩🏫
feature/frontend-librarianviews→ Librarian interface - 🔎
feature/search-query-integration→ Dynamic keyword-based search - 🔐
feature/login-implementation→ Role-based authentication - 📚
feature/item-management,feature/itemcopy-functionality→ Item and copy handling - 💳
feature/loan-functionality,feature/returnLoan-functionality→ Lending workflows - ⏰
feature/overdue-functionality→ Overdue loan tracking - ✅ Consolidated into
milestone/poc - 🚧 Ongoing development centralized in
dev
📂 View all branches for archived features and historical context.
JavaFullStackLibrary/
├── docs/ 📁 Design docs, mockups, diagrams, specifications
├── src/
│ ├── main/
│ │ ├── java/ 📦 Java code: model, DAO, services, controllers
│ │ ├── resources/ 🎨 FXML views, CSS, icons, config
│ │ └── database/ 🛢️ SQL setup scripts
│ └── test/ 🧪 Unit tests and test utilities
├── archive/ 📦 Legacy mockups and sample data
├── pom.xml ⚙️ Maven project config
└── README.md 📘 Branch-specific project info
- 📁
/docs: UI mockups, models, diagrams, specs - 🧪
/src/test: Unit tests and test utilities - 🛠️
/src/main: Full application codebase - 🗂️
/release-planning: Planning notes and roadmaps
Stay tuned for future production releases on this branch.