A simple and small scale simulation of a real-world banking system implemented in C++ using object oriented programming concepts and 3-tier architecture.
The Bank System project is designed to reflect a real-world banking operations in a small scale and simple functionallity. Leveraging the principles of object-oriented programming (OOP) and clean code practices, this project embodies some clarity in its structure.
Separation of UI, Business, and Database layers for enhanced modularity and maintainability.
Utilizes the power of C++ and the fstream library for seamless data storage and retrieval.
The project embraces key OOP concepts to ensure robustness and flexibility:
- Classes and Objects: Use of classes and objects for encapsulation and abstraction.
- Encapsulation: Protects the internal state of objects, restricting access to only necessary components for improved security.
- Inheritance and Polymorphism: Enhances code reusability and readability through inheritance and polymorphic behaviors.
- Abstraction: Focuses on essential properties and behaviors, hiding unnecessary details to simplify complexity.
The implementation adheres to some clean code principles:
- Fixed Naming Conventions: Consistent naming methods across the system for improved clarity.
- Readability: Ensures the codebase is easy to understand and navigate.
- Maintainability: Designed for ease of maintenance, reducing the cost of future updates.
The system contains over 20 screens, mirroring some of real-world bank-system interactions.
-
Login Screen
- The system user can only access the system with an existing username and password.
- Users have three attempts to log in successfully; otherwise, the system will close automatically.
-
Main Screen
- After a successful login, the main screen with 10 options is displayed to the user.
-
Access to System Features
- Only admins can access all system features.
- Other users are granted access to specific features. Unauthorized attempts result in denial.
-
Manage Clients
- Users can add, delete, update, and find clients.
-
Make Transactions
- Perform various transactions: deposit, withdraw, transfer between accounts, veiw all clients balances, and view transfer logs.





