BGP is generally used when you want to route between autonomous systems. IF u run IBGP as the IGP in your network, then you need to have a full mesh with every router peering with every other router to avoid split horizon issues(though it can be relaxed by using Route reflectorsw which again would require additional configuration)
THe choice of OSPF as the routing protocol seems to be ideal. THe assignment of areas depend on your network topology.
Remember when you divide your networks with areas all other areas need to talk to the backbone (area 0)
HTH
Narayan