ngaisteve1 / ATMConsole_With_OOP

Bank ATM with C# Console! Demo app to implement OOP principles

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ATMConsole_With_OOP

Implemented Object-Oriented Programming like interface, class and object.

Other Versions

Software Development Summary

  • Technology: C#
  • Framework: .NET Core 2.2
  • Project Type: Console
  • IDE: Visual Studio Code (Version 1.31.1)
  • Paradigm or pattern of programming: Object-Oriented Programming (OOP)
  • Data: Data of this demo program (Bank Account and Transaction data) are stored using List objects. No database is used on purpose for this demo version.
  • NuGet: ConsoleTables (Version 2.2), CsConsoleFormat (Coming Soon)

atm credit_card ATM Basic Features / Use Cases:

  • Check account balance
  • Place deposit
  • Make withdraw
  • Check card number and pin against bank account list object (Note: No database is used on purpose to demo the use of list object)
  • Make third-party-transfer (Transfer within the same bank but different account number)
  • View bank transactions

Business Rules:

  • User is not allow to withdraw or transfer more than the balance amount. A minimum RM20 is needed to maintain the bank account.
  • If user key in the wrong pin more than 3 times, the bank account will be locked.

Assumption:

  • All bank account are the from the same bank

Activity Diagram

atm_activity_diagram

Enhancement (To Do):

  • Fluent Validation to handle input validation of any data type and input length (min, max, fixed)

OOP principles and C# features implemented:

  • class (POCO class and utility class)
  • object
  • Object and collection initializer
  • encapsulation: private, internal and public
  • LINQ to object (LINQ Query syntax)
  • List
  • static
  • this
  • field
  • property
  • const
  • switch case
  • string interpolation
  • while loop
  • enum
  • region
  • System.Globalization for local currency symbol and format
  • ternary operator ?

Video Demo

If this content is helpful to you, consider to support and buy me a cup of coffee :)

About

Bank ATM with C# Console! Demo app to implement OOP principles


Languages

Language:C# 100.0%