Skip to content

FinTech-Software/java_backend

Repository files navigation

💳 Online Banking Application – FinTech Software

An end-to-end Online Banking System that mimics real-world banking platforms like ICICI, BOI, or HDFC. This system allows users to securely sign up, authenticate, send/receive money, and visualize transaction history. It also includes an advanced Fraud Detection System to identify suspicious transactions based on historical patterns.


📚 Table of Contents


🔧 System Architecture

Before development, we invested several weeks designing a robust architecture covering:

  • ✅ Functional & Non-Functional Requirements
  • 🧬 High-Level Design (HLD)
  • 🛠️ Low-Level Design (LLD)
  • 🔄 Sequence Diagrams & Flow Diagrams

📌 Design Docs & Diagrams


🚀 Features

✅ Backend (Spring Boot + RabbitMQ)

  • JWT-based secure login/signup
  • Asynchronous transaction processing via RabbitMQ
  • Endpoints for user data, transactions, and token validation
  • API weight limiting and pagination support

🎨 Frontend (Vite + React + TypeScript)

  • Fully responsive & modern UI using TailwindCSS and ShadCN
  • Signup/Login, Dashboard, Transaction History
  • Money Transfer (Send/Receive) with real-time feedback
  • Reusable components and modular code structure

🔍 Fraud Detection

  • Machine Learning model that predicts fraud based on transaction patterns
  • REST API for integrating predictions into transaction flow
  • Built with Python + Flask and explained with Google Gemini

📂 Project Structure

FinTech-Software/
│
├── java_backend/
├── Online-Banking-Application-Frontend/
├── ML-Model-For-Fraud-Detection-and-Risk-Analysis-API/

🔐 Authentication & Security

  • Implemented full token-based security (JWT + Refresh Tokens)
  • Secure password storage using hashing
  • API protection via route-level guards
  • Session timeout and token expiry handling

🐳 Docker Setup

To ensure a consistent and collaborative development environment for all team members, we used Docker Compose to bundle our backend environment into a single unit.

🧱 Docker Images Used:

  • java_backend-backend:latest — Spring Boot backend
  • mysql:8 — Database container
  • rabbitmq:3-management — Queue for async transactions

🧩 Docker Compose Container:

All the above services are composed into one container named: java_backend

▶️ Run Docker Compose

docker compose up -d
  • This command will build the services and run them on the specified ports if not already available.
  • Ensures backend + MySQL + RabbitMQ services are networked and running.

📌 Prerequisite: Docker must be installed and running on your system.


🛠️ Getting Started

Here’s how to set up each part of the application.

✅ Backend Setup (Spring Boot + Docker)

📌 Prerequisites: Docker must be installed

  1. Clone the backend repo:

    git clone https://github.com/FinTech-Software/java_backend.git
    cd java_backend
  2. Run Docker Compose:

    docker compose up -d

This command builds the java_backend container and spins up all services (Spring Boot, MySQL, RabbitMQ) in one go.


✅ Frontend Setup (React + Vite + TypeScript)

📌 Prerequisite: Node.js (v18+) installed

  1. Clone the frontend repo:

    git clone https://github.com/FinTech-Software/Online-Banking-Application-Frontend.git
    cd Online-Banking-Application-Frontend
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev

✅ ML Model Setup

The fraud detection model is containerized and built with Flask. Please refer to the dedicated README for setup and usage instructions.


📦 Tech Stack

Layer Technology Used
Backend Spring Boot, MySQL, RabbitMQ, Java
Frontend React, TypeScript, Vite, TailwindCSS
ML Model Python, Flask, Scikit-learn, Pandas
Auth/Security JWT, Refresh Tokens, BCrypt
DevOps Docker, Docker Compose, GitHub Actions

🖼️ Application Screenshots

🧩 Feature 📸 Screenshot
🏠 Home Screen Home
📝 Signup Signup
🔐 Login Login
📊 Dashboard Dashboard
💸 Send Money Send Money
📈 Recent Transactions Transactions
📋 All Transactions All Txns
📉 ML Model – Fraud Transaction Detected ML Fraud
📈 ML Model – Legitimate Transaction Detected ML Legit
🤖 AI Model – Fraud Transaction Detected AI Fraud
🧾 AI Model – Legitimate Transaction Detected AI Legit

📊 Fraud Detection System

We developed a machine learning model capable of detecting fraudulent transactions using patterns in past data.

✅ Features:

  • Binary classification (Fraud vs Legitimate)
  • RESTful API in Flask
  • Google Gemini AI integration to explain predictions
  • Real-time integration with backend for fraud alerts

📘 Fraud Detection README


🤝 Contributors

Name Role
Mohammed Varaliya Project Lead, Backend, Frontend, ML Model & Integration, UI/UX, System Design
Vraj Shah Project Lead, Backend Development, Docker, Frontend, UI/UX, System Design
Jayesh Mal UI/UX, Frontend

📎 Useful Links


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •