Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fintract - Modern Customer Management System for Banks

A comprehensive Spring Boot application for managing customer information with a modern web interface and RESTful API.

Features

  • 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

Architecture

Backend

  • 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

Frontend

  • HTML5/CSS3 - Modern web interface
  • JavaScript - Dynamic client-side functionality
  • Neumorphism Design - Contemporary UI/UX
  • Responsive Layout - Mobile-friendly design

Prerequisites

  • Java 17 or higher
  • Maven 3.6+ (or use included Maven wrapper)
  • Web browser for accessing the application

Installation & Setup

1. Clone the Repository

git clone <repository-url>
cd fintract

2. Build the Application

# Using Maven wrapper (recommended)
./mvnw clean compile

# Or using system Maven
mvn clean compile

3. Run the Application

# Using Maven wrapper
./mvnw spring-boot:run

# Or using system Maven
mvn spring-boot:run

4. Access the Application

Database Schema

The application uses the following entities:

  • CustomerDetails: Main customer information
  • CustomerAddress: Customer address details
  • CustomerContact: Contact information
  • CustomerName: Name variations
  • CustomerProofOfIdentity: Identity documents

API Endpoints

Customer Details

  • GET /api/customers - Get all customers
  • POST /api/customers - Create new customer
  • DELETE /api/customers/{id} - Delete customer

Customer Address

  • GET /api/customer-address - Get all addresses
  • POST /api/customer-address - Create new address
  • DELETE /api/customer-address/{id} - Delete address

Customer Contact

  • GET /api/customer-contact - Get all contacts
  • POST /api/customer-contact - Create new contact
  • DELETE /api/customer-contact/{id} - Delete contact

Customer Name

  • GET /api/customer-name - Get all names
  • POST /api/customer-name - Create new name
  • DELETE /api/customer-name/{id} - Delete name

Customer Proof

  • GET /api/customer-proof - Get all identity proofs
  • POST /api/customer-proof - Create new proof
  • DELETE /api/customer-proof/{id} - Delete proof

API Usage Examples

Create a Customer

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"
  }'

Get All Customers

curl http://localhost:8081/api/customers

Web Interface

The 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

Configuration

Application Properties

# 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

Testing

Manual Testing

  1. Start the application
  2. Access http://localhost:8081
  3. Use the web interface to add customers
  4. Test API endpoints using curl or Postman

Database Testing

  1. Access H2 console at http://localhost:8081/h2-console
  2. Use JDBC URL: jdbc:h2:mem:testdb
  3. Username: sa, Password: (leave empty)

Project Structure

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

Deployment

Development

./mvnw spring-boot:run

Production

./mvnw clean package
java -jar target/customerapp-0.0.1-SNAPSHOT.jar

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For support and questions:

  • Create an issue in the repository
  • Check the documentation
  • Review the API endpoints

Version History

  • 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!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages