Files
dewemoji/app/dewemoji-user-dashboard-implementation-plan.md
2026-02-12 00:52:40 +07:00

144 lines
3.3 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.
# Dewemoji User Dashboard Implementation Plan
**Source:** `dewemoji-ux-flow-brief.md`
**Goal:** Build the Personal user dashboard + inline personalization flows aligned with the UX brief.
---
## 1) Scope & Principles
- **Primary flow**: Add keywords directly on emoji detail pages (fast, contextual).
- **Secondary flow**: Manage keywords in the dashboard (bulk + power tools).
- **Zero friction** for Visitors/Free users; gentle upgrade prompts.
- **Shared layout** with admin (same shell, role-based sidebar).
---
## 2) User States & Routing
### Visitor (non-logged)
- Public search + emoji detail only.
- CTA: “Sign up free” / “Upgrade to Personal”.
### Free user (logged, no subscription)
- See public content, “Your keywords” section locked.
- Upgrade nudges on detail + empty states in dashboard.
### Personal user (paid)
- Full access: quick add on detail + dashboard CRUD.
---
## 3) UI Screens (User Dashboard)
### 3.1 Dashboard shell (shared)
- Same layout as admin (sidebar, top bar).
- Role-based sidebar menu:
- Overview
- My Keywords
- API Keys
- Billing
- Preferences
- Support / Logout
### 3.2 Overview (user)
- Show:
- Total keywords
- Recent keyword additions (last 7 days)
- Synced devices (optional later)
- Small quick link to “My Keywords”.
### 3.3 My Keywords (primary management)
- Table: Emoji | Your keywords | Language | Actions
- Toolbar:
- + Add Keyword
- Import JSON
- Export JSON
- Search/filter
- Modal: emoji picker → add keywords + language.
### 3.4 API Keys
- List user API keys
- Create/revoke key
### 3.5 Billing
- Current plan + renewal / expiry
- Payment method (future)
- Upgrade CTA if free
### 3.6 Preferences
- Theme
- Tone lock / preferred skin tone (future)
- Locale
---
## 4) Site Page Enhancements (Non-dashboard)
### 4.1 Emoji Detail Page (critical)
- Show public keywords for everyone.
- If Personal: show “Your Keywords” list + quick add modal.
- If Free: show locked section + upgrade CTA.
- If Visitor: CTA to sign up.
### 4.2 Search Results Page
- Personal user: blend public + user keywords.
- Show “Your keyword” badge and “quick edit” button.
---
## 5) API Endpoints (v1)
### Keyword CRUD
- `GET /v1/emoji/{slug}?include_user_keywords=true`
- `POST /v1/keywords` (add keyword)
- `PUT /v1/keywords/{id}` (edit)
- `DELETE /v1/keywords/{id}`
- `GET /v1/keywords` (list user keywords)
### User keyword import/export
- `POST /v1/keywords/import`
- `GET /v1/keywords/export`
### Dashboard data
- `GET /v1/user/summary` (counts + recents)
- `GET /v1/user/apikeys` / `POST /v1/user/apikeys`
- `GET /v1/user/billing` (subscription status)
---
## 6) Database / Models
Existing:
- `user_keywords`
- `subscriptions`
Add if needed:
- `user_keyword_imports` (optional audit)
---
## 7) Implementation Phases
### Phase A — Foundation
- Add user routes + dashboard views
- Layout reuse with rolebased sidebar
### Phase B — Keywords UX
- Detail page quick add
- Dashboard keyword CRUD + import/export
### Phase C — Billing & API Keys
- Billing summary + upgrade CTA
- API key list + create/revoke
---
## 8) Acceptance Criteria
- Personal user can add keywords from detail page in <5 seconds.
- Keyword appears in search results immediately.
- Dashboard keyword table supports filter + edit + delete.
- Free users see upgrade prompts, not broken UI.