learn and share notes on atproto (wip) 馃
malfestio.stormlightlabs.org/
readability
solid
axum
atproto
srs
1# Information Architecture
2
3This document defines the application structure, navigation, and data model mapping for Milestone A.
4
5## Site Map (Navigation)
6
7### Global Navigation
8
9- **Home/Feed**: Discover content (Following, Trending).
10- **Library**: User's saved Decks, curated Collections, and private progress.
11- **Create**: Entry point for Authoring tools.
12- **Search**: Global search for Decks, Curators, and Tags.
13- **Profile**: User identity and settings.
14
15### Logical View Hierarchy
16
17- **/** (Home)
18 - Feed of followed curators
19- **/library**
20 - Study Queue (What to review today)
21 - My Decks (Created & Forked)
22 - Saved Collections
23- **/deck/:did/:slug** (Deck View)
24 - Overview (Description, Stats)
25 - Browser/Cards List
26 - Study Mode (Launch Session)
27- **/note/:rkey** (Note View)
28 - Note Content (Markdown)
29 - Backlinks / Linked Cards
30- **/source/:rkey** (Article/Lecture View)
31 - Source Metadata (Title, URL)
32 - Snapshot/Content View (if saved)
33 - Highlights List
34- **/study/:session_id** (Study Session)
35 - Active Recall Interface (Front/Back)
36- **/editor**
37 - New Deck / Edit Deck
38 - Import Source (URL/Text)
39- **/profile/:handle**
40 - Public Decks
41 - Followers/Following
42
43## Data Model Mapping
44
45Mapping screens to underlying data entities (Lexicon Records + Private State).
46
47| Screen / Component | Primary Data Entity | Secondary Entities | Private/Public |
48| :----------------- | :-------------------------------------------- | :------------------------------------------------------- | :---------------------------- |
49| **Deck Overview** | `org.stormlightlabs.malfestio.deck` | `org.stormlightlabs.malfestio.card` (refs), User Profile | **Public** |
50| **Study Session** | N/A (Ephemeral) | `org.stormlightlabs.malfestio.card`, Private Review Log | **Private** |
51| **Card View** | `org.stormlightlabs.malfestio.card` | `org.stormlightlabs.malfestio.note`, Media Blobs | **Public** |
52| **Editor** | Draft State (Local) | Source (`article`), `note` | **Private (Draft) -> Public** |
53| **Source View** | `org.stormlightlabs.malfestio.source.article` | `org.stormlightlabs.malfestio.note` (linked) | **Public** |
54| **Note View** | `org.stormlightlabs.malfestio.note` | Backlinks (`card`/`deck`) | **Public** |
55| **Library** | `org.stormlightlabs.malfestio.collection` | Bookmarks, User Prefs | **Mixed** |
56| **Comments** | `org.stormlightlabs.malfestio.thread.comment` | User Profile | **Public** |
57
58## URL Structure
59
60- `https://app.example.com/` - Home
61- `https://app.example.com/profile/<handle>` - User Profile
62- `https://app.example.com/profile/<handle>/deck/<slug>` - Deck Permalink
63- `https://app.example.com/profile/<handle>/deck/<slug>/card/<rkey>` - Card Permalink
64- `https://app.example.com/profile/<handle>/note/<rkey>` - Note Permalink
65- `https://app.example.com/profile/<handle>/source/<rkey>` - Source Permalink