6. A method for using templates having associated metadata files, the method comprising: parsing all the metadata files; storing a single file for each template in a UI (“User Interface”) accessible location based upon whether the template is a user-created template, a pre-defined template, an item template or a project template; building an index of all the templates; displaying the index in a customized UI, wherein the UI displays an identifier for a template in a format depending upon whether the respective template is a user-created template, a pre-defined template, an item template or a project template; receiving a selection of a template from the index; invoking a template engine based upon the selection of the template from the index, the template engine causing reading of a metadata file associated with the selected template, the metadata file including three sections, a TemplateData section that defines an appearance of the selected template, a TemplateContent section that defines content and creation parameters of the selected template and a ReplaceParameters section, wherein the metadata file provides information regarding the template contents and template creation process and wherein the metadata file determines whether data to be created will be created in a separate folder for the data, wherein the metadata file is created by using inference rules to index at least one file by determining elements of the at least one file to be generalized; performing parameter substitution to enable replacement of key parameters on template instantiation; creating a project according to specifications of the metadata file.
6. A method for using templates having associated metadata files, the method comprising: parsing all the metadata files; storing a single file for each template in a UI (“User Interface”) accessible location based upon whether the template is a user-created template, a pre-defined template, an item template or a project template; building an index of all the templates; displaying the index in a customized UI, wherein the UI displays an identifier for a template in a format depending upon whether the respective template is a user-created template, a pre-defined template, an item template or a project template; receiving a selection of a template from the index; invoking a template engine based upon the selection of the template from the index, the template engine causing reading of a metadata file associated with the selected template, the metadata file including three sections, a TemplateData section that defines an appearance of the selected template, a TemplateContent section that defines content and creation parameters of the selected template and a ReplaceParameters section, wherein the metadata file provides information regarding the template contents and template creation process and wherein the metadata file determines whether data to be created will be created in a separate folder for the data, wherein the metadata file is created by using inference rules to index at least one file by determining elements of the at least one file to be generalized; performing parameter substitution to enable replacement of key parameters on template instantiation; creating a project according to specifications of the metadata file. 10. A method according to claim 6 wherein the metadata files are coded at least in part in a declarative programming language and are modifiable by an end user.