How battleislife/java_quanlithuvienhvnh works
This is a Swing desktop library-management application backed by MySQL. Its user workflow starts at login, opens the main application, and supports catalog, borrower, circulation, fine, staff, and shift management; settings and statistics are additional capabilities visible in the source tree. The sampled code shows controllers invoking DAOs, shared JDBC access, and permission checks. Several feature implementations are unsampled, so their internal links are omitted rather than inferred; the README provides no further architecture detail.
Main entry points: NhanVienController.java Staff management · PhieuPhatController.java Fine management · BaseDAO.java Shared DAO access · SachForm.java Books
Components 24
Application entry
- Desktop launcher
src/App.java - Login
src/view/LoginForm.java - Staff lookup service
src/service/NhanVienService.java - Main application
src/view/MainApplication.java
Library operations
- Borrowers
src/controller/NguoiMuonController.java - Loan management
src/view/PhieuMuonForm.java - Loan records
src/dao/PhieuMuonDAO.java - Loan details
src/dao/ChiTietPhieuMuonDAO.java - Fine management
src/controller/PhieuPhatController.java - Fine interface
src/view/PhieuPhatForm.java
Catalog management
- Books
src/view/SachForm.java - Publishers
src/dao/NhaXuatBanDAO.java - Authors
src/dao/TacGiaDAO.java - Genres
src/dao/TheLoaiDAO.java
Staff administration
- Staff management
src/controller/NhanVienController.java - Shift management
src/controller/CaLamController.java - Settings
src/controller/CaiDatController.java - Statistics
src/view/components/PanelThongKe.java - Permission checks
src/utilities/PermissionUtil.java
Persistence and models
- Shared DAO access
src/dao/BaseDAO.java - JDBC connection
src/config/DBConnection.java - MySQL database
- Domain models
src/model
Other components
- Staff user
Connections 22
- Staff user → Desktop launcher: starts
src/App.java - Desktop launcher → Login: opens
src/App.java - Login → Staff lookup service: checks credentials
src/view/LoginForm.java - Login → Main application: opens on success
src/view/LoginForm.java - Staff lookup service → Staff management: uses staff DAO
src/service/NhanVienService.java - Loan management → Loan records: loads and saves
src/view/PhieuMuonForm.java - Fine management → Fine interface: updates interface
src/controller/PhieuPhatController.java - Fine management → Borrowers: looks up borrowers
src/controller/PhieuPhatController.java - Fine management → Staff management: looks up staff
src/controller/PhieuPhatController.java - Fine management → Permission checks: checks access
src/controller/PhieuPhatController.java - Books → Publishers: loads publisher data
src/view/SachForm.java - Books → Authors: loads author data
src/view/SachForm.java - Books → Genres: loads genre data
src/view/SachForm.java - Staff management → Permission checks: checks access
src/controller/NhanVienController.java - Shift management → Permission checks: checks access
src/controller/CaLamController.java - Shift management → Staff management: loads staff records
src/controller/CaLamController.java - Shared DAO access → JDBC connection: opens connections
src/dao/BaseDAO.java - JDBC connection → MySQL database: connects
src/config/DBConnection.java - Loan records → Shared DAO access: uses shared queries
src/dao/PhieuMuonDAO.java - Loan details → Shared DAO access: uses shared queries
- Borrowers → Shared DAO access: uses shared queries
- Domain models → Staff management: staff data types
src/controller/NhanVienController.java