Developing a program to make a family tree.

A

Ata Jafari

Hi there.
I'm trying to develop a program like family tree maker. I have all
information, so there is no need to search on the net. This must be
something like trees. Can someone help me? I'm at the beginning.
Thanks.
 
J

Jon Clements

Hi there.
I'm trying to develop a program like family tree maker. I have all
information, so there is no need to search on the net. This must be
something like trees. Can someone help me? I'm at the beginning.
Thanks.

If you're after mature and actively developed Genealogy software
developed in Python, then check out http://gramps-project.org/
The developer list is very friendly.

Otherwise, you're in for a struggle, as you need to choose a storage
back-end, a GUI (wxWindows/GTK/Qt4 etc...), how to handle GEDCOM
format (unless it's not going to be compatible with other software),
does it need to produce web pages/reports (and in what formats).

I strongly suggest looking at GRAMPS and see what you're setting
yourself up for :)

hth

Jon
 
K

Kushal Kumaran

----- Original message -----
Hi there.
I'm trying to develop a program like family tree maker. I have all
information, so there is no need to search on the net. This must be
something like trees. Can someone help me? I'm at the beginning.
Thanks.

Family trees are nothing like trees, actually. If you start with that assumption, your software will sadly not be usable by many people.
 
T

Tim Harig

I'm trying to develop a program like family tree maker. I have all
information, so there is no need to search on the net. This must be
something like trees. Can someone help me? I'm at the beginning.

I don't know anything specific about family tree software and you don't
really specify what you want your software to do. I can only assume
that you are interested in taking the data in some format which contains
the links between family members and creating a tree representation of
that data?

If I was going to attempt something like this, I would probably generate
the representation as a set of postscript instructions. I would start
with a basic template for a union which could be essentially pasted
into different places in the output page. Then generating your tree
is a simple matter of laying out the templates to match your data,
filling in the template fields for each persion within their union,
and drawing the connecting lines of the tree.

Since I was already generating postscript anyway, I would probably
implement much of the actual logic in postscript (the built in stacks
provide an exellent way to process tree like structures in all of their
nested levels). I would Python provide any user interface for manipulating
the data and to dump the data into the postscript program.
 
G

Grant Edwards

I'm trying to develop a program like family tree maker. I have all
information, so there is no need to search on the net. This must be
something like trees.

Not really. It's more like a combination of a directed graph
and a relational database.
Can someone help me? I'm at the beginning.

You do know there is already a "family-tree-maker" program written in
Python, right?

http://gramps-project.org/

Your time might be better spent working on Gramps...
 
M

Michael Hunter

Hi there.
I'm trying to develop a program like family tree maker. I have all
information, so there is no need to search on the net. This must be
something like trees. Can someone help me? I'm at the beginning.
Thanks.

I think you are probably coming at this from the wrong direction.
Either you want to solve your family tree problem in the easiest way
possible in which case there are already packages available or you
want to develop this because you want to do the project to learn
(more) python, etc. Assuming the later the fact you have to ask the
question in the way you did means you are short on software design
experience and don't know much about the problem domain (genealogy).
Additionally you probably havn't written much code although you came
here so you probably have a little experience. That is triple death.
You need to hold a couple of those variables stable. I'd suggest
finding a existing open source genealogy program and use bug fixing as
a way to learn basics about the package and then try to add a feature
as a way of learning something about software design.

Michael
 
A

Ata Jafari

People here guided me to GRAMPS, an open-source software project. Yes,
I'm new, and Python is my first programming language. My software
should not be only a "tree-like" one. There are 254 people in this
family tree. I'm trying to find another method. But I think it is
better to start with contributing to GRAMPS first.
Thanks.

Ata
 
R

rantingrick

I think you are probably coming at this from the wrong direction.
Either you want to solve your family tree problem in the easiest way
possible in which case there are already packages available or you
want to develop this because you want to do the project to learn
(more) python, etc.  Assuming the later the fact you have to ask the
question in the way you did means you are short on software design
experience and don't know much about the problem domain (genealogy).
Additionally you probably havn't written much code although you came
here so you probably have a little experience.  That is triple death.
You need to hold a couple of those variables stable.  I'd suggest
finding a existing open source genealogy program and use bug fixing as
a way to learn basics about the package and then try to add a feature
as a way of learning something about software design.


While i mostly agree with this statement i must also whole-heart-ly
disagree.

I have many projects that i am currently "developing" that are far
beyond my skill set at this time. However this "lack of experience"
within the problem domain does not scare me away. Actually i want to
learn how many things work "under the hood". So what i do is develop
and design until i hit a wall. Then i move over to another project and
develop and design until i hit another wall. Sometimes i have to go
back and re-write the hole thing, but hey, its part of the learning
curve.

And in the process something interesting always happens... I find
that solving one problem lends knowledge and insight into another
completely different problem. This technique may not be for the weak
of heart but it works well for me. I like a challenge. I also like to
learn. So this drives me to keep going.

I can tell you that i have written code i previously thought was
impossible for me to create. Nothing is impossible if you want it bad
enough or if you can manage to live long enough! :). Sadly even if
your thirst for knowledge is unquenchable, your life will be quenched
in due time :(. But i do not want to image a world where we all live
forever, what a nightmare!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,540
Members
45,024
Latest member
ARDU_PROgrammER

Latest Threads

Top