{"id":19725224,"url":"https://github.com/momen-alshouha/console-app-bank","last_synced_at":"2026-06-12T00:31:35.255Z","repository":{"id":215411534,"uuid":"735036476","full_name":"Momen-Alshouha/console-app-bank","owner":"Momen-Alshouha","description":"Bank console application implemented using c++ and object-oriented programming paradigm connected and deals with files as a database.","archived":false,"fork":false,"pushed_at":"2024-01-02T17:21:45.000Z","size":1084,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-28T01:21:54.531Z","etag":null,"topics":["abstraction","classes-and-objects","console-application","cpp","devide-and-conquer","encapsulation","filesystem","inheretence","object-oriented-programming","polymorphism","static-members"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Momen-Alshouha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-12-23T12:44:44.000Z","updated_at":"2024-03-16T21:10:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"6fa2b154-21ac-4fb0-884a-b47f89c209e3","html_url":"https://github.com/Momen-Alshouha/console-app-bank","commit_stats":null,"previous_names":["momen-alshouha/console-app-bank"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Momen-Alshouha/console-app-bank","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Momen-Alshouha%2Fconsole-app-bank","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Momen-Alshouha%2Fconsole-app-bank/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Momen-Alshouha%2Fconsole-app-bank/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Momen-Alshouha%2Fconsole-app-bank/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Momen-Alshouha","download_url":"https://codeload.github.com/Momen-Alshouha/console-app-bank/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Momen-Alshouha%2Fconsole-app-bank/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34224103,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abstraction","classes-and-objects","console-application","cpp","devide-and-conquer","encapsulation","filesystem","inheretence","object-oriented-programming","polymorphism","static-members"],"created_at":"2024-11-11T23:28:41.504Z","updated_at":"2026-06-12T00:31:35.182Z","avatar_url":"https://github.com/Momen-Alshouha.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bank Console App (C++)\n\nThis 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.\n\n## Key Features\n\n- **Client Operations**:\n  - Create, Read, Update, Delete client data\n  - Manage client accounts and transactions\n\n- **User Operations**:\n  - Create, Read, Update, Delete user data\n  - Permission-based operations\n  - User login and authentication\n  - Logging of user login activity\n  - Encrypt password in files\n\n- **Additional Features**:\n  - **Transfer Feature**:\n    - If has permission, Users can transfer funds between clients\n\n  - **Login Logs**:\n    - Records login activities for users\n    - Tracks login timestamps and user sessions\n\n  - **Transfer Logs**:\n    - Maintains a log of all fund transfer activities\n    - Contains details such as transfer amount, sender, receiver, and timestamps\n\n  - **Currency Operations**:\n    - **List Currencies**:\n      - Provides a list of supported currencies for reference\n    - **Find Currency**:\n      - Allows users to search for specific currency information\n    - **Update Rate**:\n      - Updates currency exchange rates from a reliable source\n    - **Currency Converter**:\n      - Enables users to convert between different currencies based on the updated exchange rates\n\n## Custom Libraries\n\nThis 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:\n\n1. **clsDate**: Handles date-related operations.\n2. **clsPeriod**: Manages time periods and durations.\n3. **clsInputValidation**: Validates user inputs and ensures data integrity.\n4. **clsString**: Manipulates strings and formats data.\n5. **clsUtil**: Contains miscellaneous functions used across the application.\n   \n## Admin Access\n\nThe application includes an admin user with default credentials for testing purposes:\n\n- **Username**: admin\n- **Password**: admin\n\n## Screenshots\n\nHere are some screenshots from the application:\n\n#### Login\n![Login](screenshots/login.png)\n\n#### Invalid Login\n![Invalid Login](screenshots/invalid_login.png)\n\n#### Login Logs\n![Login](screenshots/login_logs_screen.png)\n\n#### Main Menu\n![Main Menu](screenshots/main_menu_screen.png)\n\n#### Manage Users Menu\n![Manage Users Menu](screenshots/manage_users_screen.png)\n\n#### List Users\n![List Users](screenshots/list_users_screen.png)\n\n#### List Clients\n![List Clients](screenshots/list_clients_screen.png)\n\n#### Client Added Successfully\n![Client Added Successfully](screenshots/add_client.png)\n\n#### Find Client\n![Client Added Successfully](screenshots/find_client_info.png)\n\n#### Delete Client\n![Client Added Successfully](screenshots/delete_client_screen.png)\n\n#### Access Denied\n![if_access_denied](screenshots/if_access_denied.png)\n\n#### Transactions Menu\n![transactions_screen](screenshots/transactions_screen.png)\n\n#### Transfer Logs Menu\n![transfer_logs_screen](screenshots/transfer_logs_screen.png)\n\n#### Curriencies Main Menu\n![currency_main_screen](screenshots/currency_main_screen.png)\n\n#### Currencies List\n![currencies_list_screen](screenshots/currencies_list.png)\n\n\n## Compile and Run the Code\n\n### Prerequisites\n\nEnsure you have the following installed on your system:\n- C++ compiler (e.g., GCC for Unix-like systems, MinGW for Windows, or Visual Studio Community for Windows)\n- Git (for cloning the repository)\n\n### Compilation\n\n1. **Clone the Repository:**\n\n    ```bash\n    git clone https://github.com/Momen-Alshouha/console-app-bank.git\n    cd console-app-bank\n    ```\n\n2. **Compile the Code:**\n\n   - **For Visual Studio :**\n\n     Open the project in Visual Studio and compile using the IDE.\n\n   - **For Unix-like systems (using GCC):**\n\n     ```bash\n     g++ -o console-app-bank console-app-bank.cpp\n     ```\n   \n   - **For Windows (using MinGW):**\n\n     ```bash\n     g++ -o console-app-bank.exe console-app-bank.cpp\n     ```\n     \n### Execution\n\nRun the Executable:\n\n- **For Visual Studio:**\n\n    Run the compiled application from within the Visual Studio Community IDE.\n\n- **For Unix-like systems (using GCC):**\n\n    ```bash\n    ./console-app-bank\n    ```\n\n- **For Windows:**\n\n    ```bash\n    console-app-bank.exe\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmomen-alshouha%2Fconsole-app-bank","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmomen-alshouha%2Fconsole-app-bank","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmomen-alshouha%2Fconsole-app-bank/lists"}