I want to code an application which will allow an engineer to insert there dimension, material properties and a finite element package will build the model, the engineer will just have to run the model and analysis the results?
Do you know which FEA software you will be using? With many commercial software (e.g. Abaqus, Ansys), you can write a input file containing geometry, material properties, etc., and then ask the software to generate mesh and perform analysis -- as opposed to constructing the model in a graphic interface. The format for these input files are usually specified in the user's manual of software.
the FEM software I'll be using is Abaqus, what you are describing is what I am looking to create/learn, how do I start this? Is everything I need in the users manual?
Great! Abaqus allows users to import a model through .inp file, as roughly explained here: http://abaqus.software.polimi.it/v6.14/books/usi/default.htm?startat=pt02ch10s05s02.html
Of course, with Abaqus' versatile capability, it's quite tough to systematically master the syntax of the .inp files.
I think an easy way to set up a model, according to whatever type of problem you'd like to study, would be to first make a simple version of the problem you'd like to study in CAE (Abaqus' graphic interface), let Abaqus solve the problem, and then go back into your Abaqus directory to find the .inp file generated from CAE. You should find inside the file parts that define node information, element connectivity, material, boundary condition, etc., as well as commands for the finite element solution process. Understand what those parts are doing, and then you can work with this overall structure to generate an .inp file for a more complicated version of the problem -- ideally containing finer mesh, allowing for possibly more accurate solution.
What I would further suggest is to maybe write a Python (or Fortran, or whatever language works best between you and Abaqus) script to handle the pre-processing. This should be something in which you can define some basic parameters, and then generate an .inp file directly, without manually typing everything. In fact, a Python script can be used to manage the entire simulation process, including pre-processing, analysis, and post-processing. Necessary information can mostly be found by reading Abaqus' very detailed manual and doing some simple Googling when you run into issues.
Lastly, somewhat related to what Claudio said, it is always critical to understand the basic theory behind finite element methods. Running Abaqus as a blackbox is quite dangerous, because FEM can give you incorrect solution for some basic problems if the model is not set up properly. I highly recommend Chandrupatla & Belegundu's book as an introductory text.
I am not sure what FEA software you are using, but most good FEA software will allow you to write your own a file containing geometry and material properties or whatever - the software will then generate mesh and perform analysis. The way it is done is different from software to software, but the principle is the same.