A Streamlit-based Bank Management System with MySQL backend for managing customers, accounts, and transactions.
- 👥 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
- Python 3.11 or higher
- MySQL Server
- Git (for version control)
- Clone the repository:
git clone [your-repository-url]
cd BankManagerTkinter- 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- Install required packages:
pip install -r requirements.txt- Set up the database:
- Create a MySQL database named 'mydb'
- Run the
setup_database.sqlscript to create tables and sample data:
mysql -u root -p mydb < setup_database.sql-
Configure environment variables:
- Copy
.env.exampleto.env - Update the values in
.envwith your MySQL credentials
- Copy
-
Run the application:
streamlit run app.pyCreate 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
The system uses three main tables:
Customer: Stores customer informationAccount: Manages bank accounts and balancesTransactionTbl: Records all money transfers
- Start the application using
streamlit run app.py - Access the web interface at
http://127.0.0.1:8502 - 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
- Automatic transaction rollback on errors
- Secure password handling using environment variables
- Input validation and error handling
- Database connection pooling
- Fork the repository
- Create a new branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.