Theodore Roosevelt Presidential Library Labs

TRPL Labs  /  Data & Automation

Data & Automation

Day by Day

All 21,986 days of Roosevelt's life as an open dataset, a JSON API, and an explorer.

Screenshot of Day by Day

Try it right here

This loads the live project from its own domain, exactly as a visitor would see it.

What it does

Every day of Theodore Roosevelt's life, from his birth in 1858 to his death in 1919, as a structured dataset. Each day carries a headline and summary, where he was, the people and places involved, letters to and from him, related archive items, and life-period tags. There are more than 4,700 people and 2,800 places in linked registries, and more than 127,000 Theodore Roosevelt Center digital library items attached to the days they belong to.

The facts come from a published chronology that is under copyright, so none of its text is reproduced: every summary was written fresh, and an automated check rejects any six-word run copied from the source. Each day cites the source's volume and page. Roosevelt's own words are included but flagged unverified until checked against the original.

What it can do

  • Static JSON API, rebuilt by GitHub Actions on every push
  • Explorer site and embeddable widgets
  • Linked people and places registries, most places with coordinates
  • 7,358 letters with correspondent and topic, many linked to the letter itself
  • Thirty editorial life periods across four facets
  • Copy-check that rejects six-word runs from the copyrighted source
  • Data under CC BY 4.0 in JSONL and CSV

Make it your own

Start by forking the repository into your own organization. Everything below assumes you are working in your fork, not this one.

# clone your fork git clone https://github.com/YOUR-ORG/DaybyDay.git cd DaybyDay
  1. Use the API directly: start at /api/v1/index.json. The data is CC BY 4.0; credit the Library.
  2. To build your own figure's chronology, fork the repo and follow docs/methods.md and docs/schema.md.
  3. Write day records into data/enrich/*.jsonl and keep the copy-check if your source is under copyright.
  4. Run python pipeline/build_dataset.py and python pipeline/build_api.py.
  5. Enable Pages through GitHub Actions; the workflow builds site/api on every push.

Stuck on a step? Open an issue on the repository. Questions from people adapting these for their own institution are the most useful feedback we get.