How umar-kamani/library_management_system works
ALCHE Library Management System is a Swing desktop application for managing books, borrowing and returns, genres, locations, and users. The principal workflow is a staff member opening a management screen, performing an operation that is validated by a service, and persisting or retrieving library records through DAOs backed by MySQL. Borrowing has additional business rules for copy availability, user limits, due dates, and returns. The README documents the broader service/DAO layering; detailed wiring is sampled only for books and locations and in the borrowing service, so other links reflect documented architecture rather than inspected panel code.
Main entry points: MainWindow.java Main window · Impl DAO implementations · Launcher.java Launcher · BooksPanel.java Books screen
Components 17
Desktop application
- Launcher
src/main/java/mu/alche/library/App/Launcher.java - Main window
src/main/java/mu/alche/library/App/MainWindow.java
Catalog management
- Books screen
src/main/java/mu/alche/library/UI/BooksPanel.java - Genres screen
src/main/java/mu/alche/library/UI/GenresPanel.java - Book service
src/main/java/mu/alche/library/Service/BookService.java - Genre service
src/main/java/mu/alche/library/Service/GenreService.java
Circulation
- Borrowings screen
src/main/java/mu/alche/library/UI/BorrowingsPanel.java - Borrowing service
src/main/java/mu/alche/library/Service/BorrowingService.java
Users and locations
- Users screen
src/main/java/mu/alche/library/UI/UsersPanel.java - User service
src/main/java/mu/alche/library/Service/UserService.java - Locations screen
src/main/java/mu/alche/library/UI/LocationsPanel.java - Location service
src/main/java/mu/alche/library/Service/LocationService.java
Data access
- Library entities
src/main/java/mu/alche/library/Models - DAO implementations
src/main/java/mu/alche/library/Database/DAO/Impl - DB utilities
src/main/java/mu/alche/library/Database/DBUtils.java
Other components
- Library staff
- MySQL database
Connections 21
- Library staff → Launcher: starts
- Launcher → Main window: opens
- Library staff → Main window: uses
- Main window → Books screen: opens screen
- Main window → Genres screen: opens screen
- Main window → Borrowings screen: opens screen
- Main window → Users screen: opens screen
- Main window → Locations screen: opens screen
- Books screen → Book service: calls
- Genres screen → Genre service: uses
- Borrowings screen → Borrowing service: uses
- Users screen → User service: uses
- Locations screen → Location service: calls
- Book service → DAO implementations: uses DAO
- Genre service → DAO implementations: uses DAO
- Borrowing service → DAO implementations: reads and writes
- User service → DAO implementations: uses DAO
- Location service → DAO implementations: uses DAO
- DAO implementations → DB utilities: gets connections
- DB utilities → MySQL database: connects and initializes
- DAO implementations → Library entities: maps records