An end-to-end Java-based project developed using Eclipse JEE Neon, integrating Console, JDBC, Servlets, and JSP with Apache Derby and Apache Tomcat to manage customers, bills, policies, and complaints.
This is an Insurance Management System developed using Java EE technologies including JSP, Servlets, JDBC, and Apache Derby database. The system provides both console-based and web-based interfaces for managing insurance policies, customers, bills, and complaints.
InsuranceManagementSystem/
│
├── src/
│ ├── model/ - Entity classes
│ ├── dao/ - Data Access Objects
│ ├── service/ - Business logic
│ ├── exceptions/ - Custom exceptions
│ ├── thread/ - Thread implementations
│ ├── utils/ - Utility classes
│ ├── web/ - Servlets
│ └── InsuranceManagementSystem.java <-- Console entry point
│
├── WebContent/
│ ├── WEB-INF/
│ │ ├── web.xml - Deployment descriptor
│ │ └── lib/ - Library JARs <-- derbyclient.jar
│ └── *.jsp - All view pages <-- All JSPs
│
├── build/
├── screenshots/ <-- Optional folder for UI screenshots
└── README.md
Component | Technology |
---|---|
IDE | Eclipse JEE Neon 3 (Win32-x86_64) |
Language | Java (JDK 8+) |
Web Layer | JSP, Servlets |
Backend DB | Apache Derby 10.2.2.0 |
Server | Apache Tomcat 9.0 |
JDBC Driver | derbyclient.jar |
Markup | JSP + external CSS |
XML | 3.1 |
Other | JDBC |
- Open Eclipse →
Window
→Preferences
→Server
→Runtime Environments
- Click
Add…
→ Select Apache Tomcat v9.0 - Browse Tomcat installation directory and finish.
-
Add
derbyclient.jar
to Eclipse classpath:- Right-click project →
Build Path
→Add External Archives…
→ Addderbyclient.jar
- Right-click project →
-
Go to
Window
→Show View
→Data Source Explorer
-
Add Derby embedded connection with database
jdbc:derby://localhost:1527/db;create=true
-
Connection: Open cmd -> Downloads\db-derby-10.10.2.0-bin\bin\startnetworkserver (Type Derby Folder path) & Enter. Default port is '1527'.
- Right-click
InsuranceManagementSystem.java
→Run As → Java Application
- Interact with menu: policy listing, customer registration, complaint handling, bill viewing, etc.
- Right-click project →
Run on Server
- Login/Register as a customer via
login.jsp
orregister.jsp
- Navigate using top menu: Home, Pay Bill, Register Complaint, Complaint Status, Bill History
-
Create a new Derby database:
- In Eclipse, open the Data Source Explorer view
- Right-click on Databases → New → Derby Connection
- Configure with database name "InsuranceDB" and schema "user"
- Test connection and finish
-
🗃️ SQL Scrapbook Usage
To view/modify Derby DB:
-
Window → Show View → Data Source Explorer
-
Connect to Derby → Right-click schema
USER
→New SQL Scrapbook
-
Use queries like:
SELECT * FROM "USER"."CUSTOMER"; SELECT * FROM "USER"."BILL";
- Console: Quick testing, threading (bill generation), exception demonstration, inheritance.
- Web (JSP/Servlet): Real-world customer-facing UI for registration, complaints, payments.
- Menu System
- Customer Registration, Search, Email Domain View
- Policy Listing
- Persistent Registration
- Bill Table with Relations
- Complaint Handling
- Threaded Bill Generation
- Inheritance-based Complaints
- Custom Exceptions for validations
- Customer Self-Registration
- Login/Logout
- Pay Bill (with receipt download)
- Complaint Registration/Status
- View Bill History
- View All Complaints (Admin)
- Menu-based console interface
- Policy listing
- Customer registration with validation
- Search customers by email or ID
- View customers by email domain
- Bill management
- Complaint registration
- Customer registration with form validation
- Bill viewing and payment
- Complaint registration and status tracking
- Admin dashboard for managing complaints
- Bill history viewing
- Custom Exceptions:
EmailAlreadyExistException
,CustomerNotFoundException
- Polymorphism: Bill search by either email or bill number
- Inheritance:
Complaint
class inherits fromConsumer
- Multithreading: Concurrent bill generation using
BillGenerationThread
- JDBC: Database connectivity with connection pooling
- Servlet/JSP: MVC architecture for web interface
System Requirements:
- User Roles & UI: Role-based interfaces (Admin, CSR, Customer) with mobile-responsive design (Bootstrap/React)
- Security:
- Spring Security for authentication
- Email OTP verification
- Backend:
- Spring Boot REST API
- Dependency injection (Spring Framework)
- Hibernate ORM
- Features:
- PDF generation for bills/receipts
- Payment gateway integration
- Enhanced reporting
- Quality Assurance:
- Unit testing (JUnit/TestNG)
Key improvements:
- Merged REST API conversion with Spring Boot implementation
- Grouped all security-related items
- Consolidated frontend technologies under UI
- Removed redundant "implementation" verbs
- Organized by logical categories (UI, Security, Backend, etc.)
(Screenshots in a screenshots
folder to demonstrate the application flow)
- The console application is designed for administrative tasks
- The web application provides customer-facing features
- Derby database stores all persistent data
- Tomcat serves as the servlet container for the web application
- Ensure all required JARs are in WEB-INF/lib
- Check database connection parameters in
DatabaseUtility.java
- Verify Tomcat server configuration
- Ensure proper JDK version is configured in Eclipse