The use of coats-of-arms to identify familes is very old and predates
widespread literacy. The same idea persists in the use of symbols at international airports.
However it is an interesting and colourful subject and can make a good topic for a project.

At different times and places, the rules for designing a valid coat of arms differed slightly
and so your first decision will need to be which time and place is represented. Then your program
will need to hold the rules for describing these heraldic designs and also a library of available
icons. From these, the coat-of-arms could be built up and displayed.
Your basic project must allow the user to choose and design a new coat-of-arms (not one already
chosen) and display this on the screen. Some method of editing the result must be included and at
each stage, the design must be compared with those already taken since duplication is not allowed.
You will have to decide whether the same design in a different set of colours counts as a different
design or not. Usually different colours were accepted as a different design, but sometimes this
was restricted to other members of the same family and so permission was needed. Having decided on
the rules to be implemented and included a reasonable number of icons, setting up a system to
design coats of arms would be the minimum project. A desirable extension would be to build up a
database of those coats already chosen and check any new ones against the current list. This would
justify a good mark.

A variation on this project could be to create a database of the actual
coats-of-arms in use at some historical period and allow the display of any of these. To use this,
the user must be able either to type in the description of a coat-of-arms and the system will
then locate and display it and give details of the "current" holder and his next heirs or to
type in the name of a family and get back details of all the coats-of-arms allocated to that family.
For this, you will need to have the details of actual coats of arms at a given date in history and
include a fair amount of information. Alternatively you can have your own fictional country and
design an aristocracy with their own coats of arms.

All heraldic systems used a limited range of colours
or "tinctures" and these are shown in the diagram. They also had two
"metals" (gold and silver corresponding to yellow and white) and at some periods it was the
convention that you could place a tincture on a metal or a metal on a tincture but not tincture
on tincture or metal on metal. (dark blue (or azure) against black(sable) does not show up very
well, but either of these on yellow or white is clearly visible. Later on, as the number of
coats-of-arms became more numerous, this restriction had to be relaxed, but it still remained
a preference. The two furs were not commonly used, but were sometimes used as a background.

There are many terms used to describe the
parts of a coat-of-arms and some of the more commone are included in the third diagram. You will need
to get some of the textbooks and read up about the topic if you wish to attempt it as a project. There
are many basic texts on heraldry which you can read for this project. I have some examples which I
can show you if you think you may be interested in this project.