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.

59 lines
1.5 KiB

1 year ago
# 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