don't re-invent the genealogy app wheel
TRANSCRIPT
DON'T RE-INVENT THE GENEALOGYAPP WHEEL
A PLATFORM FOR PERSONAL FAMILY-TREESby Dallan Quass / [email protected]
UNDER CONSTRUCTION
PERSONAL FAMILY-TREESOwner decides who to let in
SUPPOSE YOU WANT TO CREATE AFAMILY TREE TOOL
OPTIONSBuild on top of FamilySearch - limited user baseBuild on top of MyHeritage - read-onlyBuild on top of Ancestry Trees - no APIBuild your own tree manager
- lots of foundation code to write- grow user base ( marketing $ )
WE NEED A PLATFORMFor personal family trees, like FamilySearch is a platform for
a shared family tree
PLATFORM BENEFITSFoundation code writtenGEDCOM importGEDCOM exportREST APIOAuth support
MORE BENEFITS (LATER)Open-source web, desktop, and mobile clients
Plug your tools into these clientsClients written using web components
Embed components into your own app
EVIDENCE-BASED DATA MODEL
EVIDENCE-BASED ADVANTAGESMore funBetter model for collaborationIncrease chances to get new people involved
WHY ADOPT THE PLATFORM?
ADVANTAGESBack-end code writtenLess custom code to writeDon't need to spend money growing your user baseFree, hosted serviceSimple REST APIEvidence-based approach
DISADVANTAGESDepend upon external entityLoss of control over back-end storage
WHAT'S THE CATCH?
PRICINGFOLLOW GITHUB'S LEAD
Free for public treesAd supportedUp to ~100Mb image storage
Low annual fee for private treesNo adsAdditional image storage
ROADMAP
ROADMAPFeb 2015 Request for CommentsMar 2015 Limited beta - serverQ2 2015 Public beta - serverQ3 2015 Web clientQ4 2015 Mobile clientQ1 2016 Desktop client
DIVE INTO THE DETAILS
DATA MODEL COMPARISONGed GedX FS DeadEnds STEMMA This
Person X X X X X X
Event X X X Post
Source X X X X X Post
Note X X X X X Post
Discussion X Post
Memory X Post
PERSONFollows GedcomX
IDLivingGender // same as GedcomXNames // same as GedcomXFacts // same as GedcomXIdentifiers // for collaborationAttribution // contributor, last-modified, change-messageChangeID // change records track changes
POSTSuperclass of Event, Source, Note, Discussion, and MemoryIDEventType // e.g., BirthDatePlaceSubjectTextURL // external URLSourceCitationMediaID // uploaded image/docMediaType // e.g., image/jpegTagsIdentifiersAttributionChangeIDStatus // e.g., draft, active, discreditedEventRoles // one for each person in photo/record PersonID RoleType // e.g., father, mother, child Fields Label // e.g., age Value
COMMENTPosts can have comments
IDPostIDTextIdentifiersAttributionChangeID
CHANGEChange records track changes
IDTargetIDTargetPrevChangeID // ID of previous Change record for TargetReverseDelta // in json patch formatAttribution
DATA MODEL COMPARISONGed GedX FS DeadEnds STEMMA This
Family X X
CoupleRelation
X X Family
Child-ParRelation
X Family
Place X X X X use FS
Agent X X X
Document X
Media X X X
FAMILYCombines GedcomX Couple Relationship with FamilySearch
ChildAndParents Relationship
IDCouple // GedcomX couple relationshipChildren // array of FamilySearch ChildAndParents relationshipsIdentifiersAttributionChangeID
REST-ISH APIGET, POST, PUT, DELETE verbsNo unique content types - everything is application/json
If you request a person, you get back a personIf you request an event, you get back an event
API version is part of the request URIHATEOS?
REQUEST FOR COMMENTS
STARTUP WEEKEND
CONCLUSIONDallan Quass - [email protected]