study-system/plan.txt

47 lines
1.5 KiB
Plaintext

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