A comprehensive Spring Boot application for managing customer information with a modern web interface and RESTful API.
- Customer Management: Complete CRUD operations for customer data
- Multi-Entity Support: Manage customer details, addresses, contacts, names, and identity proofs
- Modern Web Interface: Responsive HTML/CSS/JavaScript frontend with neumorphism design
- RESTful API: Full REST API for programmatic access
- Database Integration: H2 in-memory database with automatic schema generation
- Cross-Origin Support: CORS enabled for frontend-backend communication
- Spring Boot 3.4.4 - Main application framework
- Spring Data JPA - Data persistence layer
- Hibernate - ORM for database operations
- H2 Database - In-memory database for development
- Maven - Dependency management and build tool
- HTML5/CSS3 - Modern web interface
- JavaScript - Dynamic client-side functionality
- Neumorphism Design - Contemporary UI/UX
- Responsive Layout - Mobile-friendly design
- Java 17 or higher
- Maven 3.6+ (or use included Maven wrapper)
- Web browser for accessing the application
git clone <repository-url>
cd fintract# Using Maven wrapper (recommended)
./mvnw clean compile
# Or using system Maven
mvn clean compile# Using Maven wrapper
./mvnw spring-boot:run
# Or using system Maven
mvn spring-boot:run- Web Interface: http://localhost:8081
- API Base URL: http://localhost:8081/api
- H2 Database Console: http://localhost:8081/h2-console
The application uses the following entities:
- CustomerDetails: Main customer information
- CustomerAddress: Customer address details
- CustomerContact: Contact information
- CustomerName: Name variations
- CustomerProofOfIdentity: Identity documents
GET /api/customers- Get all customersPOST /api/customers- Create new customerDELETE /api/customers/{id}- Delete customer
GET /api/customer-address- Get all addressesPOST /api/customer-address- Create new addressDELETE /api/customer-address/{id}- Delete address
GET /api/customer-contact- Get all contactsPOST /api/customer-contact- Create new contactDELETE /api/customer-contact/{id}- Delete contact
GET /api/customer-name- Get all namesPOST /api/customer-name- Create new nameDELETE /api/customer-name/{id}- Delete name
GET /api/customer-proof- Get all identity proofsPOST /api/customer-proof- Create new proofDELETE /api/customer-proof/{id}- Delete proof
curl -X POST http://localhost:8081/api/customers \
-H "Content-Type: application/json" \
-d '{
"customerType": "Individual",
"fullName": "John Doe",
"dob": "1990-01-01",
"status": "Active",
"contactNumber": "1234567890",
"email": "john@example.com",
"countryOfOrigin": "USA",
"effectiveDate": "2025-01-01"
}'curl http://localhost:8081/api/customersThe application includes a modern web interface with:
- Dashboard: Overview of all customer data
- Customer Forms: Add/edit customer information
- Responsive Design: Works on desktop and mobile
- Neumorphism UI: Modern, clean interface design
# Server Configuration
server.port=8081
# Database Configuration
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# JPA Configuration
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
# H2 Console
spring.h2.console.enabled=true- Start the application
- Access http://localhost:8081
- Use the web interface to add customers
- Test API endpoints using curl or Postman
- Access H2 console at http://localhost:8081/h2-console
- Use JDBC URL:
jdbc:h2:mem:testdb - Username:
sa, Password: (leave empty)
fintract/
├── src/
│ ├── main/
│ │ ├── java/com/example/customerapp/
│ │ │ ├── controller/ # REST controllers
│ │ │ ├── entity/ # JPA entities
│ │ │ ├── repository/ # Data repositories
│ │ │ └── CustomerappApplication.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── static/ # Web assets
│ │ ├── *.html # Web pages
│ │ ├── *.js # JavaScript files
│ │ └── *.css # Stylesheets
│ └── test/ # Test files
├── pom.xml # Maven configuration
└── README.md # This file
./mvnw spring-boot:run./mvnw clean package
java -jar target/customerapp-0.0.1-SNAPSHOT.jar- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Check the documentation
- Review the API endpoints
- v1.0.0 - Initial release with basic customer management
- v1.1.0 - Added multi-entity support
- v1.2.0 - Modern web interface with neumorphism design
Fintract - Streamlining customer management with modern technology!