forked from Qortal/q-blog
50 lines
1.9 KiB
Markdown
50 lines
1.9 KiB
Markdown
# Q-Blog 1.0 — Personas & Key Journeys
|
||
|
||
_Generated 2025-08-16 23:27Z_
|
||
|
||
## Personas
|
||
|
||
- **Solo Writer** — Publishes articles and drafts privately before release.
|
||
- **Team Owner** — Creates a shared blog and invites collaborators.
|
||
- **Invited Author** — Writes posts on a shared blog; cannot manage members.
|
||
- **Reader** — Browses and discovers posts; expects fast loads and clear navigation.
|
||
|
||
## Protected Journeys (1.0)
|
||
|
||
1. **Read posts** — Navigate lists → open an article; keyboard and screen reader friendly.
|
||
2. **Create post** — Draft, autosave, preview, publish; clear feedback on errors.
|
||
3. **Edit post** — Update content; attribution and revision increase predictability.
|
||
4. **Manage blogs** — Create/switch blogs; lists scope to the selected blog.
|
||
5. **Collaborate** — Invite member; invited author creates/edits within role.
|
||
|
||
## Acceptance Hints per Journey
|
||
|
||
- **Read:** Landmarks in place, heading hierarchy valid, link text descriptive, images have alt.
|
||
- **Create/Edit:** Toolbar states deterministic; autosave status surfaced via live region; error can be retried.
|
||
- **Manage:** Blog switch affects all scoped views; URLs stable and shareable.
|
||
- **Collaborate:** Role gating enforced in UI and API; forbidden paths never succeed.
|
||
|
||
---
|
||
|
||
## Audit Notes (v0.0.1)
|
||
|
||
- ⚠️ Note: PostEditor autosave + live region announcements need verification in code; docs may overstate completeness.
|
||
|
||
## Journeys — Multi-Blog
|
||
|
||
### 0 blogs (self)
|
||
|
||
- Header shows **Create Blog**. `/{{name}}` → `/{{name}}/blogs` with empty state + CTA.
|
||
|
||
### 1 blog
|
||
|
||
- `/{{name}}` redirects to `/{{name}}/{{blog}}/posts`. Header shows **My Blogs** (1 item + Create).
|
||
|
||
### N blogs
|
||
|
||
- Header dropdown lists all blogs (active ✓). `/{{name}}/blogs` lists them with Edit/Create when self.
|
||
|
||
### Public view
|
||
|
||
- Viewing someone else’s `/{{name}}/blogs` shows a read-only list; no edit/create controls.
|