ATM Controller implemented which conducts the following features
- Each card has an associated PIN number automatcially allocated by bank
- PIN validation for security
- One card can access multiple bank accounts
- Check balance: Current amount of money available in account
- Deposit: Adding money to the account (increase balance)
- Withdraw: Taking money away from the account (decrease balance)
- Account being able to store all of the previous transaction records
- Account being able to retrieve all of the previous transaction records
- ATM Controller acts as an interface for the client request
- Information storage and Main operation (Card verification, Account balance transaction) is done in Bank for centralized opertion
- Clone the repository:
git clone https://github.com/yoonseo-han/ATM_Controller
- Install dependencies
npm install
- Running tests
npm run test
Conducted 22 tests based on the following areas
atm-controller/
├── src/
│ ├── models/
│ │ ├── Account.ts
│ │ ├── Card.ts
│ │ └── Transaction.ts
│ ├── service/
│ │ └── BankService.ts
│ └── AtmController.ts
├── tests/
│ └── AtmController.test.ts
├── package.json
└── jest.config.json
Branch types
main
: Production codefeature
: New featurestest
: test codes added
(Did not include dev since there is no actual serving of code hence minimized branch for simplicity)
Message types
feat
: New featurefix
: Bug fixrefactor
: Code refactoringtest
: Adding testsenv
: Environment setup and maintenance tasksdocs
: Documentation update
Based on git branch strategy, I have made Pull Requests and documented the main changes within each PR.