A good software product would keep track of all those resources (i.e. papers, maps, photos, etc), and index much of it - thus allowing searches to be performed.
I think all products allow person entities to be indexed by their personal name, and sometimes by multiple alternative names.
Some allow your place references to be indexed. This implies that each referenced place is then a separate entity in your data (just like a person entity) and not simply some textual name such as 'Woodborough, Nottinghamshire, England'.
Indexing by event and/or date allows chronological analysis and the production of timelines.
Your physical artefacts (e.g. photos, letters), your sources, and your citations would probably be linked to the relevant persons, places, and events rather than separately indexed.
There will be some variation of what each product provides but this is a basic, workable model.
Unfortunately, I found that it would not index my own collection the way I wanted. As an example, consider a family letter that mentions several ancestors, places where they lived, and events in their lives. The physical artefact is obviously precious. A scan is not assimilated into your collection in any meaningful way. A transcription is better because it can be searched, but only via a plain-text search. Using a custom mark-up language, though, the entire transcription of the letter can be indexed and cross-referenced with the appropriate person, place, and event entities it refers to elsewhere in the data.
This requirement eventually became my STEMMA research project, and the mark-up became its structured narrative feature.