Implemented the SALE transaction only by simulating the card, terminal(ATM), and the server.
Payment systems are now available everywhere and everyone interacts with these systems every day.
There are different types of transactions you can make, SALE, REFUND, Pre-Authorization, and VOID.
- SALE: means to buy something and its price will be deducted from your bank account.
- REFUND: this means that you will return something and wants your money back to your bank account.
- Pre-Authorization: means holding an amount of money from your account, e.g Hotel reservation.
- VOID: this means canceling the transaction, e.g if the seller entered the wrong amount.
- Create modules folders.
- Create .c and .h file for each module.
- Add header file guard.
- Create the main.c file.
- In card.h file contains functions' prototypes and typedefs.
- Implement getCardHolderName function.
- Implement getCardExpiryDate function.
- Implement getCardPAN function.
- In terminal.h file contains functions' prototypes and typedefs.
- Implement getTransactionDate function.
- Implement isCardExpried function.
- Implement gatTransactionAmount function.
- Implement isBelowMaxAmount function.
- Implement setMaxAmount function.
- Implement isValidCard function.
- In server.h file contains functions' prototypes and typedefs.
- Implement server-side accounts' database.
- Implement server-side transactions' database.
- Implement recieveTransactionData function.
- Implement isValidAccount function.
- Implement isAmountAvailable function.
- Implement saveTransaction function.
- Implement getTransaction function.
- In application.h file contains functions' prototypes.
- Implement appStart function.
As a bank customer have an account and has a valid and not expired card, I want to withdraw an amount of money less than the maximum allowed and less than or equal to the amount in my balance, so that I am expecting that the transaction is approved and my account balance is reduced by the withdrawn amount.
As a bank customer have an account, that has a valid and not expired card, I want to withdraw an amount of money that exceeds the maximum allowed amount so that I am expecting that the transaction declined.
As a bank customer have an account and has a valid and not expired card, I want to withdraw an amount of money less than the maximum allowed and larger than the amount in my balance so that I am expecting that the transaction declined.
As a bank customer have an account, have a valid but expired card, I want to withdraw an amount of money so that I expect that the transaction declined.
As a bank customer have an account and has a valid and not expired stolen card, I want to block anyone from using my card so that I am expecting that any transaction made by this card is declined.
As a bank administrator, I want to issue my own cards, so that I am expecting that any transaction made by any fraud card (failed in Luhun check) is declined.
