1. A computer implemented method of project management, comprising: retrieving project tasks from a database using a distributed computer network, each project task having a cost center, account number, job identification (ID), description, type, work duration, start time, and priority, each project task describing an activity to be performed by available resources, the available resources including personnel, equipment, parts and tools; displaying the project tasks using a user interface, the user interface allowing a user to create a work breakdown structure of dependencies between the project tasks by defining dependency chains between related project tasks and wherein the work breakdown structure is organized as a set of hierarchical related project tasks using the user interface; providing a resource breakdown structure of the available resources, the resource breakdown structure being stored in the database and describing the personnel, equipment, parts and tools, each personnel entry in the resource breakdown structure describing a cost center, account number, resource type, ID, description and skill number; providing a calendar breakdown structure of availability of the resources; optimizing allocation of the resources to the project tasks within constraints of the resources in accordance with the work breakdown structure and calendar breakdown structure using an earned value of each of the personnel, equipment, parts and tools of the resource breakdown structure to correlate an efficiency of each of the available resources, the earned value of the personnel being dependent upon the skill number of the personnel; scheduling the resources to complete the project tasks by: sorting the project tasks by priority in accordance with any defined dependency chains, and allocating resources to each of the project tasks in accordance with the earned value of each of the personnel, equipment, parts and tools of the resource breakdown structure; and displaying a resource schedule using the user interface for assignment of tasks to one or more resources by the user.