Skip to content

lokhandesh/BankingSystemAPI

Repository files navigation

🏦 BankingSystemAPI

Java Spring Boot Build License Docker Pulls

A secure, production-grade RESTful Banking System API built with Spring Boot, PostgreSQL, and Docker. Includes robust banking features like JWT authentication, transactions, statement PDFs, and AWS S3 integration.


📸 Swagger UI

Swagger Screenshot

Explore all endpoints interactively using Swagger:
URL: http://localhost:8080/swagger-ui.html


🚀 Features

  • ✅ User Registration & Login (JWT-secured)
  • ✅ Role-based Security (Spring Security)
  • ✅ Create & Manage Bank Accounts
  • ✅ Deposit, Withdraw & Transfer Money
  • ✅ Generate PDF Statements
  • ✅ Upload to AWS S3 & Email Download Link
  • ✅ Pagination, Sorting, Filtering
  • ✅ Input Validation & Global Error Handling
  • ✅ DB Versioning with Flyway
  • ✅ Dockerized for Easy Deployment

🛠️ Tech Stack

Layer Technology
Language Java 17
Framework Spring Boot, Spring Security
Database PostgreSQL
ORM Hibernate / Spring Data JPA
Auth JWT Token
DB Migration Flyway
Storage AWS S3
PDF Export iText
Email JavaMail
Container Docker, Docker Compose
Build Tool Maven

🧾 API Overview

🔐 Authentication

Endpoint Method Description
/api/auth/register POST Register a new user
/api/auth/login POST Login & get JWT

🧾 Accounts

Endpoint Method Description
/api/accounts POST Create a new account
/api/accounts/{id} GET Get account balance/info

💸 Transactions

Endpoint Method Description
/api/transactions/deposit POST Deposit money
/api/transactions/withdraw POST Withdraw money
/api/transactions/transfer POST Transfer money

📄 Statements

Endpoint Method Description
/api/statements/download GET Download PDF statement
/api/statements/email POST Email statement link (S3 upload)

🐳 Docker Setup

1. Build & Run with Docker Compose

git clone https://github.com/lokhandesh/BankingSystemAPI.git
cd BankingSystemAPI
   docker-compose up --build

🚀 AWS EC2: Production Deployment (Using Docker Compose)

Easily deploy the BankingSystemAPI on a secure AWS EC2 instance using Docker Compose.

✅ Prerequisites

  • An Ubuntu-based EC2 instance
  • Docker & Docker Compose installed
  • Your Docker image is pushed to DockerHub
  • Optional: PostgreSQL running on the EC2 instance or via Amazon RDS

1️⃣ SSH into EC2

   ssh ubuntu@<EC2_PUBLIC_IP>

Access the Application

http://35.174.104.223:8080

http://35.174.104.223:8080/swagger-ui.html

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors