Banking Application (GUI) A desktop-based Banking Application built with Python and CustomTkinter, featuring account management, transactions, and customer verification.
A desktop-based Banking Application built with Python and CustomTkinter, featuring account management, transactions, and customer verification.
- User Registration (Sign Up)
- OTP-based Email Verification
- User Authentication (Sign In)
- Deposit & Withdraw Money
- Check Account Balance
- Transaction History (Download as Excel file)
- Admin Panel for Customer Management
Ensure you have the following installed:
- Python (>=3.7)
- pip (Python package manager)
- MySQL Server
-
Open MySQL Workbench or CLI.
-
Create a new database:
CREATE DATABASE new_bank; ### create table to store customer details CREATE TABLE customer_info ( c_id INT AUTO_INCREMENT PRIMARY KEY, fname VARCHAR(50), mname VARCHAR(50), lname VARCHAR(50), gender VARCHAR(1), phoneno VARCHAR(15), email VARCHAR(255), aadharno VARCHAR(12), dob DATE, age INT, occupation VARCHAR(20), monthly_income VARCHAR(20), marital_status VARCHAR(20), education VARCHAR(20), date DATE, username VARCHAR(10), password VARCHAR(4), balance INT, target_balance VARCHAR(10) );
-
Create new table for storing customer details
Update database credentials in
bank_app.py
insideget_db_connection()
function.
The GUI application will launch.
- Sign Up: Register a new user.
- Sign In: Log in using registered credentials.
- Deposit/Withdraw: Perform transactions.
- Admin Panel: Manage customer accounts.
You can convert the application into an executable using Auto-py-to-exe or Pyinstaller:
pip install auto-py-to-exe
# run this command
auto-py-to-exe
This guide helps package bank_app_.py
into an executable using PyInstaller in Anaconda Prompt.
Ensure PyInstaller is installed:
pip install pyinstaller
If working with Excel files, reinstall openpyxl
:
pip uninstall openpyxl
pip install --no-cache-dir openpyxl
Run PyInstaller with submodule collection:
pyinstaller --onefile --collect-submodules openpyxl bank_app_.py
Increase recursion limit:
import sys
sys.setrecursionlimit(5000)
###or else upgrade pyinstaller
pip install --upgrade pyinstaller
Manually add them in bank_app_.py
:
import openpyxl.cell._writer
Or use a .spec
file:
- Generate a
.spec
file:pyi-makespec bank_app_.py
- Edit and add hidden imports:
hiddenimports=['openpyxl', 'openpyxl.cell', 'openpyxl.cell._writer']
- Build with:
pyinstaller bank_app_.spec
After packaging, navigate to the dist
folder:
dist\bank_app_.exe
🚀 Happy coding!
auto-py-to-exe will open a gui window which asks for file location and select window-based option and one file option and .exe file will be created.
pyinstaller will create a build folder and your exe application will be in dist folder.