For some time now I have been looking for a better solution to the basic and aged concept of the address book. In the beginning we all used small books in which we wrote people’s addresses and phone numbers, ordered roughly by alphabetical order of surnames. But of course with today’s reliance and power of technology, there is scope for far more from an address book application, making it more useful and more efficient too. I’m not going to even think of creating this myself, partly because I’m lazy and have better things to do, and partly because I know there are far better programmers out there who could do the job far more elegantly. However, I am willing to share my idea with you all, in the hope that this might serve as inspiration for someone to actually create my ideal address book program.
The basic problem I’ve found with most address books so far is that they are essentially flat – a list of people and their contact details. What this does not take into account is the relationships between these people. For instance, I am now married to Eleanor, and it would be nice to reflect that in the address book. I could create two records, one for each of us, but that would mean copying the address and phone number that we share because we live in the same house. Similarly, I know several people who share houses, and although they aren’t related they do share their address and land line phone number.
What I am suggesting, therefore, is separating the Person from the House, and linking people to a house. This way you can have each person having several home addresses (if they have more than one house), and also have several people living in the same house. The phone number belongs to the house rather than the person, whereas mobile numbers are stored with the person. You could extend this further to include business addresses too – obviously there are likely to be many people working in each business, and it seems to be far more efficient to store the business separately from the person to avoid duplication of information.
Another cool feature would be to visualise places of residence for ease of categorisation. For instance, if I wanted to find all my friends who live in Colchester it would be nice to be able to display a map that pinpointed all the addresses in my address book. Notice that it would be pinpointing the houses, not the people, so that you don’t have five people all trying to be displayed on the same spot! I’m sure this must be achievable through the Google Maps API if someone clever wants to have a go!
Another natural grouping is how people are related to each other. While this may not be useful for everyone (since it depends on the size and nature of each family), it may be helpful for some to be able to keep track of family members in a family tree fashion. This is actually possible by simply including for each person a record of their Father, Mother, and Spouse, where available. From just these three a whole family tree can be created. The upshot of this is that I can see where my cousins are, quickly find directions to my wife’s Grandma’s house, that sort of thing. At the very least it would be good to show some indication that I am married. It’s not a complicated concept, but I am sure it would come in useful.
In a similar vein, it is quite common for friends to be part of a friendship group. For instance, I know people from university, and it would be good to group them through that association. I also know people from church, from school, from work, from the Colchester Mini Club. There are overlaps too, of course, but by assigning each person to one or more friendship groups it’s possible to quickly get a list of all the people living in Colchester who I met at university to send them a mass e-mail, for example.
Of course, to make this a truly useful application it would have to be reducible to a simpler format where necessary so that it can be compatible with other programs. For instance, I would want to be able to access all the e-mail addresses from my mail client. Here the associations between people isn’t so important, so we can just extract all the e-mail addresses as a flat file and have done with it.
So, if anyone fancies taking on this challenge, I would be very impressed! I could probably knock something up in PHP and MySQL very easily, but of course that’s not particularly portable and would need to be hosted somewhere, which brings with it the obvious data protection issues of keeping that information safe so that it’s not publicly available. A better solution might be something along the lines of Plaxo, which allows synchronising of contact information across a wide range of applications and stores its own information online. But I don’t think I have the resources to be able to take on such an established system at the moment!