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. ๐ก
- 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.
- 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.
- 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. |
- 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. ๐
- 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.
- 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.
- 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.
- 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. ๐ฆ
| 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. |
| 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. |
| 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. |
| 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. |
- Copy all files into a single folder. ๐
- Open
main.cppin your preferred development environment. ๐ - Build the project. ๐ ๏ธ
- Run the program and enjoy a smooth and interactive experience! โจ
- 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. ๐ฅ
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 ๐.
Love this project? Want to improve it?
Feel free to submit Issues or Pull Requests on GitHub โ your contributions are highly appreciated! ๐
Ahmed Jehad Ahmed
๐ GitHub Profile
๐ง Email Contact