{"id":15090985,"url":"https://github.com/volodimirdd/atm","last_synced_at":"2026-01-04T09:05:03.768Z","repository":{"id":239666059,"uuid":"800143629","full_name":"VolodimirDD/ATM","owner":"VolodimirDD","description":"The application was created using C# within the Visual Studio environment, specifically with .NET Framework, and featuring a WinForms UI.","archived":false,"fork":false,"pushed_at":"2024-05-20T01:51:42.000Z","size":16334,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-20T11:16:45.635Z","etag":null,"topics":["atm","csharp","netframework","visual-studio","windows-app","windows-forms","winforms","winforms-application"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VolodimirDD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2024-05-13T19:31:07.000Z","updated_at":"2024-11-26T05:48:07.000Z","dependencies_parsed_at":"2024-05-20T02:52:26.138Z","dependency_job_id":null,"html_url":"https://github.com/VolodimirDD/ATM","commit_stats":null,"previous_names":["volodimirdd/atm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolodimirDD%2FATM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolodimirDD%2FATM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolodimirDD%2FATM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VolodimirDD%2FATM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VolodimirDD","download_url":"https://codeload.github.com/VolodimirDD/ATM/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244600724,"owners_count":20479307,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["atm","csharp","netframework","visual-studio","windows-app","windows-forms","winforms","winforms-application"],"created_at":"2024-09-25T10:34:59.463Z","updated_at":"2026-01-04T09:05:03.727Z","avatar_url":"https://github.com/VolodimirDD.png","language":"C#","readme":"\u003ch1 align=\"center\"\u003eATM\u003c/h1\u003e\n\u003chr\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./Readme_assets/ATM.png\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n## Description\nThe ATM application is a convenient and intuitive interface for interacting with an ATM. Developed using `C#` and the `.NET Framework` platform. The application provides users with a wide range of banking operations, including *balance inquiry*, *account replenishment*, *cash withdrawal*, *phone number top-up*, *transferring funds to another card*, and *card termination*. The intuitive user interface, created using `Windows Forms`, makes the interaction process simple and secure. Thus, users can efficiently utilize the banking services provided by this application while enjoying its high level of security.\n\nPIN: `1111`\n\n## Key Features\n### ATM and Language Selection\nUpon application launch, users can select the desired ATM from the list of available options and set their preferred interface language (Russian, English, Ukrainian), ensuring a personalized user experience.\n### Card Interaction\nThe process of starting work with the ATM begins with inserting the card into the device. This stage is executed through an intuitively understandable method of dragging the card into the ATM slot, simplifying and speeding up the process. After inserting the card, the initialization of the process occurs, displayed through a progress indicator `ProgressBar`, which shows the progress of card recognition and PIN entry.\n### Operation Initialization\nTo track the progress of PIN entry and card recognition, the application uses a progress indicator (ProgressBar), providing users with visual feedback on the current state of the process.\n### PIN Code Security\nUser data security is ensured by setting limitations on PIN code entry. Users are provided with three attempts for correct entry. Upon exceeding the limit, the card is blocked, protecting against unauthorized access.\n### Card Operations\nUsers have the ability to perform a wide range of card operations, including balance inquiry, account replenishment, cash withdrawal, phone number top-up, fund transfer to another card, and card termination. This ensures maximum flexibility and convenience in using the application.\n### User-Friendly Interface\nBy using Windows Forms elements such as `PictureBox`, `TextBox`, `Button`, `ProgressBar`, `MaskedTextBox`, `Label`, and `Timer`, the application provides an attractive and intuitive interface, facilitating comfortable and efficient user interaction. Additionally, to enhance convenience, the interface supports the selection of application and ATM language immediately upon launch.\n\n## Used Technologies\nThe application is developed in the `C#` programming language, which provides powerful tools for creating high-quality applications. \n\nThe `.NET Framework` and `.NET Core` platforms were used for application development and operation, ensuring flexibility and compatibility with various operating systems. \n\n`Windows Forms` was chosen as the platform for creating the graphical interface of the application, providing an intuitive and appealing user experience.\n\n## Limitations and Settings\nTo ensure ease of use and security of the application, various limitations and settings were programmatically established. For example, the application form is centered on the screen, making its location convenient for the user. Additionally, resizing of the form is prohibited to prevent accidental changes to the application's appearance and dragging forms is also prohibited. \n\nFor security purposes, the minimize, maximize, and close buttons of the form are hidden to prevent accidental application closure by the user. Restrictions on image sizes are also set to guarantee their proper display in the interface. \n\nAn important aspect of security is the restriction of accessibility to the PIN code entry field, making it impossible for unauthorized users to modify or interfere with it, thereby ensuring the protection of user data and privacy.\n\n## Application overview\n\n### Choose ATM Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Choose ATM Form](./Readme_assets/Choose_ATM.png \"Choose ATM Form\") | \n  | :--: | \n  | *Choose ATM Form* |\n\u003c/details\u003e\n\nHere you can select any of the available ATMs and then proceed to select the language to use the ATM.\n\n### Choose Language Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Choose Language Form](./Readme_assets/Select_language.png \"Choose Language Form\") | \n  | :--: | \n  | *Choose Language Form* |\n\u003c/details\u003e\n\nHere you can choose any language that is convenient for you: *Ukrainian, Russian or English*.\n\n### Insert Card Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Insert Card Form](./Readme_assets/Insert_card.png \"Insert Card Form\") | \n  | :--: | \n  | *Insert Card Form* |\n\u003c/details\u003e\n\nHere you should insert your card into the ATM to initialize it and continue using the services. To do this, you just need to *`grab the card and drag it into the ATM slot`*. Also wait for initialization.\n\n### Recognition Card Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Recognition Card Form](./Readme_assets/Initialization_card.png \"Recognition Card Form\") | \n  | :--: | \n  | *Recognition Card Form* |\n\u003c/details\u003e\n\nHere you will track the progress of the ATM recognizing your card. Once a certain scale reaches its maximum value, you will move on to the next step.\n\n### Enter PIN Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Enter PIN Form](./Readme_assets/Enter_Pin.png \"Enter PIN Form\") | \n  | :--: | \n  | *Enter PIN Form* |\n\u003c/details\u003e\n\nHere you need to enter your card PIN. Make sure you enter it correctly, otherwise after *`three incorrect entry`* attempts your card will be blocked indefinitely. \n\nAlso, if you enter an incorrect PIN code, you will see a notification about this, and you will also see the `number of remaining attempts` to enter the correct PIN code so that your card is not blocked.\n\nPIN: `1111`\n\n### Blocked Card Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Blocked Card Form](./Readme_assets/Blocked_Card.png \"Blocked Card Form\") | \n  | :--: | \n  | *Blocked Card Form* |\n\u003c/details\u003e\n\nHere you will only see a notification that after three consecutive unsuccessful attempts to enter the correct PIN code, your card has been blocked indefinitely.\n\n### Operation Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Operation Form](./Readme_assets/Operation.png \"Operation Form\") | \n  | :--: | \n  | *Operation Form* |\n\u003c/details\u003e\n\nHere you can choose one of five operations:\n* `View balance`\n* `Top up account`\n* `Withdrawing money`\n* `Transactions` - *Including topping up a phone number and transferring to another card.*\n* `End session`\n\n*`Note:`* *To start using transactions, you first need to view your card balance.*\n\n### Top Up Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Top Up Form](./Readme_assets/Top_up.png \"Top Up Form\") | \n  | :--: | \n  | *Top Up Form* |\n\u003c/details\u003e\n\nHere you can select the amount to top up your balance:\n* `100 UAH`\n* `200 UAH`\n* `500 UAH`\n* `1000 UAH`\n\nYou will also have additional options, such as: \n* `Go back`\n* `End the session`\n\nThere is also a window for displaying the current balance.\n\n### Replenishment Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Replenishment Form](./Readme_assets/Process_top_up.png \"Replenishment Form\") | \n  | :--: | \n  | *Replenishment Form* |\n\u003c/details\u003e\n\nHere you can see the initialization of the top-up process. Once this process is complete, you can continue with any other actions.\n\n### Withdraw Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Withdraw Form](./Readme_assets/Widthraw.png \"Withdraw Form\") | \n  | :--: | \n  | *Withdraw Form* |\n\u003c/details\u003e\n\nHere you can select the amount to withdraw money:\n* `100 UAH`\n* `200 UAH`\n* `500 UAH`\n* `1000 UAH`\n\nYou will also have additional options, such as: \n* `Go back`\n* `End the session`\n\nThere is also a window for displaying the current balance.\n\n`Note:` You will not be able to withdraw more money than you have on your balance. If you try to do this, you will see a notification that there is not enough money in your balance. *It appears for 3 seconds*\n\n### Withdrawal Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Withdrawal Form](./Readme_assets/Process_widthraw.png \"Withdrawal Form\") | \n  | :--: | \n  | *Withdrawal Form* |\n\u003c/details\u003e\n\nHere you can see the initialization of the process of withdrawing money from the account. Once this process is complete, you can continue with any other actions.\n\n### Transaction Form\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eScreenshot\u003c/b\u003e\u003c/summary\u003e\n  \n  | ![Transaction Form](./Readme_assets/Transaction.png \"Transaction Form\") | \n  | :--: | \n  | *Transaction Form* |\n\u003c/details\u003e\n\nHere you have the opportunity to perform two actions, namely:\n* `Mobile phone number replenishment`\n* `Transfer money to another card`\n\nYou will also have additional options, such as: \n* `Go back`\n* `End the session`\n\nIn order to top up a mobile phone number, *you will first need to verify the phone number*, and only then you can enter the top-up amount.\n\nAlso for transferring to another card. *First, enter the number of the card to which you want to make a transfer, verify it, and then enter the amount and complete the operation.*\n\n*If you have less money on your balance than you want to send to another card or top up your phone number, you will see a notification about this.*\n\nAll actions will take some time, so you will see the process completion time, which you will have to wait.\n\nThere is also a window for displaying the current balance.\n\n## Project setup\nOn Windows platform:\u003cbr\u003e\n*Download [archive](./ATM_Release_exe.rar) which has all needed application components. The application can be started by opening the `.exe` file.*\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolodimirdd%2Fatm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvolodimirdd%2Fatm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolodimirdd%2Fatm/lists"}