ATM Web Application
Stores a certain amount of money in banknotes of 20, 50, 100, 200, 500;
ATM can not store more than 20 bills of the same value at the same time;
Stores values and quantities in the Properties file.
Uses Servlets, Jetty, Log4j, JUnit, Maven.
Develop an algorithm for money withdraw
- The amount must be withdrawn with a minimum number of bills;
- The number of bills should not exceed 10;
- If the amount is not possible to withdraw, a message should be shown about the amount as close as possible to the requested amount;
- Write a unit test to test the algorithm.
Put money (denomination / amount)
- When adding money, banknotes are added to the already existing amount;
- Write to the log file.
Withdraw money (denomination / quantity)
- When withdrawing the banknote it should be removed from the system;
- Write to the log file.
Logging
- Create one file per day;
- The file name must contain the current date;
- Logging should consist of time, type of transaction and additional information (banknote / denomination);
- The system should allow you to download all the logs in one zip archive.