Skip to content

waelodeh98/Bank-Management-System-OOP-CPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏦 Bank Management System (Console App)

Screenshot ICON

▢️ Click here to watch the demo

πŸ’» 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

πŸ–ΌοΈ Screenshots

Screenshot LOGIN

Screenshot MAIN MENU

Screenshot 1

Screenshot 2

Screenshot 3

Screenshot 4

Screenshot 5

Screenshot 6

Screenshot 6.1 Screenshot 6.2 Screenshot 6.3 Screenshot 6.4 Screenshot 6.5

Screenshot 7

Screenshot 7.1 Screenshot 7.2 Screenshot 7.3 Screenshot 7.4 Screenshot 7.5

Screenshot 8

Screenshot 9

Screenshot 9.1 Screenshot 9.2 Screenshot 9.3 Screenshot 9.4

Screenshot 10

πŸ–₯️ How to Run

πŸ“‚ Important Files:

  • πŸ“ Main code files:
    • Bank System In OOP.cpp β†’ πŸ–‹οΈ main program file
    • All .h files β†’ πŸ“¦ class and function definitions
  • πŸ’Ύ Data files:
    • BClients.txt β†’ πŸ‘€ client information
    • BUsers.txt β†’ πŸ”‘ user accounts
    • Currencies.txt β†’ πŸ’± currency rates
    • LoginRegister.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.

🏁 Steps to Run:

  1. Open the project in any C++ IDE (e.g., Visual Studio) πŸ’».
  2. Make sure all code files and data files are in the same folder πŸ“‚.
  3. Build the project (Visual Studio shortcut: Ctrl + Shift + B) βš™οΈ.
  4. Press Start / F5 ▢️ to run the program.
  5. 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

πŸ‘€ Author

Wael Samer – Software Engineering Student
This project was assigned by Dr. Mohamed Abu Hadhoud as part of a course on Programming Advices platform .

GitHub
LinkedIn Profile

About

Console-based Bank Management System in C++ demonstrating full Object-Oriented Programming (OOP) design, secure user authentication, client and transaction management, role-based access, and currency exchange, with encrypted data and enhanced colored console UI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors