Step 1. Do some research
I started off at http://www.howtocallabroad.com/ and http://www.kropla.com/dialcode.htm (two of my main competitors as you may recall). What I found interesting off the bat is that they have a number of differences. Why is it so complicated to get an accurate list of international codes? Hopefully with this service I'm building it should become a lot easier for most people.
My original plan was to connect with a reliable data source that would let me seamlessly update any international code changes. I've come to realize that this isn't going to be easy. As a result, I've going to hope that these things don't change very often, and deal with it manually for now. To help in the effort, I've setup a Page2RSS feed for the pages http://www.kropla.com/dialcode.htm and http://www.howtocallabroad.com/codes.html. As soon as something changes on those pages, I'll get notified and I'll be able to go in and update my data on the backend. If this becomes a pain, I'll dig deeper into finding a better source of data, and maybe see if Dabble DB can assist in this process.
After reviewing the list of country codes, I've found that there are a good number of special cases. Many countries have more then one "exit code", which generally depends on your phone company. This definitely complicates matters, both the UI and the data storage on the backend. One thought I had was to punt on the special cases, and link to another site that could provide the gorry details. On second thought though, I found that these special cases aren't really that complicated and that I just had to make a few adjustments to the architecture to support them. The toughest piece will be in the design portion, but I think I can handle it.
Step 2. Make changes to the data
The following countries required adding some "additional information" to be displayed to the user, to guide them in determining what "exit code" should be used:
- Brazil
- Cambodia
- Colombia
- Finland
- Indonesia
- Israel
- South Korea
- Singapore
Step 3. Make changes to the UI
Now that we have these special cases, I had to update the results page to support it. Here are some iterations (starting with the original):



(excuse the quality, not sure why these saved as jpeg)
Step 4. Next steps
Now that I'm a lot more comfortable with the raw data (though it still needs some work), I'm going to move back to the design and usability. I plan to run a couple quick usability tests to capture the most obvious issues, and then put some of the finishing touches (e.g. IE7 compatibility) as we get closer to launch.

No comments:
Post a Comment