Skip to content

Kirtan-pc/Bank-Management-System

Repository files navigation

Bank Management System

A Streamlit-based Bank Management System with MySQL backend for managing customers, accounts, and transactions.

Features

  • 👥 Customer Management (Add/View customers)
  • 💳 Account Management (View accounts and balances)
  • 💸 Money Transfer between accounts
  • 📊 Transaction History with filtering options
  • 🔒 Secure transaction processing with automatic rollback on errors

Prerequisites

  • Python 3.11 or higher
  • MySQL Server
  • Git (for version control)

Setup Instructions

  1. Clone the repository:
git clone [your-repository-url]
cd BankManagerTkinter
  1. Create a virtual environment and activate it:
# Windows
python -m venv .venv
.venv\Scripts\activate

# Linux/Mac
python -m venv .venv
source .venv/bin/activate
  1. Install required packages:
pip install -r requirements.txt
  1. Set up the database:
    • Create a MySQL database named 'mydb'
    • Run the setup_database.sql script to create tables and sample data:
mysql -u root -p mydb < setup_database.sql
  1. Configure environment variables:

    • Copy .env.example to .env
    • Update the values in .env with your MySQL credentials
  2. Run the application:

streamlit run app.py

Environment Variables

Create a .env file in the project root with the following variables:

DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password_here
DB_NAME=mydb

Database Schema

The system uses three main tables:

  • Customer: Stores customer information
  • Account: Manages bank accounts and balances
  • TransactionTbl: Records all money transfers

Usage

  1. Start the application using streamlit run app.py
  2. Access the web interface at http://127.0.0.1:8502
  3. Use the tabs to navigate different features:
    • Customers: Add and view customer information
    • Accounts: View account balances
    • Transfer Money: Make transfers between accounts
    • Transactions: View transaction history

Security Features

  • Automatic transaction rollback on errors
  • Secure password handling using environment variables
  • Input validation and error handling
  • Database connection pooling

Contributing

  1. Fork the repository
  2. Create a new branch
  3. Make your changes
  4. Submit a pull request

License

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages