Skip to content

Commit ca90229

Browse files
Merge pull request #1425 from liberu-genealogy/copilot/add-missing-features
Add FindMyPast record type system and specialized matching provider
2 parents c31f221 + 1afac62 commit ca90229

21 files changed

+2327
-1
lines changed

FINDMYPAST_FEATURES.md

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
# FindMyPast Integration Features
2+
3+
This document describes the FindMyPast-specific features that have been added to the Liberu Genealogy application.
4+
5+
## Overview
6+
7+
FindMyPast.co.uk is a leading UK-based genealogy website known for its extensive British and Irish historical records. This implementation adds support for FindMyPast's major record categories and specialized matching algorithms.
8+
9+
## Features Added
10+
11+
### 1. Record Type System
12+
13+
A comprehensive record type categorization system has been added to support different types of genealogical records:
14+
15+
- **Vital Records**: Birth, Marriage, Death Certificates
16+
- **Census Records**: All UK census years (1841-1911) plus 1939 Register
17+
- **Newspaper Archives**: Articles, Obituaries, Marriage/Birth Announcements
18+
- **Parish Records**: Baptisms, Marriages, Burials
19+
- **Electoral Registers**: Voter registration records
20+
- **GRO Index**: General Register Office birth, marriage, and death indices
21+
- **Military Records**: Service records, War Graves (WWI, WWII)
22+
- **Probate Records**: Wills and Probate grants
23+
- **Poor Law Records**: Workhouse and Poor Law Union records
24+
- **Court Records**: Criminal and civil court proceedings
25+
- **Land Records**: Property deeds and ownership documents
26+
27+
### 2. Database Schema
28+
29+
#### record_types Table
30+
Stores metadata about different record types including:
31+
- Name, slug, and category
32+
- Description
33+
- Metadata schema (JSON) for type-specific fields
34+
- Display settings (icon, color, sort order)
35+
36+
#### Enhanced sources Table
37+
- Added `record_type_id` foreign key
38+
- Added `archive_metadata` JSON field for type-specific data
39+
40+
#### Enhanced smart_matches Table
41+
- Added `record_type_id` foreign key
42+
- Added `record_category` field
43+
- Added `search_criteria` JSON field to track search parameters
44+
45+
### 3. FindMyPast Matching Provider
46+
47+
A specialized service (`FindMyPastMatchingProvider`) that implements record-type-specific search and matching logic:
48+
49+
#### Newspaper Archives
50+
- Searches obituaries based on death dates
51+
- Searches marriage announcements
52+
- Includes publication name, date, page number
53+
- Generates obituary extracts
54+
55+
#### Parish Records
56+
- Searches baptism records (birth + 7-90 days typically)
57+
- Searches burial records (death + 3-10 days typically)
58+
- Includes parish name, church name, diocese
59+
- Captures parent names and abode information
60+
61+
#### Census Records
62+
- Searches all available UK census years (1841-1911)
63+
- Calculates age at each census
64+
- Includes residence, household, occupation information
65+
- County and enumeration district details
66+
67+
#### Electoral Registers
68+
- Searches voter registration records (1832+)
69+
- Includes address, constituency, qualification
70+
- Samples records every 5-10 years
71+
72+
#### GRO Index
73+
- Searches General Register Office indices (1837+)
74+
- Birth, Marriage, and Death indices
75+
- Includes quarter, year, district, volume, page
76+
- Mother's maiden name for births
77+
78+
#### Military Records
79+
- WWI service records (for men born 1880-1900)
80+
- WWII service records (for men born 1900-1927)
81+
- Includes service number, regiment, rank, enlistment date
82+
83+
#### Probate Records
84+
- Searches wills and probate grants
85+
- Includes probate date, court, estate value
86+
87+
#### Poor Law Records
88+
- Workhouse admission records
89+
- Includes workhouse name, union, admission/discharge dates
90+
91+
### 4. Confidence Scoring
92+
93+
Record-type-specific confidence scoring algorithms:
94+
95+
- **Newspapers**: 60% base + 15% if death date available
96+
- **Parish Records**: 70% base + 10% for pre-1900 records
97+
- **Census Records**: 75% base + 15% if age calculation matches
98+
- **GRO Index**: 85% base (official government records)
99+
- **Other types**: 50-70% base depending on record quality
100+
101+
### 5. User Interface
102+
103+
#### Smart Matches Resource
104+
Enhanced to display:
105+
- Record type/category as colored badges
106+
- Filter by record type category
107+
- Shows type-specific information in match data
108+
109+
#### Record Types Management
110+
New admin resource for managing record types:
111+
- Create, edit, delete record types
112+
- Configure metadata schemas
113+
- Set display properties (icons, colors)
114+
- Control active/inactive status
115+
116+
## Usage
117+
118+
### Finding Smart Matches
119+
120+
1. Navigate to "Smart Matches" in the Research & Analysis section
121+
2. Click "Find New Matches" button
122+
3. The system will search all available platforms including FindMyPast
123+
4. FindMyPast matches will include specific record types:
124+
- Newspapers (obituaries, notices)
125+
- Parish records (baptisms, burials)
126+
- Census records (all available years)
127+
- Electoral registers
128+
- GRO indices
129+
- Military records
130+
- Probate records
131+
132+
### Filtering Results
133+
134+
Use the new "Record Type" filter to narrow results:
135+
- Newspaper
136+
- Parish Record
137+
- Census
138+
- Electoral Register
139+
- GRO Index
140+
- Military
141+
- Probate
142+
- Poor Law/Workhouse
143+
144+
### Viewing Match Details
145+
146+
Each FindMyPast match includes record-specific metadata:
147+
- **Census**: Year, district, household info, occupation
148+
- **Newspaper**: Publication, date, page, article type
149+
- **Parish**: Parish name, church, baptism/burial dates
150+
- **GRO**: Quarter, district, volume, page numbers
151+
- **Military**: Regiment, rank, service number
152+
153+
## Technical Implementation
154+
155+
### Models
156+
- `RecordType` - Manages record type definitions
157+
- Enhanced `Source` with record type relationship
158+
- Enhanced `SmartMatch` with record type and category
159+
160+
### Services
161+
- `FindMyPastMatchingProvider` - Specialized FindMyPast search logic
162+
- Enhanced `SmartMatchingService` - Integrates FindMyPast provider
163+
164+
### Seeders
165+
- `RecordTypeSeeder` - Seeds 24 different record types covering all major FindMyPast categories
166+
167+
### Migrations
168+
- `create_record_types_table` - Record type definitions
169+
- `add_record_type_to_sources` - Links sources to record types
170+
- `add_record_type_to_smart_matches` - Enhanced smart matching
171+
172+
## Future Enhancements
173+
174+
Potential additions:
175+
1. Real FindMyPast API integration (currently simulated)
176+
2. OCR for newspaper image transcription
177+
3. Parish boundary mapping
178+
4. Census enumeration district visualization
179+
5. Electoral constituency historical tracking
180+
6. Military unit histories and battle participation
181+
7. Probate value inflation calculator
182+
183+
## References
184+
185+
- FindMyPast.co.uk: https://www.findmypast.co.uk
186+
- FindMyPast Collections: Major UK/Irish genealogy records
187+
- GRO Index: General Register Office vital records index
188+
- Parish Records: Church of England baptism, marriage, burial records
189+
- 1939 Register: National Registration Act wartime census substitute

0 commit comments

Comments
 (0)