How miladsrc/loan-managment-system works
This is a Java/Hibernate student-loan payment application. Its documented user journey is student loan application, review, approval and disbursement; housing, tuition and education-expense loans are named capabilities. The tree also shows student, bank-card, loan and refund services backed by repositories and Hibernate entities. The excerpts support the generic persistence and transaction layer, but do not show the console entry point or how the documented review and disbursement stages are implemented, so those connections are left unasserted.
Main entry points: Loan.java Loan · Student.java Student · BaseServiceImpl.java CRUD transactions · BaseRepositoryImpl.java Hibernate CRUD
Components 22
Application runtime
- Console menu
src/main/java/org/example/Menu.java - Application entry
src/main/java/org/example/Main.java - Application context
src/main/java/util/ApplicationContext.java - Hibernate sessions
src/main/java/util/SessionFactorySingleton.java
Domain services
- Student service
src/main/java/logic/service/impl/StudentServiceImpl.java - Bank-card service
src/main/java/logic/service/impl/BankCardServiceImpl.java - Loan service
src/main/java/logic/service/impl/LoanServiceImpl.java - Refund service
src/main/java/logic/service/impl/RefundServiceImpl.java - CRUD transactions
src/main/java/base/service/BaseServiceImpl.java
Persistence layer
- Student repository
src/main/java/logic/repository/impl/StudentRepositoryImpl.java - Bank-card repository
src/main/java/logic/repository/impl/BankCardRepositoryImpl.java - Loan repository
src/main/java/logic/repository/impl/LoanRepositoryImpl.java - Refund repository
src/main/java/logic/repository/impl/RefundRepositoryImpl.java - Hibernate CRUD
src/main/java/base/repository/BaseRepositoryImpl.java
Domain model
- Student
src/main/java/domain/Student.java - Bank card
src/main/java/domain/BankCard.java - Loan
src/main/java/domain/Loan.java - Refund
src/main/java/domain/Refund.java - Entity identity
src/main/java/base/entity/BaseEntity.java - Loan and student types
src/main/java/domain/Grade.java
Other components
- Relational database
- Student
Connections 28
- CRUD transactions → Hibernate CRUD: calls CRUD
src/main/java/base/service/BaseServiceImpl.java - CRUD transactions → Hibernate sessions: gets factory
src/main/java/base/service/BaseServiceImpl.java - Student repository → Hibernate CRUD: extends
src/main/java/logic/repository/impl/StudentRepositoryImpl.java - Bank-card repository → Hibernate CRUD: extends
src/main/java/logic/repository/impl/BankCardRepositoryImpl.java - Loan repository → Hibernate CRUD: extends
src/main/java/logic/repository/impl/LoanRepositoryImpl.java - Refund repository → Hibernate CRUD: extends
src/main/java/logic/repository/impl/RefundRepositoryImpl.java - Student service → CRUD transactions: inherits CRUD
src/main/java/logic/service/impl/StudentServiceImpl.java - Bank-card service → CRUD transactions: inherits CRUD
src/main/java/logic/service/impl/BankCardServiceImpl.java - Loan service → CRUD transactions: inherits CRUD
src/main/java/logic/service/impl/LoanServiceImpl.java - Refund service → CRUD transactions: inherits CRUD
src/main/java/logic/service/impl/RefundServiceImpl.java - Application context → Student service: registers
src/main/java/util/ApplicationContext.java - Application context → Bank-card service: registers
src/main/java/util/ApplicationContext.java - Application context → Loan service: registers
src/main/java/util/ApplicationContext.java - Application context → Refund service: registers
src/main/java/util/ApplicationContext.java - Hibernate sessions → Relational database: opens sessions
- Student → Console menu: uses
- Student → Entity identity: extends
src/main/java/domain/Student.java - Bank card → Entity identity: extends
src/main/java/domain/BankCard.java - Loan → Entity identity: extends
src/main/java/domain/Loan.java - Refund → Entity identity: extends
src/main/java/domain/Refund.java - Student → Bank card: has card
src/main/java/domain/Student.java - Student → Loan: has loans
src/main/java/domain/Student.java - Loan → Refund: has refunds
src/main/java/domain/Loan.java - Loan → Student: belongs to
src/main/java/domain/Loan.java - Refund → Loan: belongs to
src/main/java/domain/Refund.java - Bank card → Student: belongs to
src/main/java/domain/BankCard.java - Loan → Loan and student types: uses grade and type
src/main/java/domain/Loan.java - Student → Loan and student types: uses grade
src/main/java/domain/Student.java