This mini project is built with core Java concepts:
- Class and objects
- Abstraction, polymorphism, inheritance, encapsulation
- Abstract class and interface
- Garbage collector usage (
System.gc()request) - Lambda expressions
- Add and manage
HealthPolicyandVehiclePolicy - View, search, sort and delete policies
- Persist policies in a JSON file (
data/policies.json) - Dual UI support:
- Terminal UI
- Swing GUI
- Toggle UI mode through a boolean value in
InsurancePolicyManagementApp
src/com/insurance/model- domain classes and interfacesrc/com/insurance/repository- JSON persistence abstraction and implementationsrc/com/insurance/service- business logicsrc/com/insurance/ui- terminal and Swing user interfacessrc/com/insurance/InsurancePolicyManagementApp.java- launcher with UI switch boolean
javac -d out $(find src -name "*.java")
java -cp out com.insurance.InsurancePolicyManagementAppFor GUI mode, set:
private static final boolean USE_GUI = true;inside InsurancePolicyManagementApp and run again.