All Projects → TheGeneGenieProject → GeneGenie.Gedcom

TheGeneGenieProject / GeneGenie.Gedcom

Licence: AGPL-3.0 license
A .Net Standard library for loading, saving, working with and analysing family trees stored in the GEDCOM format.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to GeneGenie.Gedcom

open-history-data
Поиск людей из прошлого
Stars: ✭ 19 (-48.65%)
Mutual labels:  genealogy, gedcom
topola-viewer
Topola Genealogy Viewer – interactive genealogy visualization
Stars: ✭ 116 (+213.51%)
Mutual labels:  genealogy, gedcom
gedcom
Gedcom utility program
Stars: ✭ 14 (-62.16%)
Mutual labels:  genealogy, gedcom
topola
Topola – online genealogy visualization
Stars: ✭ 57 (+54.05%)
Mutual labels:  genealogy, gedcom
Gedcom.pm
Gedcom - a Perl module to manipulate Gedcom genealogy files
Stars: ✭ 23 (-37.84%)
Mutual labels:  genealogy, gedcom
GEDKeeper
GEDKeeper - program for work with personal genealogical database
Stars: ✭ 78 (+110.81%)
Mutual labels:  genealogy, gedcom
ged2site
Create a family tree website from a Gedcom file
Stars: ✭ 25 (-32.43%)
Mutual labels:  genealogy, gedcom
nuxt
Nuxt 3 and Vue 3 client for genealogy project. Family tree and genealogy data processing website software client.
Stars: ✭ 97 (+162.16%)
Mutual labels:  genealogy
lineage
Family Tree Data Expression Engine
Stars: ✭ 90 (+143.24%)
Mutual labels:  genealogy
pyGenealogical-Tools
A python interface for genealogical tools (Geni, RootsMagic, GEDCOM, Family Search...)
Stars: ✭ 24 (-35.14%)
Mutual labels:  genealogy
fs-js-lite
Lite JS SDK for the FamilySearch API
Stars: ✭ 31 (-16.22%)
Mutual labels:  genealogy
backend
Laravel 8 backend for a genealogy website.
Stars: ✭ 82 (+121.62%)
Mutual labels:  genealogy
webtrees-fancy-research-links
Fancy Research Links Module for webtrees
Stars: ✭ 20 (-45.95%)
Mutual labels:  genealogy
familytree
A very incomplete Django-based genealogy web app.
Stars: ✭ 41 (+10.81%)
Mutual labels:  genealogy
GenealogyTreeInGit
Convert family trees from gedcom format to list of git commands that can be executed to build a family git repository
Stars: ✭ 15 (-59.46%)
Mutual labels:  genealogy
gramps-online
A simple online version of Gramps
Stars: ✭ 23 (-37.84%)
Mutual labels:  genealogy
MyopicVicar
MyopicVicar (short-sighted clergyman!) is an open-source genealogy record database and search engine. It powers the FreeREG database of parish registers, the FreeCEN database of census records, the next version of FreeBMD database of Civil Registration indexes and other Genealogical applications.
Stars: ✭ 40 (+8.11%)
Mutual labels:  genealogy
gedcom
👪 A Go library and CLI tools for encoding, decoding, traversing, merging, comparing, querying and publishing GEDCOM files.
Stars: ✭ 55 (+48.65%)
Mutual labels:  gedcom
python-gedcom
Python module for parsing, analyzing, and manipulating GEDCOM files
Stars: ✭ 105 (+183.78%)
Mutual labels:  gedcom

GeneGenie.Gedcom

A .Net Standard library for loading, saving, working with and analysing family trees stored in the GEDCOM format.

Thank you to David A Knight who developed Gedcom.Net from which this project was forked.

Installation

Whilst we are below version 1.0 we won't be releasing a Nuget package (unless the .Net core / 4.5.x multi targeting issue #5 is handled before then). To use the library, please download the source and star / set the repository as watched so you receive updates.

Basic usage

If you would like to see a specific sample please let us know what you want via Twitter (@ryanoneill1970) or create an issue in GitHub.

Check the sample project out for working code, basic operations are;

Loading a tree

To load a tree into memory use the following static helper.

var gedcomReader = GedcomRecordReader.CreateReader("Data\\presidents.ged");

There are other variants of this helper and non static methods that allow you to specify additional parameters such as encoding.

You'll want to make sure that the file you just read was parsed OK and handle any failures;

if (gedcomReader.Parser.ErrorState != Parser.Enums.GedcomErrorState.NoError)
{
    Console.WriteLine($"Could not read file, encountered error {gedcomReader.Parser.ErrorState}.");
}

Querying the tree

Console.WriteLine($"Found {db.Families.Count} families and {db.Individuals.Count} individuals.");
var individual = db
    .Individuals
    .FirstOrDefault(f => f.Names.Any());

if (individual != null)
{
    Console.WriteLine($"Individual found with a preferred name of '{individual.GetName()}'.");
}

Adding a person to the tree

var individual = new GedcomIndividualRecord(db);

var name = individual.Names[0];
name.Given = "Michael";
name.Surname = "Mouse";
name.Nick = "Mickey";

individual.Names.Add(name);

var birthDate = new GedcomDate(db);
birthDate.ParseDateString("24 Jan 1933");
individual.Events.Add(new GedcomIndividualEvent
{
    Database = db,
    Date = birthDate,
    EventType = Enums.GedcomEventType.Birth
});

Saving the tree

GedcomRecordWriter.OutputGedcom(db, "Rewritten.ged");

Current build status

AppVeyor branch NuGet AppVeyor tests

Code quality

Maintainability Quality gate Bugs Vulnerabilities Code smells Coverage Duplications Reliability Security Security Lines of code

Build stats

Contributing

We would love your help, see Contributing.md for guidelines.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].