A digital life memoir of your life
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Julio Biason 4fcbf5ecdd Describing the design 2 years ago
.gitignore Initial commit 2 years ago
LICENSE Initial commit 2 years ago
README.md Describing the design 2 years ago

README.md

Memoirs

A digital life memoir of your life

Design

The main design is to have a Store application, which manages its storage. Then other services are used to capture data from services and throw to Store, or retrieve information for Store to be displayed.

Currently, I'm considering the following Captures (based on my own life):

  • Mastodon
  • RSS
  • Guild Wars 2
  • Steam Capturer (?)
  • Netflix
  • Deezer
  • Calendar/CalDav

Store

The main application that keeps information. We would probably need a design like:

  • id: UUID of the record
  • title: String, produced by a Capturer
  • content: Text, produced by a Capturer, must always be Markdown (to avoid having a format that needs to be specially processed by some viewer)
  • source: Name of the Capturer
  • meta: HashMap, with some information the Capturer has about the entry

Mastodon Capturer

There are two options for a Mastodon Capturer: A pure RSS reader or a full-fledged Mastodon client. A client would probably capture things send in private and such, which seem better.

Need to store, locally:

  • id: Toot ID

We need only the ID 'cause we don't want to duplicate content; once the client finds a toot in its own database, it stops reading from the source and don't send it to the Store.

As content send to the Store, we'd use a template like

{% if content_warning %}
  ({{ content_warning}})
{% endif %}

{{ content }}

RSS Capturer

Guild Wars 2 Capturer

Steam Capturer

Netflix Capturer

Deezer Capturer

Calendar/CalDav Capturer