From 4fcbf5ecdd958df2cc5845ff9d648028abd368e5 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Mon, 21 Nov 2022 10:32:07 -0300 Subject: [PATCH] Describing the design --- README.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 781ba96..1143588 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,59 @@ # Memoirs -A digital life memoir of your life \ No newline at end of file +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 \ No newline at end of file