π¦ Bank Management System (Console App)
π» A fully-featured Console-based Bank Management System developed in C++ using Object-Oriented Programming (OOP) principles. π The project simulates real banking operations such as user authentication, client management, transactions, permissions, and currency exchange.
π Project Overview
π― This system is designed to demonstrate strong OOP design in C++ through a modular, scalable, and maintainable architecture. πΎ All data is persisted using file-based storage, with π encrypted sensitive information.
π§± System Architecture
π§© The project is organized into multiple layers and responsibilities:
π Authentication & Security
π Secure login system with 3 attempts limit
π Encrypted passwords stored in files
π Login activity tracking (Login Register)
π‘οΈ Role-based access control using permissions
π§βπΌ User Management
β Add users
βοΈ Update users
β Delete users
π§Ύ Permission-based access control
π Login history tracking
π₯ Client Management
β Add new clients
βοΈ Update client information
β Delete clients
π Search for clients
π Display full client list
π° Transactions
π΅ Deposit
πΈ Withdraw
π Money transfer between clients
π Transaction history
π Currency Exchange
π Currency rates loaded from file
π Search currency by code or country
β»οΈ Update exchange rates
π² USD-based conversion system
π₯οΈ Console UI System
π Fully menu-driven console interface
π§ Screen-based navigation
π¨ Colored output and progress indicators
π§± Modular screen classes for each feature
π§ Key Classes Overview
π§© Class π Responsibility
clsLoginScreen π Handles authentication, login attempts, and session start clsMainScreen π Main navigation menu and system flow control clsUser π€ User entity, authentication, permissions, encryption, persistence clsCurrency π± Currency data management and exchange rates clsScreen π₯οΈ Base class for all UI screens clsUtil π Encryption / Decryption utilities clsFileManager πΎ File-based data persistence
π Permissions System
βοΈ The system uses bitwise permissions, allowing flexible role management:
π List Clients
ββοΈβ Add / Update / Delete Clients
π° Transactions
π§βπΌ Manage Users
π View Login Register
π Full Access (Admin)
πΎ Data Storage
π All data is stored using text files:
π€ BUsers.txt β Users data (π encrypted passwords)
π LoginRegister.txt β Login history
π± Currencies.txt β Currency exchange rates
π₯ Clients & π° transactions stored similarly
π οΈ Technologies Used
π» C++
π§ Object-Oriented Programming (OOP)
π File Handling (fstream)
π¦ STL (vector, string)
π¨ Console UI enhancements
π Encryption & Decryption utilities
Click on any image to watch the project video on LinkedIn
- π Main code files:
Bank System In OOP.cppβ ποΈ main program file- All
.hfiles β π¦ class and function definitions
- πΎ Data files:
BClients.txtβ π€ client informationBUsers.txtβ π user accountsCurrencies.txtβ π± currency ratesLoginRegister.txt,TransferLog.txtβ ποΈ login and transaction logs
β οΈ Note: Keep all data files in the same folder as the program; they are required for the system to work properly.
- Open the project in any C++ IDE (e.g., Visual Studio) π».
- Make sure all code files and data files are in the same folder π.
- Build the project (Visual Studio shortcut:
Ctrl + Shift + B) βοΈ. - Press Start / F5
βΆοΈ to run the program. - The console window will show the main menu, allowing you to:
- π Log in as a user
- π₯ Manage clients (Add/Update/Delete)
- π° Perform transactions (Deposit/Withdraw/Transfer)
- π Check balances and transaction history
- π± Manage currencies and update rates
Wael Samer β Software Engineering Student
This project was assigned by Dr. Mohamed Abu Hadhoud as part of a course on Programming Advices platform .


























