From 27ecce12110744850329ff9a06876edebaafdf9e Mon Sep 17 00:00:00 2001 From: Camden Dixie O'Brien Date: Sun, 23 Feb 2025 10:26:20 +0000 Subject: [PATCH] Check in project plan --- plan.txt | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 plan.txt diff --git a/plan.txt b/plan.txt new file mode 100644 index 0000000..06bdb69 --- /dev/null +++ b/plan.txt @@ -0,0 +1,46 @@ + STUDY SYSTEM + +GOALS + + 1. Support consistent and balanced study across multiple subjects + 2. Help prioritize what to study when time/energy is available + 3. Low friction of usage + 4. Apply cybernetic principles to self-directed education + +NON-GOALS + + 1. Setting targets for time spent studying + 2. Measuring effectiveness of studies + 3. Simplicity of set-up for non-technical users + 4. Reading mail + +CORE FEATURES + +Priority System: + + - Prioritized list of potential study activities + - Separate tracking of reading and exercises + - Neglected subjects increase in priority + - Balance maintenance between reading and exercises + +Study health monitoring: + + - Subject-level algedonic signals indicating consistency and + balance between reading and exercises + - System-wide algedonic signal indicating balance across subjects + +IMPLEMENTATION DECISIONS + + - Client/server to enable consistency across multiple devices + - Simple over-the-wire protocol so that future client + implementations for different platforms are feasible + (e.g. Android app) + - TCP with TLS for persistent connection + - Client authentication via certificates (mTLS) for simplicity of + implementation and security + - Server implementation in Erlang/OTP as it's very cool and I want + more practise with it + - ASN.1/DER for message serialization as it's flexible and reasonably + compact and has good Erlang integration + - Native Linux client because I hate the web + - Client implementation in GTK+Vala because it's boring