Skip to content
/ BankPro Public

BankPro ๐Ÿฆ A simple banking system built in C++. It allows adding, updating, deleting, and searching for client records using file I/O for data storage.

Notifications You must be signed in to change notification settings

7mee3d/BankPro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฆ Bank Management System

Welcome to the Bank Management System! ๐ŸŽ‰

This is a comprehensive system developed in C++ using Object-Oriented Programming (OOP) principles. It offers a professional, educational, and flexible experience for managing clients, financial transactions, users, and permissions. ๐Ÿ’ผ

Whether you're a student eager to grasp OOP concepts, a developer aiming to build real-world systems, or even managing a small bank or a simple financial activity, this system is designed to be your ideal choice. ๐Ÿ’ก


๐ŸŒŸ Why is this System Special?

๐Ÿง  Professional Software Design using OOP

  • Encapsulation: ๐Ÿ›ก๏ธ Protects data from arbitrary manipulation, ensuring data integrity.
  • Inheritance: โ™ป๏ธ Reduces redundancy and promotes efficient code reuse, saving development time.
  • Polymorphism: โœจ Provides high flexibility in customizing and extending classes, making the system adaptable.
  • Single Responsibility Principle: ๐ŸŽฏ Each class is dedicated to a specific function, leading to cleaner and more maintainable code.

โœจ Unique Features

  • Powerful Learning Experience: ๐Ÿ“š Perfect for hands-on learning of OOP concepts through a practical, real-world application.
  • Advanced Security: ๐Ÿ”’ Precise permissions for each operation ensure complete protection and prevent unauthorized access.
  • Simple & Efficient Storage: ๐Ÿ’พ All data is stored in text files, making it portable and easy to maintain.
  • User-Friendly Interactive Interface: ๐Ÿ–ฅ๏ธ Clear menus and smart guidance for every step, ensuring a smooth user experience.
  • Scalability: ๐Ÿ“ˆ Easily add new features or integrate the system with graphical interfaces in the future, allowing for growth.

๐Ÿš€ Detailed Features

๐Ÿ‘ฅ Client Management

  • Add New Clients: โž• Easily add new clients with all essential details.
  • Update Client Data: ๐Ÿ–‹๏ธ Quickly and efficiently update client information.
  • Search for Clients: ๐Ÿ” Find clients using their account number or name.
  • Delete Clients: โŒ Securely delete clients while retaining records for archiving purposes.
  • View Client List: ๐Ÿ“‹ Display an organized and easy-to-read list of all clients.

Fields Stored for Each Client:

Field Description
Account Number A unique number for each client.
PIN For verification during transactions.
Name Full name of the client.
Phone Phone number.
Balance Current amount in the account.
Status Active or Deleted.

๐Ÿ’ฐ Banking Transactions

  • Deposit: ๐Ÿ’ธ Easily add funds to an account.
  • Withdraw: ๐Ÿ’ต Deduct funds with balance verification.
  • Transfer: ๐Ÿ”„ Securely and quickly transfer funds between accounts.
  • View Total Balances: ๐Ÿ“Š See the total amount of money across all accounts.

Tip: All operations are protected by the permissions system to prevent errors or manipulation. ๐Ÿ”’


๐Ÿ‘จโ€๐Ÿ’ป User Management

  • Add New Users: ๐Ÿ‘ค Add new users, whether employees or managers.
  • Define Precise Permissions for Each User: ๐Ÿ”‘
    • Client management only.
    • Transaction execution only.
    • Full administrative permissions.
  • Update User Data: ๐Ÿ–‹๏ธ Update user information at any time.
  • View Full User List: ๐Ÿ‘€ Display a complete list of users and their permissions.

๐Ÿ“ˆ Currency Exchange

  • View Stored Currency Rates: ๐Ÿช™ Display currency rates stored in a dedicated file.
  • Search for Specific Currency: ๐Ÿ” Find a specific currency and its value.
  • Update Exchange Rates: โœ๏ธ Easily update exchange rates.
  • Accurate Conversion Calculations: ๐Ÿงฎ Perform precise conversions between different currencies.

๐Ÿ“ Storage & Logging

  • Simple & Organized Text Files: ๐Ÿ“‚
    • Client.txt โ€“ Client data.
    • Users.txt โ€“ User data.
    • Currencies.txt โ€“ Currency rates.
    • TransferLog.txt โ€“ Transfer log.
    • RegisterLoginsUsers.txt โ€“ Login/logout log.
  • Automatic File Creation: ๐Ÿ›ก๏ธ Files are automatically created upon first run if they don't exist.

๐Ÿ›  System Requirements

  • Modern C++ Compiler: GCC, MSVC, or Clang. ๐Ÿ’ป
  • Operating System: Windows or Linux. ๐Ÿง
  • Development Environment: Visual Studio, Code::Blocks, or VS Code. ๐Ÿš€
  • No External Libraries: Relies only on standard libraries, keeping it lightweight. ๐Ÿ“ฆ

๐Ÿ“‚ Full Project Structure

๐Ÿงฉ Client & Transaction Files

File Description
clsBankClient.h Manages basic client data.
clsAddNewClient.h Adds new clients.
clsDeleteClient.h Securely deletes clients.
clsUpdateClient.h Updates client data.
clsFindClient.h Searches for clients.
clsShowClientsList.h Displays an organized list of clients.
clsTransferBalance.h Transfers funds between accounts.
clsShowTotalBalance.h Displays total balances.
clsDepositeOperation.h Handles deposit operations.
clsWithdrawOperation.h Handles withdrawal operations.

๐Ÿง‘โ€๐Ÿ’ป User Management & Permissions Files

File Description
clsUserBank.h Manages user data and permissions.
clsAddNewUser.h Adds new users.
clsDeleteUser.h Deletes users.
clsUpdateUser.h Updates user data.
clsFindUser.h Searches for users.
clsShowUserList.h Displays all users with their permissions.
clsRegisterLogUsers.h Logs login and logout operations.
clsMangeUserSecren.h/.cpp User management interface.

๐Ÿ’ฑ Currency Exchange Files

File Description
clsCurrency.h Manages currency data.
clsFindCurrency.h Searches for a specific currency.
clsShowListCurrency.h Displays all currencies.
clsUpdateRate.h Updates currency rates.
clsCalculatorCurrency.h Performs currency conversion calculations.
clsMainMenuCurrencyExchange.h Currency exchange interface.

๐Ÿ”ง Service & Helper Files

File Description
clsLogin.h Manages login and verification.
clsMainMenuSecreen.h Main menu interface.
clsDate.h Handles dates and times.
clsPerson.h Base class for personal information.
clsString.h String manipulation functions.
clsInputValidate.h Input validation.
clsUtility.h General utility tools.
GlobalVarablesAndConstants.h Stores global variables and constants.

โšก How to Run

  1. Copy all files into a single folder. ๐Ÿ“
  2. Open main.cpp in your preferred development environment. ๐Ÿš€
  3. Build the project. ๐Ÿ› ๏ธ
  4. Run the program and enjoy a smooth and interactive experience! โœจ

๐Ÿ’ก Important Tips

  • Do not manually modify text files unless you understand the required format. โš ๏ธ
  • Ensure the program runs with appropriate permissions to save files. ๐Ÿ”‘
  • Try different user roles to fully understand the permissions system. ๐Ÿ‘ฅ

๐Ÿ“› Why the Name "BankPro"?

The project was named "BankPro" ๐Ÿฆ to reflect its purpose as a professional and reliable banking system. The word "Bank" ๐Ÿ’ฐ represents the core functionality of the system โ€” managing clients, accounts, and transactions. The suffix "Pro" ๐Ÿง‘โ€๐Ÿ’ป stands for "Professional", indicating that the system is well-structured, scalable, and built with Object-Oriented Programming (OOP) principles โš™๏ธ, making it suitable for advanced and professional-level use ๐Ÿš€.


๐Ÿค Contributing

Love this project? Want to improve it?
Feel free to submit Issues or Pull Requests on GitHub โ€” your contributions are highly appreciated! ๐Ÿ™Œ


๐Ÿ‘จ๐Ÿ’ป Author

Ahmed Jehad Ahmed

๐Ÿ”— GitHub Profile

๐Ÿ“ง Email Contact

About

BankPro ๐Ÿฆ A simple banking system built in C++. It allows adding, updating, deleting, and searching for client records using file I/O for data storage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published