Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bank Management System

Welcome to the Bank Management System repository built using Spring Boot! This project is designed to provide a foundation for managing banking operations using modern web technologies.

Table of Contents

Introduction

The Bank Management System is a web-based application developed using Spring Boot that aims to streamline various banking operations. This system offers features to manage customer accounts and perform transactions.

Features

  • User-Friendly Web Interface: Enjoy a user-friendly web interface designed for both customers, crafted using Angular. Check out the frontend repository on Check out the frontend repository on GitHub

  • Authentication and Authorization: We prioritize security by implementing robust user authentication and authorization mechanisms, guaranteeing safe and controlled access to the system.

  • Multi-Account Support: Users have the convenience of creating up to three separate accounts within the system, catering to various financial needs and goals.

  • Comprehensive Account Details: Customers can easily access a wealth of information about their accounts, including balance summaries, card numbers, CVV numbers, and more. This empowers users with a clear overview of their financial status.

  • Efficient Transaction Handling: Our system offers well-defined API endpoints that enable seamless fund transfers between accounts. This ensures efficient and accurate transaction processing.

Installation

To run the Bank Management System locally, you will need the following:

  • Java 11 or higher
  • Maven
  • PostgreSQL

Once you have the required tools installed, follow these steps to install the Bank Management System:

  1. Clone this repository:
       git clone git clone https://github.com/akshaybagujar1001/BankCoreX.git
    
  2. Edit the database configurations in application.properties file.
  3. Navigate to the project directory:
    cd bank-management-system-springboot
  4. Build and run the application using Maven
    mvn spring-boot:run
  5. Explore the Application: Once the application is up and running, open your web browser and access it at: http://localhost:8080
  6. Access API Documentation: Additionally, you can explore the API documentation by navigating to: http://localhost:8080/swagger-ui.html. This provides detailed insights into the available API endpoints and functionalities.

Usage

  • Customer Actions:

    • Account Creation: As a customer, you have the privilege of creating multiple accounts tailored to your financial needs.
    • View Account Details: Easily access comprehensive details about your accounts, empowering you with insights into your balances and transactions.
  • Transaction Operations:

    • Deposit Funds: Any interface can conveniently utilize the /transaction/deposit endpoint to securely deposit funds into specified accounts.
    • Withdraw Funds: Similarly, the /transaction/withdraw endpoint is available for withdrawing funds from accounts, ensuring your transactions are seamless and accurate.

Database Schema

erDiagram
    User {
        SERIAL id PK
        VARCHAR name
        VARCHAR password
        VARCHAR phone "UNIQUE"
        VARCHAR email "UNIQUE"
    }
    
    Account {
        SERIAL id PK
        VARCHAR card_number "UNIQUE"
        VARCHAR cvv
        DOUBLE balance
        SERIAL user_id FK
    }

    Transaction {
        SERIAL id PK
        VARCHAR type
        DOUBLE amount
        TEXT notes
        DATE timestamp
        SERIAL account_id FK
    }

    User ||--o{ Account : "has"
    Account ||--o{ Transaction : "history"
Loading

Technologies Used

  • Java
  • Spring Boot
  • Spring Security
  • json web token (JWT)
  • Spring Data JPA
  • Lombok
  • PostgreSQL
  • Maven
  • Swagger
  • Docker

Contributing

Contributions to the Bank Management System project are welcome! If you'd like to contribute:

  1. Fork the repository.
  2. Create a new branch for your feature.
  3. Commit your changes.
  4. Push the branch.
  5. Open a Pull Request explaining your changes.

About

RESTful banking backend system using Spring Boot, JWT, and PostgreSQL — clean & production-ready

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages