Based on this post by Oo Nwoye, I would like to expound a bit on what I think the best approach is.

First of all, let's look at what the problem is. The problem are these:

  1. Nigerians do not use post codes
  2. Nigerian streets are ambiguous
  3. There is no central way of retrieving all the streets in Nigeria
  4. Street houses are not numbered correctly
  5. You cannot recognize if streets are close to each other
  6. Very long roads cannot be further broken down into pieces (as is possible where post-codes are used)
  7. The post-code allocation system is not expanding as quickly as the country is developing.

Suggestion for solving the above

An API is created that does the following:

  1. It lists all the streets and houses within a post-code
  2. It can receive an unstructured address, and return a valid address suggestion.
  3. It can provide the GPS location of a particular street at well as the GPS of a particular house number
  4. It provides address suggestions given partial information
  5. It stores meta information about a street, e.g It is 'Off which road?'. How do people refer to it commonly, e.g 'Masha', 'Alhaji Masha', 'Masha Road', 'Marsha'?

What would be the utility?

a. For an e-commerce store, when customers enter their address, they call this API to provide auto-suggestions, and can then provide a valid and known street name to the user. This way, deliveries will tend to arrive better at the correct destination.

b. For software that needs to know what is close to a street, e.g a 'Nearest Hospital' app, it can use the post-code to pull all the nearby streets which can access that hospital

c. For people that need to find particular addresses, e.g a bank is looking for 48c Ogbor Hill, Aba - the API would provide them the exact GPS location of that house.

How would it work?

On the backend, there is a key-store db, e.g MongoDB. It stores a bunch of information about the street and the area.

As requests for street name information hit the API, the API starts using that information to build a comprehensive list of road names. This way, even if only one e-commerce store is using it, given enough time, it will have gained a lot of information about streets.

A clever algorithm at the back takes the names users are typing and resolves them into a single 'Master' name that represents the best guess for the name.

This can be combined with a manual intervention method where people help to clean up the street data.

For the e-commerce store, there is no UI change or disruption, as the user only sees suggestions when there is enough information on the backend. Over time, this db will grow to become comprehensive, and there will be an open source database of all street names in Nigeria, their post-codes and all valid addresses on those streets.

This db will be live and will grow and adapt naturally as the environment changes.