https://github.com/momen-alshouha/console-app-bank
Bank console application implemented using c++ and object-oriented programming paradigm connected and deals with files as a database.
https://github.com/momen-alshouha/console-app-bank
abstraction classes-and-objects console-application cpp devide-and-conquer encapsulation filesystem inheretence object-oriented-programming polymorphism static-members
Last synced: 8 months ago
JSON representation
Bank console application implemented using c++ and object-oriented programming paradigm connected and deals with files as a database.
- Host: GitHub
- URL: https://github.com/momen-alshouha/console-app-bank
- Owner: Momen-Alshouha
- License: mit
- Created: 2023-12-23T12:44:44.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-01-02T17:21:45.000Z (almost 2 years ago)
- Last Synced: 2025-01-10T16:54:17.539Z (9 months ago)
- Topics: abstraction, classes-and-objects, console-application, cpp, devide-and-conquer, encapsulation, filesystem, inheretence, object-oriented-programming, polymorphism, static-members
- Language: C++
- Homepage:
- Size: 1.03 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# 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## 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:
1. **clsDate**: Handles date-related operations.
2. **clsPeriod**: Manages time periods and durations.
3. **clsInputValidation**: Validates user inputs and ensures data integrity.
4. **clsString**: Manipulates strings and formats data.
5. **clsUtil**: Contains miscellaneous functions used across the application.
## Admin AccessThe 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
1. **Clone the Repository:**
```bash
git clone https://github.com/Momen-Alshouha/console-app-bank.git
cd console-app-bank
```2. **Compile the Code:**
- **For Visual Studio :**
Open the project in Visual Studio and compile using the IDE.
- **For Unix-like systems (using GCC):**
```bash
g++ -o console-app-bank console-app-bank.cpp
```
- **For Windows (using MinGW):**```bash
g++ -o console-app-bank.exe console-app-bank.cpp
```
### ExecutionRun the Executable:
- **For Visual Studio:**
Run the compiled application from within the Visual Studio Community IDE.
- **For Unix-like systems (using GCC):**
```bash
./console-app-bank
```- **For Windows:**
```bash
console-app-bank.exe
```