Process | Outcome |
---|---|
Build | |
Dev | |
Prd | |
Coverage | |
Project |
Within many applications, there is a need to show or translate prices into different currencies. By having this facility available within the code, it allows you to
- Store all prices in the same currency,
- Display the price in whatever is the local currency of the viewer.
- Create a simple currency application to demostrate how this could work in practice.
- The application should have sufficent tests, so that it can be automatically tested during the build process.
- The application should be able to be torned down and redeployed from scripts.
- The deployed application should be configured to use a free currency service.
- The application should not have any currency pre configuration
- When a user requests a rate that rate should be noted and then got daily
- If a rate has not been requested for a period of time then the app should remove that rate from the update
- The application should maintain a list of available rates
- For each rate note when it was last accessed.
- The application should be able to supply basic stats for health monitoring.
- There is no requirement for a GUI interface.
- The User can request a list of available currencies
- The User can request a new rate
- Which is serviced from the datastore
- If the TimeStamp on the datastore record is greater than 1 day then a Refresh is scheduled.
- The user should be informed that a update is scheduled.
- Which is serviced from the datastore
- The Scheduled User requests a
- refresh of the available currencies
- refresh of the the current rates
- The DataStore will hold
- A List of available currencies
- The current exchange rate against a base currency
- Exchange rates for each currency will be held for (Timespan)3 months
- Timespan is configurable
- Excahnge rates over the Timepan period will be deleted
- Base currency is configurable
- If you change the base currency then all rates will become void.
- A count of which
- Currencies have been accessed
- When they where last accessed
- How many times they have been accessed