Files
q-blog/docs/USER_JOURNEYS.md
greenflame089 0b100af686 Release v0.2.2
2025-08-22 07:28:42 -04:00

50 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 elses `/{{name}}/blogs` shows a read-only list; no edit/create controls.