Momen-Alshouha/console-app-bank
Bank console application implemented using c++ and object-oriented programming paradigm connected and deals with files as a database.
Bank Console App (C++)
This repository contains a console-based banking application written in C++, emphasizing Object-Oriented Programming (OOP) principles. The application manages client and user data through file handling for CRUD (Create, Read, Update, Delete) operations for both clients and users, integrating simple permission-based functionalities, including a login system for users.
Key Features
-
Client Operations:
- Create, Read, Update, Delete client data
- Manage client accounts and transactions
-
User Operations:
- Create, Read, Update, Delete user data
- Permission-based operations
- User login and authentication
- Logging of user login activity
- Encrypt password in files
-
Additional Features:
-
Transfer Feature:
- If has permission, Users can transfer funds between clients
-
Login Logs:
- Records login activities for users
- Tracks login timestamps and user sessions
-
Transfer Logs:
- Maintains a log of all fund transfer activities
- Contains details such as transfer amount, sender, receiver, and timestamps
-
Currency Operations:
- List Currencies:
- Provides a list of supported currencies for reference
- Find Currency:
- Allows users to search for specific currency information
- Update Rate:
- Updates currency exchange rates from a reliable source
- Currency Converter:
- Enables users to convert between different currencies based on the updated exchange rates
- List Currencies:
-
Custom Libraries
This repository includes five custom-built libraries implemented to enhance the functionalities of the banking application, designed to be versatile and usable in other C++ applications too:
- clsDate: Handles date-related operations.
- clsPeriod: Manages time periods and durations.
- clsInputValidation: Validates user inputs and ensures data integrity.
- clsString: Manipulates strings and formats data.
- clsUtil: Contains miscellaneous functions used across the application.
Admin Access
The application includes an admin user with default credentials for testing purposes:
- Username: admin
- Password: admin
Screenshots
Here are some screenshots from the application:
Login
Invalid Login
Login Logs
Main Menu
Manage Users Menu
List Users
List Clients
Client Added Successfully
Find Client
Delete Client
Access Denied
Transactions Menu
Transfer Logs Menu
Curriencies Main Menu
Currencies List
Compile and Run the Code
Prerequisites
Ensure you have the following installed on your system:
- C++ compiler (e.g., GCC for Unix-like systems, MinGW for Windows, or Visual Studio Community for Windows)
- Git (for cloning the repository)
Compilation
-
Clone the Repository:
git clone https://github.com/Momen-Alshouha/console-app-bank.git cd console-app-bank -
Compile the Code:
-
For Visual Studio :
Open the project in Visual Studio and compile using the IDE.
-
For Unix-like systems (using GCC):
g++ -o console-app-bank console-app-bank.cpp
-
For Windows (using MinGW):
g++ -o console-app-bank.exe console-app-bank.cpp
-
Execution
Run the Executable:
-
For Visual Studio:
Run the compiled application from within the Visual Studio Community IDE.
-
For Unix-like systems (using GCC):
./console-app-bank
-
For Windows:
console-app-bank.exe














