Please read the entire question carefully before you start working.
You are contacted by a Banking company to build a multi-threaded application in C# that will
allow their clients and employees to connect to the online banking system. In a first prototype,
the features that the company would like to see are as follows:
– 1. Authenticate: users (clients and employees) should be able to login before any of the
other features below are made available to them. For authentication, the company will
try several third-party libraries and will select one to be used as a start but of course
that might and certainly will change. This means that your design should accommodate
that. For now, you should provide a placeholder library that does dummy authentication
for the purpose of the prototype. By dummy we mean pre-populate the library with a
few usernames and passwords (one for each user type that you have) that will be saved
in a file; encryption is not required but welcomed!
– 2. Check status: users should be able to check the status of all their accounts. Saving
accounts have interests that clients gain as well as a minimum amount that should be
available on the account (consider 15K being a default value). Clients should also be able
to check the status of their loans, if any. Loans have a total amount (i.e., the initial
amount of the loan), current amount (i.e., the amount that the client currently owns to
the bank), and interests that the client pays every month. Interests can be either set as
at a fix or variable rate. You can assume that a third-party library will be used to
calculate the interest amount for a payment given an interest rate and the payment
number. Similar to authentication, you must provide a placeholder implementation for
the third-party library here as well with the idea that your design must account for
frequent changes. Checking the status consists of:
- Checking accounts: show the account number, current balance and the last 10
- Saving accounts: show the account number, current balance, interest rate (you
can consider 0.5% being the default rate), total amount of interest gained for the
year, and the last 10 transactions on the account.
- Loans: show the account number, total amount, current amount, interest rate,
and the last 10 payments where the client can see separately the amount that
went in the capital and the interests.