Skip to content

This Secure Banking Management System is a professional-grade desktop application designed for internal bank staff to manage day-to-day financial operations. Built with Python and a MySQL backend, it provides a centralized platform for handling sensitive customer data, account balances, and loan tracking within a security-hardened environment.

Notifications You must be signed in to change notification settings

daninR2/SQL-Database

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 

Repository files navigation

🏦 Secure Banking Management System

A comprehensive desktop application built with Python and Tkinter, designed for banking staff to manage customers, handle financial accounts, track transactions, and generate financial reports. This system features a robust security layer including session management, input sanitization, and encrypted credential verification. ✨ Features

πŸ”’ Secure Authentication: Multi-factor style security with login attempt limits and automatic session timeouts.

πŸ‘₯ Customer Management: Full CRUD (Create, Read, Update, Delete) operations for bank customers with built-in validation for emails and phone numbers.

πŸ’³ Account Operations: Manage multiple account types (Chequing, Saving, TFSA, RRSP, RESP, FHSA) with real-time balance tracking.

πŸ“Š Transaction History: A searchable ledger of all financial movements across the system.

πŸ’° Loan Management: Track loan statuses, interest rates, and amounts per customer.

πŸ“ˆ Financial Reporting: A built-in reporting engine providing customer financial summaries, total balances, and active product counts.

🎨 Modern GUI: A clean, organized interface using ttk themed widgets, scrollable treeviews, and tabbed notebooks.

πŸ› οΈ Tech Stack

Language: Python 3.x

GUI Framework: Tkinter / ttk

Database: MySQL (via mysql-connector-python)

Security: Custom SecurityManager for SHA-256 hashing and XSS/Injection prevention.

πŸ“‹ Prerequisites

Before running the application, ensure you have the following installed:

MySQL Connector for Python:
Bash

pip install mysql-connector-python

πŸš€ Installation & Setup

  1. Database Configuration

Create a MySQL database and run your schema scripts. Your database should include the following tables: User, Customer, Account, AccountType, Transactions, Loan, and Insurance. 2. Project Files

Ensure your directory structure looks like this: Plaintext

. β”œβ”€β”€ main.py # The GUI code provided β”œβ”€β”€ config.py # Database and App configurations β”œβ”€β”€ security.py # SecurityManager class └── README.md

  1. Configuration (config.py)

Create a config.py file to store your credentials: Python

DB_CONFIG = { 'host': 'localhost', 'user': 'your_username', 'password': 'your_password', 'database': 'banking_db' }

APP_CONFIG = { 'max_login_attempts': 3, 'session_timeout_minutes': 15 }

  1. Running the App Bash

python main.py

πŸ›‘οΈ Security Implementation

The system is designed with a "Security First" mindset:

Input Sanitization: All user inputs are cleaned to prevent SQL Injection.

Password Hashing: Passwords are never stored in plain text (managed by SecurityManager).

Session Guard: The system monitors user activity; if the application is idle, it automatically logs the user out to protect sensitive data.

Validation: Regex-based validation for emails and phone numbers ensures data integrity.

πŸ“ˆ Database Schema Overview

The system interacts with a relational database containing:

Customer: Basic identity info.

Account & AccountType: Financial holdings linked to customers.

Transactions: Historical record of credits/debits.

Loans: Credit products and their current status.

User: Internal staff credentials and roles (Admin/Staff).

🀝 Contributing

Fork the Project.

Create your Feature Branch (git checkout -b feature/AmazingFeature).

Commit your Changes (git commit -m 'Add some AmazingFeature').

Push to the Branch (git push origin feature/AmazingFeature).

Open a Pull Request.

About

This Secure Banking Management System is a professional-grade desktop application designed for internal bank staff to manage day-to-day financial operations. Built with Python and a MySQL backend, it provides a centralized platform for handling sensitive customer data, account balances, and loan tracking within a security-hardened environment.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published