Programming Problem: Expense Reporting
One of the features that "The Acme Company" provides to its users is the ability to enter expenses that are incurred in foreign currencies. When people travel overseas, they often incur expenses in a different currency but still expect to be reimbursed in US dollars. The Acme Company needs to either provide FX rate information for the date the expense was incurred using FX rates widely available in the market or allow the user to manually override the market rates with the actual FX rate that they received from their bank.
Create a simple 2-screen application that will allow the user to log expenses incurred, the date they incurred the expenses, and translate the amounts back into USD. The application can be developed using any technology that you’re familiar with as long as it achieves the business goals. The screens should look roughly as follows. (Note that these were loosely based on an iPhone Expense App, so the application you build doesn’t have to look exactly like this, but should provide the same functionality):


The Expense Report screen should allow you to see a list of all the expense items on the expense report. Clicking on any one of the expense items should open up that item to be edited. Clicking on the Add a new expense item row should create a new expense item for the user to enter.
The Expense Item screen should allow the user to specify a date, currency, and incurred amount; look up the FX rate on a publicly available web service; and calculate the total amount to be reimbursed in USD. The user should be able to override the FX rates, which should recalculate the total amount in USD. The user should also be able to override the total amount, which should back-calculate the FX rates. Finally, the application should warn the user if the overridden FX rate differs from the standard rate by more than 10% or if the total expense report amount exceeds $1,000.