Here is the once sentence spec: "Build an app that lets you browse through international houses for sale, showing a photo, and the most important stats about the properties".
Here is a rough sketch. A good programmer can build the entire system from this:
Prior to programming, it is often very helpful to draw in Photoshop a mockup of the main screen, from which you can get approximate measurements of various sections of the screen. Here is the photoshop mockup:
Draw a photo of the house, the country flag in the upper left corner. The city, # of bedrooms and bathrooms is listed, along with the area, the price per area, the asking price in the national currency, and the converted price based on the preferred currency. To save space, prices are rounded to K or M. If the currency selected is USD then show the areas of square feet, otherwise show square meters.
To assist you in this challenge, i have posted the resources of the house bitmaps, flag bitmaps, house data, as well as my implementation. To obtain the resources, download from:
Here is a link to the resources:
This project uses a plug-in module, A currency rate query module, which queries the European Central Bank for the top 24 currency rates, which are published daily at 2:15PM in Frankfurt. This is the kind of small, but tricky little plug-in module that if offered at a reasonable price, people would be glad to pay for it. To use this plug in, you add one line of code: "PlugIn_Currency.get_rates", and 600 milliseconds later, you have the current rates.
The other aspect of this project that is notable, is that there many unit conversions going on. You have a house, that is listed in British Pounds, but displayed in Euros or Dollars. When you switch to India Rupees, the numbers get huge, so you have lots of abbreviations needed. Do you really need to see 8 digits of precision when something is 4 billion rupees? The USA market uses square feet, but in Europe they use square meters. In a computer language with physical units built in, there are no explicit conversions in the code; fewer places to make mistakes.