This is a dummy application to be used as part of a software development interview.
- Treat this code as if you owned this application, do whatever you feel is necessary to make this your own.
- There are several deliberate design, code quality and test issues that should be identified and resolved.
- The current features supported by the application are listed below; as well as some additional features that have been requested by the business owner.
- Refactor and add features (from the below list) as you see fit; there is no need to add all the features in order to "complete" the exercise. Keep in mind that code quality is the critical measure and there should be an obvious focus on testing.
- In order to work on this take a fork into your own GitHub area; make whatever changes you feel are necessary and when you are satisfied submit back via a pull request. See details on GitHub's Fork & Pull model.
- The project uses sbt to resolve dependencies however if you want to avoid sbt the only external dependencies are scala(2.11.0) and scalatest 2.1.6.
- You'll notice there is no database or UI; these are not needed - the exercise deliberately avoids these requirements.
- REMEMBER: this is YOUR code, made any changes you feel are necessary.
- You're welcome to spend as much time as you like; however it's anticipated that this should take about 2 hours.
A dummy application for a bank; should provide various functions of a retail bank.
- A customer can open an account
- A customer can deposit / withdraw funds from an account
- A customer can request a statement that shows transactions and totals for each of their accounts
- Different accounts have interest calculated in different ways
- Checking accounts have a flat rate of 0.1%
- Savings accounts have a rate of 0.1% for the first $1,000 then 0.2%
- Maxi-Savings accounts have a rate of 2% for the first $1,000 then 5% for the next $1,000 then 10%
- A bank manager can get a report showing the list of customers and how many accounts they have
- A bank manager can get a report showing the total interest paid by the bank on all accounts
- A customer can transfer between their accounts
- Change Maxi-Savings accounts to have an interest rate of 5% assuming no withdrawals in the past 10 days otherwise 0.1%
- Interest rates should accrue daily (incl. weekends), rates above are per-annum