Banking System Project Report
Banking System Project Report
Submitted to
School of Engineering and Technology
IN PARTIAL FULFILLMENT
OF THE DEGREE OF
“CERTIFICATE”
Date 07/05/2025
Guide:
DR. Shashank swami Prof. Dharmendra Sharma
HOD OF CSE Department of CSE
Vikrant University Vikrant University
Vikrant University, Gwalior (M.P)
“DECLARATION CERTIFICATE”
Date: ____________
Signature:
Satyam Paliya(01ECSB003)
Acknowledgment
I would like to express my sincere gratitude to all those who have
supported me throughout the completion of this project, “Banking
System.”
First and foremost, I would like to thank Prof. Dharmendra Sharma,
Department of Computer Science and Engineering, Vikrant
University, for his invaluable guidance, encouragement, and
continuous support. His expert advice and insightful feedback greatly
enhanced the quality of this project.
I also extend my heartfelt thanks to the faculty members of the CSE
Department for providing the necessary facilities and resources during
the course of this project.
My deepest appreciation goes to my family and friends for their moral
support, constant motivation, and encouragement throughout the
project journey.
Lastly, I would like to thank Vikrant University for providing a
learning environment that encouraged innovation and practical
application of theoretical concepts.
Satyam Paliya
Student, CSE
Vikrant University
INDEX
Page
S. No. Section Title Sub-sections (if any)
No.
Abstract
3.1Hardware Requirements
3. System Requirements
3.2Software Requirements
4.1 Frontend
4.2 Backend
4. Technologies Used
4.3 Database
4.4 Tools & Platforms
These issues highlight the need for a secure, efficient, and user-centric digital banking
platform that operates independently of physical constraints.
1.3 Background & Scope-:
In traditional hotel management, most tasks are handled manually, leading to inefficiencies,
delays, and human errors. With the growing demand for digital transformation, this system
aims to digitize hotel operations, improve customer satisfaction, and enhance business
productivity.
The scope of this project includes:
• Online room booking and reservation management.
• Real-time availability tracking.
• Admin dashboard for room and user control.
• Secure billing and payment module.
• Role-based access for admin and users.
This system is ideal for small to medium-sized hotels and can be further enhanced to support
multiple branches, mobile platforms, and integration with third-party APIs such as online
payment gateways and SMS/email notification systems.
Chapter – 2
Objective
The primary objective of the GrowBank Banking System is to develop a secure,
user-friendly, and functional application that simulates core banking operations.
This project aims to demonstrate how digital tools can streamline financial
services while ensuring data security and ease of use for both users and
administrators.
Chapter – 3
System Requirements
This section outlines the hardware and software specifications necessary to develop, deploy,
and run the Hotel Management System efficiently.
Chapter - 4
Technologies Used
The GrowBank system is built using a combination of backend logic, graphical
user interface tools, and database technologies. Each component plays a vital
role in ensuring that the application is functional, secure, and easy to use.
4.2Backend Technologies
1. Python 3.x: Python is the core programming language used in the project. It
provides flexibility, readability, and powerful libraries that help handle backend
logic, data processing, and GUI management.
2. Built-in Python Libraries:
• sqlite3: Enables seamless communication between the Python application and
the SQLite database.
• random: Used for OTP generation and simple numeric logic.
• datetime: Tracks timestamps of transactions.
• os: Facilitates system-level operations like launching files or handling paths.
.
Chapter - 5
Software Development Life Cycle
The Software Development Life Cycle (SDLC) provides a structured framework for designing,
developing, testing, and maintaining software applications. The GrowBank system follows the
Iterative Model, where the application is built in cycles, with each iteration adding new
functionalities and refinements based on testing feedback.
1. Requirement Analysis
• Identified key banking features such as user login, account
management, transaction tracking, and admin control.
• Considered both functional requirements (e.g., deposit/withdrawal)
and non-functional needs (e.g., security, usability).
2. System Design
• Designed modular components such as [Link], [Link],
[Link], and admin_panel.py.
• Defined database structure in [Link] using SQLite tables for
users, transactions, SIPs, and donations.
• Diagrams (Use Case, Class Diagram) were created to visualize flow
and structure.
3. Implementation (Coding)
• Developed the application using Python 3.x and PyQt5.
• Separated code into logical modules for better organization and
debugging.
• Used SQLite for lightweight, embedded database operations.
• PyInstaller was used to convert the Python files into a .exe application.
4. Testing
• Conducted unit testing for each module (e.g., login, transaction).
• Performed integration testing to ensure smooth communication
between components.
• Verified data integrity in the SQLite database after each transaction.
5. Deployment
• Final executable file created using PyInstaller.
• The application can be distributed and run independently on any
compatible Windows system without requiring Python to be pre-
installed.
6. Maintenance
• The project is structured for easy feature updates, bug fixes, and future
enhancements.
• New modules like multi-user login, two-factor authentication, or
online database integration can be added later.
Chapter - 6
System Design & Architecture
This chapter explains how the Growbank application is structured, how its components interact,
and how data flows through the system.
6.1System Flow-:
1. Application Launch
• the user starts the executable ([Link]).
• A Splash / Login Window built with PyQt5 is displayed.
2. Authentication Layer
• Signup – new users create an account; credentials are stored in Users table in [Link].
• Login – existing users enter username and request a one‑time password (OTP).
• OTP is generated in [Link] and verified before access is granted.
• Admin Login – separate credentials verified against Admin table.
3. Dashboard Navigation
• After successful login, [Link] loads:
• Account Summary – current balance and last 5 transactions.
• Buttons for Deposit, Withdrawal, SIP, Donate, View History, Logout.
4. Transaction Processing
• User chooses Deposit or Withdrawal.
• Amount is validated; on success, a record is inserted into Transactions table with type,
amount, date‑time.
• Balance is recalculated and displayed instantly.
5. Value‑Added Modules
• SIP Plan – available only if user age ≥ 18; details stored in SIP table.
• Child Fund Donation – amount is moved to Donations table; running total visible to admin.
6. Admin Panel (admin_dashboard.py)
• View all users, search by username, reset passwords.
• Monitor complete transaction log, active SIP plans, donation ledger.
• Export tables to CSV for audit purposes.
7. Logout / Exit • User session variables are cleared; the login window reappears or the
application closes.
6.2 Architecture Diagram
Transaction
txn_id, user_id, amount, type,
(constructor only)
date
SIP
sip_id, user_id, monthly_amt,
start_sip(), calculate_maturity()
tenure
DatabaseManager connection execute_query(), fetch_records()
Chapter – 7
Functional Modules
The GrowBank system is divided into clear functional modules, each designed to execute a
specific banking operation. These modules interact with the [Link] SQLite database and
provide a user-friendly GUI built with PyQt5
Purpose:
To handle user registration, authentication, and account management.
Functionality:
• [Link]: Allows new users to register with username, password, phone number, and
account type (e.g., Savings).
• [Link]: Manages login using OTP verification sent during the session.
• User credentials and initial balance are saved in the users table.
DatabaseFields:
users(id, username, password, balance, account_type, phone)
Purpose:
To grant administrative access to approved staff.
Functionality:
• admin_login.py: Validates login against credentials stored in the admin table.
• Admin users can then access the admin_dashboard.py.
DatabaseFields:
admin(id, username, password)
Purpose:
To allow users to deposit funds into their account.
Functionality:
• [Link] updated
• transactions(username, type, amount, date, account_type) inserted
Purpose:
To let users withdraw funds with balance checks.
Functionality:
Validation:
No overdraft allowed. Negative balances are prevented at logic level.
Purpose:
To give users visibility into their financial activities.
Functionality:
• view_transactions.py: Fetches all deposits and withdrawals for the logged-in user.
• Displayed chronologically in the dashboard.
DatabaseTable:
transactions
7.6 Dashboard Module
Purpose:
To serve as the central hub after login.
Functionality:
• [Link]: Launches the main user interface with buttons for deposit, withdrawal,
transaction history, SIP, donations, and logout.
• Displays real-time balance fetched from the database.
Purpose:
To simulate a Systematic Investment Plan for eligible users.
Functionality:
Purpose:
To allow users to donate to a shared child support fund.
Functionality:
Purpose:
To allow admin users to monitor and manage all banking operations.
Functionality:
• admin_dashboard.py: Admin can view all registered users, transaction history, total
donations, and SIP participations.
• Admin can reset user passwords via an interface.
This structure ensures each banking operation is handled securely and modularly using a
combination of GUI elements and SQLite database calls.
Chapter – 8
Database Design:-
The database is the backbone of the GrowBank Banking System. It ensures all user data,
transactions, and administrative records are stored securely and efficiently. GrowBank uses
SQLite, a lightweight embedded database, accessed using Python’s built-in sqlite3 module.
1. Users
2. Transactions
3. Admin
Entity Relationships:
[Link] table-:
Field Name Data Type Description
id INTEGER Primary key (auto-increment)
username TEXT Foreign key referencing [Link]
type TEXT Type of transaction (Deposit/Withdraw)
amount REAL Amount involved in the transaction
date TEXT Timestamp of the transaction
account_type TEXT Same as user's account type
[Link] Table-:
[Link]
OTP is generated and compared Access granted if OTP
Pass
with user input matches
[Link]
User blocked from
Incorrect OTP is entered Pass
proceeding
reset_password.py
Matching phone number and Password updated in
Pass
username provided database
[Link]
Create account with unique New user added to users
Pass
username table
[Link]
Buttons trigger deposit, withdraw,
Correct windows open Pass
transaction windows
[Link]
Balance updated,
Valid numeric amount entered Pass
transaction logged
[Link]
Success and new balance
Withdraw amount less than balance Pass
shown
[Link]
Error shown, transaction
Withdraw amount exceeds balance Pass
not allowed
view_transactions.py
Chronological list is
User views past transactions Pass
displayed
[Link] Testing-:
Testing of how all modules interact together within the running EXE ([Link]):
Admin Admin login → view user accounts and Admin panel displays
Pass
operations transactions correct data
Testing Methodology
• Manual GUI Testing via PyQt5 windows.
• Database Verification through direct inspection of [Link].
Code-level input validation (especially in [Link], [Link], and reset_password.py)
ensures robustness.
Chapter – 10
User Roles
The GrowBank application defines two primary roles within the system: User and
Admin. Each role has specific access levels, responsibilities, and interface experiences.
This role-based approach ensures proper authorization, data security, and controlled
access to banking functionalities.
Interface:
Upon login, users are redirected to the Dashboard ([Link]) which
provides buttons for each available action. The user can only access and view
their own data.
Limitations:
Interface:
After successful login, the admin is directed to the Admin Dashboard, where
they have access to management panels and real-time database insights.
Privileges:
Chapter – 11
Future Enhancements
Although the GrowBank Banking System fulfills its current objectives effectively, there are
several areas where the application can be expanded or improved. These enhancements would
further increase usability, scalability, and security, making it suitable for larger-scale or real-
world applications.
These future enhancements will significantly increase the professional capabilities of the
GrowBank system, transforming it from a student project to a production-ready application.
Chapter – 12
Conclusion
The GrowBank Banking System project successfully demonstrates the
development of a secure, modular, and user-friendly desktop banking
application using Python, PyQt5, and SQLite. By implementing core
banking functionalities such as account management, deposits,
withdrawals, transaction tracking, and admin controls, the system
simulates a real-world banking environment within an academic
framework.
Overall, GrowBank not only meets its intended objectives but also
serves as a potential blueprint for more sophisticated personal or
institutional banking tools.
Chapter – 13
References
References