final docs for final audit implemenation
This commit is contained in:
@@ -1,867 +0,0 @@
|
||||
# Pre-Launch System Audit
|
||||
|
||||
**Date:** December 25, 2025
|
||||
**Purpose:** Identify functional workflow gaps and improvements for pre-launch QA
|
||||
**Scope:** Non-cosmetic, professional, workflow-based issues only
|
||||
|
||||
---
|
||||
|
||||
## Table of Contents
|
||||
1. [Dashboard](#1-dashboard)
|
||||
2. [SETUP Modules](#2-setup-modules)
|
||||
3. [WORKFLOW Modules](#3-workflow-modules)
|
||||
4. [ACCOUNT Modules](#4-account-modules)
|
||||
5. [HELP Module](#5-help-module)
|
||||
6. [Sidebar & Navigation](#6-sidebar--navigation)
|
||||
7. [Summary & Prioritization](#7-summary--prioritization)
|
||||
|
||||
---
|
||||
|
||||
## 1. Dashboard
|
||||
|
||||
**Route:** `/`
|
||||
**Files:** `pages/Dashboard/Home.tsx`, `components/dashboard/*`
|
||||
|
||||
### Current Functionality
|
||||
- Workflow Progress: 6-step pipeline visualization (Sites → Keywords → Clusters → Ideas → Content → Published)
|
||||
- Quick Actions: 5 navigation shortcuts
|
||||
- Key Metrics: 4 cards (Keywords, Articles, Images, Completion %)
|
||||
- Credit Usage: Monthly allowance and usage bar
|
||||
- Workflow Modules Guide: 8 info cards explaining modules
|
||||
- Onboarding: Site creation wizard for new users
|
||||
|
||||
### Critical Gaps
|
||||
|
||||
| Issue | Impact | Details |
|
||||
|-------|--------|---------|
|
||||
| **No aggregated API endpoint** | Performance | Makes 6+ sequential API calls with 120ms delays to avoid rate limiting |
|
||||
| **Published content count incorrect** | Data accuracy | Cannot distinguish published vs draft content |
|
||||
| **Usage Summary is hardcoded** | Misleading | Shows fake "547 credits / $0.34" data |
|
||||
| **Recent Activity is hardcoded** | Misleading | Static mock activity that never updates |
|
||||
| **No real-time updates** | Stale data | Only refreshes on manual action |
|
||||
|
||||
### Missing Professional Features
|
||||
|
||||
| Feature | Why Important |
|
||||
|---------|---------------|
|
||||
| **Needs Attention section** | Users don't know what requires action |
|
||||
| **Recent content activity** | No real list of recently created/published content |
|
||||
| **Error/warning alerts** | No indication of failed syncs, low credits, config issues |
|
||||
| **Pipeline queue depth** | No visibility into items waiting at each stage |
|
||||
| **Automation status** | No run status, last run time, or items processed |
|
||||
| **Site health/sync status** | No WordPress sync health indicator |
|
||||
|
||||
### Workflow Issues
|
||||
|
||||
1. **Quick Actions don't adapt to user state** - Shows same 5 actions regardless of workflow stage
|
||||
2. **Workflow Completion % is misleading** - Formula doesn't reflect real content-from-keywords ratio
|
||||
3. **Modules Guide not dismissible** - 8 large cards always shown, no way to hide
|
||||
4. **Chart widget code exists but unused** - Dead code, no trend visualization
|
||||
|
||||
### Recommendations
|
||||
|
||||
**Priority 1 - Must Fix:**
|
||||
- [ ] Create `/v1/dashboard/summary/` aggregated endpoint
|
||||
- [ ] Fix published content count (separate published vs draft)
|
||||
- [ ] Replace hardcoded usage data with real billing data
|
||||
- [ ] Remove or implement real recent activity
|
||||
|
||||
**Priority 2 - High Value:**
|
||||
- [ ] Add "Needs Attention" section (pending reviews, failed syncs, low credits)
|
||||
- [ ] Add actionable pending task count per pipeline stage
|
||||
- [ ] Add automation run status display
|
||||
- [ ] Add WordPress sync health indicator
|
||||
|
||||
**Priority 3 - UX Polish:**
|
||||
- [ ] Make Quick Actions contextual based on workflow state
|
||||
- [ ] Add loading skeleton
|
||||
- [ ] Make Workflow Modules Guide dismissible
|
||||
- [ ] Fix or remove trend chart code
|
||||
|
||||
---
|
||||
|
||||
## 2. SETUP Modules
|
||||
|
||||
### 2.1 Add Keywords
|
||||
|
||||
**Route:** `/setup/add-keywords`
|
||||
**Files:** `pages/Setup/AddKeywords.tsx`
|
||||
**Tabs:** None (single page)
|
||||
|
||||
#### Current Functionality
|
||||
- Displays global seed keywords filtered by active site's industry/sector
|
||||
- Browse pre-populated keyword database (admin-imported CSV)
|
||||
- Add selected keywords to Planner workflow
|
||||
- Tracks already-added keywords
|
||||
- Bulk selection and bulk add
|
||||
- Filters: Search, Country, Difficulty
|
||||
- Admin CSV upload capability
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **Sector requirement unclear** | Buttons disabled with no tooltip explaining why |
|
||||
| **No keyword research integration** | Can only browse pre-imported seeds, no external discovery |
|
||||
| **No manual keyword entry** | Cannot add custom keywords not in seed database |
|
||||
| **No keyword details/preview** | No SERP features, trends, or related keywords visible |
|
||||
| **No "already added" filter** | Cannot filter to show only not-yet-added keywords |
|
||||
|
||||
#### Workflow Issues
|
||||
- No "Next Step" CTA after adding keywords → users don't know to go to Planner
|
||||
- No keyword count summary (X in workflow, Y available)
|
||||
|
||||
#### Recommendations
|
||||
- [ ] Add "Next: Plan Your Content →" button after keywords added
|
||||
- [ ] Add "Show not-yet-added only" filter
|
||||
- [ ] Add manual keyword entry form
|
||||
- [ ] Add tooltip explaining disabled state when no sector selected
|
||||
- [ ] Add keyword count summary
|
||||
|
||||
---
|
||||
|
||||
### 2.2 Content Settings
|
||||
|
||||
**Route:** `/account/content-settings`
|
||||
**Files:** `pages/account/ContentSettingsPage.tsx`
|
||||
**Tabs:** Content Generation, Publishing, Image Settings
|
||||
|
||||
#### Current Functionality
|
||||
- **Content Generation:** Append to prompt, default tone, default length
|
||||
- **Publishing:** Auto-publish toggle, keep updated toggle
|
||||
- **Image Settings:** Quality, style, sizes, format (DALL-E 2/3/Runware)
|
||||
|
||||
#### Critical Gaps
|
||||
|
||||
| Issue | Impact | Severity |
|
||||
|-------|--------|----------|
|
||||
| **Content Generation NOT PERSISTED** | Settings appear to save but don't - TODO comments in code | 🔴 Critical |
|
||||
| **Publishing NOT PERSISTED** | Same issue - no backend API implemented | 🔴 Critical |
|
||||
| **Only Image Settings work** | Only tab with actual API integration | 🔴 Critical |
|
||||
| **No per-site settings** | Global only, but multi-site users need site-specific | 🟠 High |
|
||||
|
||||
#### Workflow Issues
|
||||
- **False confidence**: Users see "Settings saved successfully" but nothing is saved
|
||||
- No indication that Content Generation/Publishing tabs are non-functional
|
||||
- Disconnected from Thinker prompts (which also affect content generation)
|
||||
|
||||
#### Recommendations
|
||||
- [ ] 🔴 **CRITICAL:** Implement backend endpoints for Content Generation settings
|
||||
- [ ] 🔴 **CRITICAL:** Implement backend endpoints for Publishing settings
|
||||
- [ ] Either hide non-functional tabs or mark as "Coming Soon"
|
||||
- [ ] Add relationship explanation to Thinker prompts
|
||||
- [ ] Consider per-site overrides
|
||||
|
||||
---
|
||||
|
||||
### 2.3 Sites
|
||||
|
||||
**Route:** `/sites`
|
||||
**Files:** `pages/Sites/List.tsx`, `pages/Sites/SiteSettings.tsx`, `pages/Sites/SiteDashboard.tsx`
|
||||
**Tabs:** Site Settings has 3 tabs (General, Integrations, Content Types)
|
||||
|
||||
#### Current Functionality
|
||||
- List all sites with filtering (search, type, hosting, status)
|
||||
- Create sites via WorkflowGuide (requires industry + sectors)
|
||||
- Activate/deactivate sites
|
||||
- Navigate to site dashboard, content, settings
|
||||
- Settings: Name, URL, SEO, WordPress integration, content type mapping
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **Dashboard stats are mock data** | `getSiteDashboardStats` returns hardcoded zeros |
|
||||
| **No inline editing** | Must navigate to settings to change site name |
|
||||
| **No site cloning** | Cannot duplicate site configuration |
|
||||
| **Duplicate pages** | List.tsx and Manage.tsx overlap functionality |
|
||||
| **No bulk operations** | Cannot bulk activate/delete sites |
|
||||
|
||||
#### Workflow Issues
|
||||
- Complex site creation requires industry/sector upfront (users may not know yet)
|
||||
- Integration tab default after creation confuses non-technical users
|
||||
- No setup progress indicator showing what's configured vs pending
|
||||
|
||||
#### Recommendations
|
||||
- [ ] Add site setup checklist/progress indicator on cards
|
||||
- [ ] Allow site creation without immediate WordPress setup
|
||||
- [ ] Add inline editing for site name from list
|
||||
- [ ] Remove or merge Manage.tsx if redundant
|
||||
- [ ] Implement real site statistics endpoint
|
||||
- [ ] Add "Skip integration for now" option
|
||||
|
||||
---
|
||||
|
||||
### 2.4 Thinker (Admin Only)
|
||||
|
||||
**Route:** `/thinker/prompts`
|
||||
**Files:** `pages/Thinker/Prompts.tsx`, `pages/Thinker/AuthorProfiles.tsx`, `pages/Thinker/Strategies.tsx`, `pages/Thinker/ImageTesting.tsx`
|
||||
**Tabs:** Prompts, Author Profiles, Strategies (Coming Soon), Image Testing (Coming Soon)
|
||||
|
||||
#### Current Functionality
|
||||
- **Prompts:** View/edit AI prompt templates (Clustering, Ideas, Content, Images, etc.)
|
||||
- **Author Profiles:** CRUD for author profiles (name, description, tone, language)
|
||||
- **Strategies:** Coming Soon placeholder
|
||||
- **Image Testing:** Coming Soon placeholder
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **50% Coming Soon** | Strategies + Image Testing are placeholders | 🟠 High |
|
||||
| **No prompt testing** | Cannot preview prompt output before saving |
|
||||
| **No prompt versioning** | No history or rollback capability |
|
||||
| **No per-site prompts** | All prompts global, no site-specific variations |
|
||||
| **Author Profiles not connected** | Unclear how/where they're used in workflow |
|
||||
| **No variable reference** | Placeholders like `[IGNY8_KEYWORDS]` undocumented |
|
||||
|
||||
#### Workflow Issues
|
||||
- Admin-only with no explanation of relationship to Content Settings (user-accessible)
|
||||
- No prompt categories in UI (hardcoded grouping)
|
||||
- Strategies/Image Testing pages offer no value
|
||||
|
||||
#### Recommendations
|
||||
- [ ] Either complete or hide Strategies and Image Testing
|
||||
- [ ] Add prompt testing capability (preview with sample data)
|
||||
- [ ] Add prompt version history
|
||||
- [ ] Document relationship between Content Settings and Thinker Prompts
|
||||
- [ ] Show where Author Profiles are used
|
||||
- [ ] Add prompt variable reference documentation
|
||||
|
||||
---
|
||||
|
||||
### SETUP Cross-Module Issues
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **No guided flow** | After setup tasks, no clear path to start content workflow |
|
||||
| **Scattered settings** | Content settings split across 3 locations |
|
||||
| **No onboarding checklist** | No unified "Setup Complete" indicator |
|
||||
|
||||
#### Setup Completion Checklist Needed:
|
||||
- [ ] Site created
|
||||
- [ ] Industry/Sectors selected
|
||||
- [ ] Integration configured (or skipped)
|
||||
- [ ] Keywords added
|
||||
- [ ] Content settings configured
|
||||
|
||||
---
|
||||
|
||||
## 3. WORKFLOW Modules
|
||||
|
||||
### 3.1 Planner
|
||||
|
||||
**Route:** `/planner/keywords`
|
||||
**Files:** `pages/Planner/Keywords.tsx`, `pages/Planner/Clusters.tsx`, `pages/Planner/ClusterView.tsx`, `pages/Planner/Ideas.tsx`, `pages/Planner/KeywordOpportunities.tsx`
|
||||
**Tabs:** Keywords, Clusters, Ideas (in-page navigation)
|
||||
|
||||
#### Current Functionality
|
||||
- **Keywords:** CRUD, bulk status updates, auto-cluster AI, filters
|
||||
- **Clusters:** CRUD, bulk operations, auto-generate ideas AI
|
||||
- **Ideas:** CRUD, bulk queue to writer, filters
|
||||
- **Flow:** Keywords → Auto-Cluster → Clusters → Auto-Generate Ideas → Ideas → Queue to Writer
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact | Severity |
|
||||
|-------|--------|----------|
|
||||
| **KeywordOpportunities hidden** | Page exists at `/planner/keyword-opportunities` but NOT in navigation tabs | 🟠 High |
|
||||
| **No "Add to Existing Cluster"** | Auto-cluster creates new clusters only, can't add to existing | 🟡 Medium |
|
||||
| **No cluster merge/split** | Cannot combine or split clusters | 🟡 Medium |
|
||||
| **No cluster progress indicator** | Can't see which clusters already have ideas generated | 🟠 High |
|
||||
| **Ideas missing queued count** | No indicator of how many are pending vs processed | 🟡 Medium |
|
||||
|
||||
#### Workflow Issues
|
||||
- Seed keyword system (KeywordOpportunities) is orphaned from main workflow
|
||||
- Cluster → Ideas transition unclear (which clusters need ideas?)
|
||||
- No return path from Ideas to source cluster
|
||||
|
||||
#### Recommendations
|
||||
- [ ] **Add KeywordOpportunities to Planner tabs** (Critical for onboarding)
|
||||
- [ ] Add "Assign to Cluster" bulk action for existing clusters
|
||||
- [ ] Add Ideas Count badge on Clusters table
|
||||
- [ ] Make cluster name clickable on Ideas page
|
||||
|
||||
---
|
||||
|
||||
### 3.2 Writer
|
||||
|
||||
**Route:** `/writer/tasks`
|
||||
**Files:** `pages/Writer/Tasks.tsx`, `pages/Writer/Drafts.tsx`, `pages/Writer/ContentView.tsx`, `pages/Writer/Images.tsx`, `pages/Writer/Review.tsx`, `pages/Writer/Published.tsx`
|
||||
**Tabs:** Queue, Drafts, Images, Review, Published
|
||||
|
||||
#### Current Functionality
|
||||
- **Tasks:** CRUD, generate content (row action only), generate images bulk
|
||||
- **Drafts:** List drafts, view details, status updates
|
||||
- **Images:** Grouped by content, image generation
|
||||
- **Review:** Status=review filter, publish to WordPress
|
||||
- **Published:** Status=published, WordPress sync status
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact | Severity |
|
||||
|-------|--------|----------|
|
||||
| **No bulk content generation** | Must click each row individually, `generate_content` removed from bulk | 🔴 Critical |
|
||||
| **No content editing** | ContentView is read-only, no inline editing | 🔴 Critical |
|
||||
| **No manual task creation** | Must go through Ideas, can't create task directly | 🟠 High |
|
||||
| **No content regeneration** | Can't regenerate with different params, must delete & re-queue | 🟠 High |
|
||||
| **Review → Published manual only** | No simple "Mark as Published" for non-WordPress | 🟡 Medium |
|
||||
|
||||
#### Workflow Issues
|
||||
- Status progression confusion (Draft → Review → Published requires different pages)
|
||||
- ContentView missing actions bar (must return to list for actions)
|
||||
- Images detached from content workflow
|
||||
- No `send_to_linker` action (only `send_to_optimizer`)
|
||||
|
||||
#### Recommendations
|
||||
- [ ] 🔴 **CRITICAL:** Add bulk content generation with rate limiting
|
||||
- [ ] 🔴 **CRITICAL:** Implement inline content editing in ContentView
|
||||
- [ ] Add content action bar (Edit, Regenerate, Add Images, Optimize, Link, Publish)
|
||||
- [ ] Add `send_to_linker` row action
|
||||
- [ ] Add manual task creation capability
|
||||
|
||||
---
|
||||
|
||||
### 3.3 Automation
|
||||
|
||||
**Route:** `/automation`
|
||||
**Files:** `pages/Automation/Dashboard.tsx`
|
||||
**Tabs:** None (single page)
|
||||
|
||||
#### Current Functionality
|
||||
- Pipeline overview (7 stages: Keywords→Clusters→Ideas→Tasks→Content→Image Prompts→Images)
|
||||
- Schedule configuration (frequency, time, enable/disable)
|
||||
- Run controls (Run Now, Pause, Resume)
|
||||
- Real-time progress polling
|
||||
- Metrics display and activity log
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **No stage-by-stage control** | All-or-nothing, can't run individual stages |
|
||||
| **No review gate config** | Stage 7 "Review Gate" has no UI to configure rules |
|
||||
| **No error recovery** | If stage fails, must rerun entire pipeline |
|
||||
| **No batch size config** | Can't throttle items per run |
|
||||
| **No dry run/preview** | Can't see what WOULD process before running |
|
||||
| **Activity log not filterable** | Can't filter by stage, status, or date |
|
||||
|
||||
#### Workflow Issues
|
||||
- Credit estimation unclear (labeled "content pieces" but shows credits?)
|
||||
- Run history depth unknown, no pagination
|
||||
- No indication of manual vs automated items
|
||||
|
||||
#### Recommendations
|
||||
- [ ] Add stage toggles (enable/disable individual stages)
|
||||
- [ ] Add preview mode (show items that will process)
|
||||
- [ ] Add retry for failed items (per-item or per-stage)
|
||||
- [ ] Add activity log filters
|
||||
- [ ] Clarify credit vs content labeling
|
||||
|
||||
---
|
||||
|
||||
### 3.4 Linker
|
||||
|
||||
**Route:** `/linker/content`
|
||||
**Files:** `pages/Linker/Content.tsx`, `pages/Linker/Dashboard.tsx` (not routed)
|
||||
**Tabs:** Content only (Dashboard exists but hidden)
|
||||
|
||||
#### Current Functionality
|
||||
- Content list with link count and version
|
||||
- Single-item "Add Links" button
|
||||
- Batch linking capability (code exists, UI unclear)
|
||||
- Recent results display (last 3)
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **Dashboard not exposed** | Dashboard.tsx exists but not in navigation |
|
||||
| **No content filtering** | Can't filter by status, cluster, or link count |
|
||||
| **No bulk selection UI** | `handleBatchLink` exists but no checkboxes |
|
||||
| **No link preview/management** | Shows count but can't view/edit actual links |
|
||||
| **No "Needs Linking" filter** | Can't find content with 0 links easily |
|
||||
|
||||
#### Workflow Issues
|
||||
- Completely separate from Writer, requires manual navigation
|
||||
- Link results only show "last 3" in session, no persistent history
|
||||
- No cluster-based linking
|
||||
|
||||
#### Recommendations
|
||||
- [ ] Add content filters (status, cluster, "needs linking")
|
||||
- [ ] Add bulk selection checkboxes
|
||||
- [ ] Add link details modal (show/manage individual links)
|
||||
- [ ] Add "Link All New Content" action
|
||||
- [ ] Integrate into Writer ContentView
|
||||
|
||||
---
|
||||
|
||||
### 3.5 Optimizer
|
||||
|
||||
**Route:** `/optimizer/content`
|
||||
**Files:** `pages/Optimizer/Content.tsx`, `pages/Optimizer/AnalysisPreview.tsx` (orphaned), `pages/Optimizer/Dashboard.tsx` (not routed)
|
||||
**Tabs:** Content only (Dashboard exists but hidden)
|
||||
|
||||
#### Current Functionality
|
||||
- Content list with optimization scores
|
||||
- Entry point selection (auto, writer, wordpress, external, manual)
|
||||
- Single-item and batch optimize
|
||||
- Score display (overall, SEO, readability, engagement)
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **Dashboard not exposed** | Dashboard.tsx exists but not in navigation |
|
||||
| **AnalysisPreview orphaned** | Route exists but no UI link to it |
|
||||
| **Limited filtering** | Only source/search, no score range filter |
|
||||
| **No optimization history** | No before/after comparison |
|
||||
| **No optimization settings** | Can't configure what aspects to optimize |
|
||||
| **No suggested actions** | Scores show but no recommendations |
|
||||
|
||||
#### Workflow Issues
|
||||
- Must navigate to Optimizer separately (disconnected from Writer)
|
||||
- Analysis vs Optimize confusion (analyze never used)
|
||||
- No re-optimization control
|
||||
|
||||
#### Recommendations
|
||||
- [ ] Add Analysis Preview link ("Preview Scores" action)
|
||||
- [ ] Add score-based filters ("Score < 70", "Needs SEO")
|
||||
- [ ] Add optimization recommendations
|
||||
- [ ] Add "Optimize All Below Threshold" bulk action
|
||||
- [ ] Integrate into Writer (auto-analyze during draft)
|
||||
|
||||
---
|
||||
|
||||
### WORKFLOW Cross-Module Issues
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **No Planner → Writer visibility** | After queuing, must manually switch modules |
|
||||
| **No Writer → Linker integration** | No "Add Links" button in content view |
|
||||
| **No Writer → Optimizer integration** | Optimize exists but no score preview |
|
||||
| **No cross-module notifications** | User doesn't know when AI tasks complete |
|
||||
| **No breadcrumb navigation** | Can't see full workflow path (Cluster → Idea → Task → Content) |
|
||||
|
||||
#### Cross-Module Recommendations
|
||||
- [ ] Add global notification system for completed tasks
|
||||
- [ ] Add breadcrumb navigation showing workflow path
|
||||
- [ ] Add "Next Step" suggestions after each action
|
||||
- [ ] Unify content detail view with ALL actions available
|
||||
- [ ] Add workflow progress indicator
|
||||
|
||||
---
|
||||
|
||||
## 4. ACCOUNT Modules
|
||||
|
||||
### 4.1 Account Settings
|
||||
|
||||
**Route:** `/account/settings`
|
||||
**Files:** `pages/account/AccountSettingsPage.tsx`
|
||||
**Tabs:** Account, Profile, Team
|
||||
|
||||
#### Current Functionality
|
||||
- **Account Tab:** Organization name, billing email, full billing address, tax ID/VAT
|
||||
- **Profile Tab:** First/last name, email, phone, timezone, language, notifications, security
|
||||
- **Team Tab:** List team members, invite via email, remove members, role display
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact | Severity |
|
||||
|-------|--------|----------|
|
||||
| **Profile NOT connected to API** | Form saves nowhere - fake save with timeout | 🔴 Critical |
|
||||
| **No role assignment on invite** | Only email/name collected, no role dropdown | 🟠 High |
|
||||
| **No role editing for members** | Cannot change Member to Admin or vice versa | 🟠 High |
|
||||
| **Change Password does nothing** | Static button with no functionality | 🔴 Critical |
|
||||
| **No email verification** | Can change email without verification | 🟠 High |
|
||||
| **No 2FA option** | Security section minimal | 🟡 Medium |
|
||||
| **No account deletion** | Cannot close account | 🟡 Medium |
|
||||
| **No session management** | Cannot view/revoke active sessions | 🟡 Medium |
|
||||
|
||||
#### Workflow Issues
|
||||
- Orphaned `TeamManagement.tsx` file exists (395 lines, not routed)
|
||||
- Inconsistent role system (shows Admin/Member but backend returns `is_admin` boolean)
|
||||
- No pending invitation status or resend capability
|
||||
- No team member limit enforcement display
|
||||
|
||||
#### Recommendations
|
||||
- [ ] 🔴 **CRITICAL:** Implement profile API and connect Profile tab
|
||||
- [ ] 🔴 **CRITICAL:** Implement password change functionality
|
||||
- [ ] Add role selection to team invitation
|
||||
- [ ] Add invitation management (resend, cancel pending)
|
||||
- [ ] Show team member count vs plan limit
|
||||
- [ ] Delete orphaned `TeamManagement.tsx`
|
||||
|
||||
---
|
||||
|
||||
### 4.2 Plans & Billing
|
||||
|
||||
**Route:** `/account/plans`
|
||||
**Files:** `pages/account/PlansAndBillingPage.tsx`, `pages/Billing/CreditPurchase.tsx`
|
||||
**Tabs:** Current Plan, Upgrade Plan, History
|
||||
|
||||
#### Current Functionality
|
||||
- **Current Plan:** Plan name, status, credits, balance, renewal date, features
|
||||
- **Upgrade:** Pricing table, plan comparison, change policy
|
||||
- **History:** Invoices with PDF download, payments, payment methods
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **No proration preview** | Doesn't show prorated amount before upgrade |
|
||||
| **Credit purchase not linked** | `/billing/credits` exists separately but not linked |
|
||||
| **Cancellation is immediate** | No reason collection, no retention offers |
|
||||
| **No payment failure retry** | If payment fails, no retry UI |
|
||||
| **No downgrade proration display** | Policy exists but no calculation shown |
|
||||
|
||||
#### Workflow Issues
|
||||
- Throttling errors surface directly to users ("Request was throttled. Retrying...")
|
||||
- Cancel flow has no confirmation dialog
|
||||
- Payment method supports bank_transfer, manual, stripe, paypal but UI only shows some
|
||||
- No billing cycle visualization (renewal date not prominent)
|
||||
|
||||
#### Recommendations
|
||||
- [ ] Add proration preview before plan changes
|
||||
- [ ] Add confirmation dialog for cancellation
|
||||
- [ ] Link credit purchase from this page
|
||||
- [ ] Add cancellation reason collection
|
||||
- [ ] Clean up throttling messages (use spinner)
|
||||
|
||||
---
|
||||
|
||||
### 4.3 Usage
|
||||
|
||||
**Route:** `/account/usage`
|
||||
**Files:** `pages/account/UsageAnalyticsPage.tsx`, `pages/account/UsageLimits.tsx`, `pages/account/CreditActivity.tsx`
|
||||
**Tabs:** Your Limits & Usage, Credit History, API Activity
|
||||
|
||||
#### Current Functionality
|
||||
- **Quick Stats:** Credits left, used this month, monthly limit, usage %
|
||||
- **Limits:** Hard limits (sites, users, keywords, clusters) + Monthly limits
|
||||
- **Credit History:** Transaction log with type, amount, description
|
||||
- **API Activity:** Call statistics, endpoint breakdown
|
||||
|
||||
#### Critical Gaps
|
||||
|
||||
| Issue | Impact | Severity |
|
||||
|-------|--------|----------|
|
||||
| **API Activity is HARDCODED** | Shows fake static values (1,234, 567, 342) not real data | 🔴 Critical |
|
||||
| **Success rate is fake** | Hardcoded 98.5% | 🔴 Critical |
|
||||
| **No usage alerts** | No notification when approaching limits | 🟠 High |
|
||||
| **No per-site usage** | Can't see which site consumed what | 🟠 High |
|
||||
| **No per-user usage** | Can't see team member individual usage | 🟠 High |
|
||||
| **No usage export** | Cannot download usage report | 🟡 Medium |
|
||||
| **No usage forecasting** | No "you'll run out in X days" | 🟡 Medium |
|
||||
|
||||
#### Workflow Issues
|
||||
- No actionable insights (doesn't suggest upgrade when hitting limits)
|
||||
- Credit history lacks context (no link to what was generated)
|
||||
- Disconnected from billing (separate page to upgrade)
|
||||
|
||||
#### Recommendations
|
||||
- [ ] 🔴 **CRITICAL:** Implement actual API activity tracking or hide tab
|
||||
- [ ] Add usage alerts configuration (email at 80%, 90%, 100%)
|
||||
- [ ] Add per-site/per-user usage breakdown
|
||||
- [ ] Add "Upgrade" CTA when limits approaching
|
||||
- [ ] Add usage export functionality
|
||||
|
||||
---
|
||||
|
||||
### 4.4 AI Models (Admin Only)
|
||||
|
||||
**Route:** `/settings/integration`
|
||||
**Files:** `pages/Settings/IntegrationPage.tsx`
|
||||
**Sections:** OpenAI Integration, Runware Integration, Image Generation, Site Integrations
|
||||
|
||||
#### Current Functionality
|
||||
- **OpenAI:** Enable/disable, model selection, connection testing, validation
|
||||
- **Runware:** Enable/disable, model selection, connection testing
|
||||
- **Image Generation:** Service selection, model selection, image settings
|
||||
- **Testing:** Generate test images with preview
|
||||
- **Site Integrations:** Connected site management
|
||||
|
||||
#### Functional Gaps
|
||||
|
||||
| Issue | Impact | Severity |
|
||||
|-------|--------|----------|
|
||||
| **Fictional GPT model names** | Shows GPT-5.1, GPT-5.2 which don't exist | 🔴 Critical |
|
||||
| **No fallback configuration** | If OpenAI fails, no automatic Runware fallback | 🟠 High |
|
||||
| **No cost tracking** | Can't see integration costs | 🟡 Medium |
|
||||
| **No integration health history** | Only current status, no uptime history | 🟡 Medium |
|
||||
| **No API key rotation** | Can't rotate keys without disabling | 🟡 Medium |
|
||||
| **No audit log** | No record of when settings changed | 🟠 High |
|
||||
|
||||
#### Workflow Issues
|
||||
- Admin-only but affects all users (no scope clarification)
|
||||
- Page mixes LLM models, image generation, AND site integrations
|
||||
- Complex modal nesting (settings, details, form all separate)
|
||||
- No preview of cost impact when changing models
|
||||
|
||||
#### Recommendations
|
||||
- [ ] 🔴 **CRITICAL:** Fix GPT model names to actual models (gpt-4-turbo, gpt-4, gpt-3.5-turbo)
|
||||
- [ ] Add integration change audit logging
|
||||
- [ ] Add cost estimation when changing models
|
||||
- [ ] Consider separating site integrations to own page
|
||||
- [ ] Add fallback configuration
|
||||
|
||||
---
|
||||
|
||||
### ACCOUNT Cross-Module Issues
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **Multiple credit balance sources** | Plans, Usage, billingStore all fetch independently |
|
||||
| **Fragmented billing pages** | PlansAndBillingPage, CreditPurchase, legacy routes |
|
||||
| **Legacy routes still exist** | `/billing/overview`, `/team`, `/profile` all redirect |
|
||||
| **No audit log across modules** | No record of who changed what when |
|
||||
| **No notification preferences** | Cannot configure billing/usage email alerts |
|
||||
|
||||
---
|
||||
|
||||
## 5. HELP Module
|
||||
|
||||
### 5.1 Help & Docs
|
||||
|
||||
**Route:** `/help`
|
||||
**Files:** `pages/Help/HelpCenter.tsx`, `pages/Help/Documentation.tsx` (placeholder), `pages/Help/SystemTesting.tsx` (placeholder), `pages/Help/FunctionTesting.tsx` (placeholder)
|
||||
**Routes:** `/help`, `/help/docs`, `/help/system-testing`, `/help/function-testing`
|
||||
|
||||
#### Current Functionality
|
||||
- Table of Contents with jump-to-section navigation
|
||||
- Getting Started: Quick Start Guide, Workflow Overview
|
||||
- Planner Module: Keywords, Clusters, Ideas documentation
|
||||
- Writer Module: Tasks, Content, Images documentation
|
||||
- Automation Setup overview
|
||||
- FAQ section (~20 questions)
|
||||
- Support CTA buttons (non-functional)
|
||||
|
||||
#### Critical Gaps
|
||||
|
||||
| Issue | Impact | Severity |
|
||||
|-------|--------|----------|
|
||||
| **Support dropdown link broken** | Goes to `/profile` which has NO route - 404 | 🔴 Critical |
|
||||
| **Contact Support button does nothing** | `<button>` with no onClick handler | 🔴 Critical |
|
||||
| **Feature Request button does nothing** | Same - no functionality | 🔴 Critical |
|
||||
| **3 of 4 help pages empty** | `/help/docs`, `/help/system-testing`, `/help/function-testing` are placeholders | 🟠 High |
|
||||
| **No actual support channel** | No email, chat, or ticket system | 🔴 Critical |
|
||||
|
||||
#### Missing Documentation
|
||||
|
||||
| Module | Status | Coverage |
|
||||
|--------|--------|----------|
|
||||
| Thinker | Active | 1 FAQ only - no section |
|
||||
| Linker | Optional | Not mentioned |
|
||||
| Optimizer | Optional | Not mentioned |
|
||||
| Publisher | Active | Not documented |
|
||||
| Sites/Site Builder | Active | Not documented |
|
||||
| Billing/Credits | Active | 1 FAQ only |
|
||||
| Account Settings | Active | Not documented |
|
||||
|
||||
#### Workflow Issues
|
||||
- **No search functionality** - Must scroll or use TOC
|
||||
- **No contextual help** - No in-app tooltips or "?" icons
|
||||
- **No help sub-navigation** - Routes exist but no tabs visible
|
||||
- **Stale content risk** - Hardcoded in TSX, requires deployment to update
|
||||
|
||||
#### Recommendations
|
||||
- [ ] 🔴 **CRITICAL:** Fix Support dropdown link (`/profile` → `/help` or support page)
|
||||
- [ ] 🔴 **CRITICAL:** Implement Contact Support (mailto: or external support URL)
|
||||
- [ ] 🔴 **CRITICAL:** Add WordPress setup guide
|
||||
- [ ] Document missing modules (Sites, Publisher, Thinker)
|
||||
- [ ] Create Troubleshooting guide
|
||||
- [ ] Add search functionality
|
||||
- [ ] Add credit cost documentation
|
||||
- [ ] Remove or implement placeholder pages
|
||||
|
||||
---
|
||||
|
||||
## 6. Sidebar & Navigation
|
||||
|
||||
**File:** `layout/AppSidebar.tsx`
|
||||
|
||||
### Current Structure
|
||||
|
||||
```
|
||||
Dashboard (standalone)
|
||||
├─ SETUP
|
||||
│ ├─ Add Keywords → /setup/add-keywords
|
||||
│ ├─ Content Settings → /account/content-settings
|
||||
│ ├─ Sites (if site_builder enabled) → /sites
|
||||
│ └─ Thinker (admin only, if thinker enabled) → /thinker/prompts
|
||||
├─ WORKFLOW
|
||||
│ ├─ Planner (if planner enabled) → /planner/keywords
|
||||
│ ├─ Writer (if writer enabled) → /writer/tasks
|
||||
│ ├─ Automation (if automation enabled) → /automation
|
||||
│ ├─ Linker (if linker enabled) → /linker/content
|
||||
│ └─ Optimizer (if optimizer enabled) → /optimizer/content
|
||||
├─ ACCOUNT
|
||||
│ ├─ Account Settings → /account/settings
|
||||
│ ├─ Plans & Billing → /account/plans
|
||||
│ ├─ Usage → /account/usage
|
||||
│ └─ AI Models (admin only) → /settings/integration
|
||||
└─ HELP
|
||||
└─ Help & Docs → /help
|
||||
```
|
||||
|
||||
### Navigation Gaps
|
||||
|
||||
| Issue | Impact |
|
||||
|-------|--------|
|
||||
| **KeywordOpportunities not in navigation** | `/planner/keyword-opportunities` exists but not accessible |
|
||||
| **Linker Dashboard not exposed** | `/linker/dashboard` exists but only `/linker/content` in sidebar |
|
||||
| **Optimizer Dashboard not exposed** | `/optimizer/dashboard` exists but only `/optimizer/content` in sidebar |
|
||||
| **Help sub-pages hidden** | `/help/docs`, `/help/system-testing`, `/help/function-testing` not navigable |
|
||||
| **Credit purchase not in sidebar** | `/billing/credits` exists but not accessible from sidebar |
|
||||
|
||||
### Menu Order Issues
|
||||
|
||||
| Current Order | Recommended Order | Reason |
|
||||
|---------------|-------------------|--------|
|
||||
| Add Keywords first in SETUP | Sites first | User should create site before adding keywords |
|
||||
| Content Settings before Sites | Content Settings last | Configure after site is set up |
|
||||
| Planner before Writer | Planner before Writer ✓ | Correct - follows workflow |
|
||||
|
||||
### Missing Navigation Features
|
||||
|
||||
| Feature | Impact |
|
||||
|---------|--------|
|
||||
| **No breadcrumb navigation** | User can't see full path (Cluster → Idea → Task → Content) |
|
||||
| **No "Next Step" guidance** | After completing action, user doesn't know where to go |
|
||||
| **No active section highlighting** | Sidebar doesn't show which section is active |
|
||||
| **No keyboard navigation** | Can't navigate sidebar with keyboard |
|
||||
| **No recent pages** | Can't quickly return to recently visited pages |
|
||||
|
||||
### Recommendations
|
||||
- [ ] Add KeywordOpportunities to Planner sub-navigation
|
||||
- [ ] Consider reordering SETUP: Sites → Add Keywords → Content Settings → Thinker
|
||||
- [ ] Add breadcrumb navigation component
|
||||
- [ ] Add "What's Next?" suggestions after key actions
|
||||
- [ ] Consider exposing Dashboard pages for Linker/Optimizer
|
||||
|
||||
---
|
||||
|
||||
## 7. Summary & Prioritization
|
||||
|
||||
### 🔴 CRITICAL - Must Fix Before Launch
|
||||
|
||||
| # | Issue | Module | Type |
|
||||
|---|-------|--------|------|
|
||||
| 1 | **Content Generation/Publishing settings NOT SAVED** | Content Settings | Data Loss |
|
||||
| 2 | **Profile tab NOT connected to API** | Account Settings | Data Loss |
|
||||
| 3 | **Password change does nothing** | Account Settings | Security |
|
||||
| 4 | **API Activity data is HARDCODED fake** | Usage | Misleading Data |
|
||||
| 5 | **Support buttons do nothing** | Help | No Support Channel |
|
||||
| 6 | **Support dropdown goes to 404** | Help | Broken Link |
|
||||
| 7 | **Fictional GPT model names (GPT-5.1, 5.2)** | AI Models | Data Integrity |
|
||||
| 8 | **No bulk content generation** | Writer | Core Workflow Blocked |
|
||||
| 9 | **No content editing capability** | Writer | Core Workflow Blocked |
|
||||
| 10 | **Dashboard has hardcoded usage/activity data** | Dashboard | Misleading Data |
|
||||
|
||||
### 🟠 HIGH - Significant Impact on User Experience
|
||||
|
||||
| # | Issue | Module |
|
||||
|---|-------|--------|
|
||||
| 11 | No role assignment/editing for team members | Account Settings |
|
||||
| 12 | No proration preview for plan changes | Plans & Billing |
|
||||
| 13 | No cancellation confirmation dialog | Plans & Billing |
|
||||
| 14 | KeywordOpportunities hidden from navigation | Planner |
|
||||
| 15 | No cluster progress indicator (which have ideas) | Planner |
|
||||
| 16 | No content regeneration capability | Writer |
|
||||
| 17 | 3 of 4 help pages are empty placeholders | Help |
|
||||
| 18 | No dashboard API endpoint (6+ sequential calls) | Dashboard |
|
||||
| 19 | Published content count incorrect | Dashboard |
|
||||
| 20 | No "Needs Attention" section | Dashboard |
|
||||
| 21 | No usage alerts when approaching limits | Usage |
|
||||
| 22 | Sites Dashboard shows mock/zero data | Sites |
|
||||
| 23 | Thinker has 50% "Coming Soon" pages | Thinker |
|
||||
| 24 | No integration audit logging | AI Models |
|
||||
|
||||
### 🟡 MEDIUM - Professional Polish Needed
|
||||
|
||||
| # | Issue | Module |
|
||||
|---|-------|--------|
|
||||
| 25 | No manual keyword entry | Add Keywords |
|
||||
| 26 | No "Next Step" CTA after actions | Add Keywords, Planner |
|
||||
| 27 | No pending invitation management | Account Settings |
|
||||
| 28 | No 2FA option | Account Settings |
|
||||
| 29 | No per-site/per-user usage breakdown | Usage |
|
||||
| 30 | No search in Help | Help |
|
||||
| 31 | Missing module documentation (Sites, Thinker, etc.) | Help |
|
||||
| 32 | Automation has no stage-by-stage control | Automation |
|
||||
| 33 | Linker has no content filtering | Linker |
|
||||
| 34 | Optimizer has no score-based filtering | Optimizer |
|
||||
| 35 | No cross-module notifications | All |
|
||||
| 36 | No breadcrumb navigation | All |
|
||||
| 37 | Quick Actions don't adapt to user state | Dashboard |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Phases
|
||||
|
||||
#### Phase 1: Critical Fixes (Must Complete)
|
||||
Focus: Data integrity, security, core functionality
|
||||
- Fix Content Settings API (Content Gen + Publishing tabs)
|
||||
- Fix Profile API connection
|
||||
- Implement password change
|
||||
- Remove/fix hardcoded API Activity data
|
||||
- Implement support channel (mailto or external URL)
|
||||
- Fix Support dropdown link
|
||||
- Fix GPT model names
|
||||
- Add bulk content generation
|
||||
- Add inline content editing
|
||||
|
||||
#### Phase 2: Core Workflow Improvements
|
||||
Focus: User workflow efficiency
|
||||
- Add dashboard aggregated API endpoint
|
||||
- Add "Needs Attention" widget
|
||||
- Add KeywordOpportunities to navigation
|
||||
- Add cluster progress indicators
|
||||
- Add content regeneration
|
||||
- Add team role management
|
||||
- Add plan change proration preview
|
||||
- Add cancellation confirmation
|
||||
|
||||
#### Phase 3: Professional Polish
|
||||
Focus: Edge cases and advanced features
|
||||
- Complete Help documentation
|
||||
- Add usage alerts
|
||||
- Add per-site usage breakdown
|
||||
- Add stage controls to Automation
|
||||
- Add filtering to Linker/Optimizer
|
||||
- Add breadcrumb navigation
|
||||
- Add cross-module notifications
|
||||
|
||||
---
|
||||
|
||||
### Quick Wins (< 1 hour each)
|
||||
|
||||
1. Fix Support dropdown link (`/profile` → `/help`)
|
||||
2. Add mailto: to Contact Support button
|
||||
3. Fix GPT model names (rename to actual models)
|
||||
4. Add cancellation confirmation dialog
|
||||
5. Remove/hide API Activity tab until implemented
|
||||
6. Add KeywordOpportunities to Planner tabs
|
||||
7. Fix profile save to show "Coming Soon" instead of fake save
|
||||
|
||||
---
|
||||
|
||||
### Files to Delete (Orphaned/Duplicate)
|
||||
|
||||
| File | Reason |
|
||||
|------|--------|
|
||||
| `pages/account/TeamManagement.tsx` | Orphaned, functionality in AccountSettingsPage |
|
||||
| `pages/Sites/Manage.tsx` | Duplicate of List.tsx |
|
||||
| `pages/Help/Documentation.tsx` | Empty placeholder |
|
||||
| `pages/Help/SystemTesting.tsx` | Empty placeholder |
|
||||
| `pages/Help/FunctionTesting.tsx` | Empty placeholder |
|
||||
| `pages/Thinker/Strategies.tsx` | Empty "Coming Soon" |
|
||||
| `pages/Thinker/ImageTesting.tsx` | Empty "Coming Soon" |
|
||||
|
||||
---
|
||||
|
||||
**Total Issues Identified:** 37
|
||||
**Critical:** 10
|
||||
**High:** 14
|
||||
**Medium:** 13
|
||||
|
||||
@@ -1,341 +0,0 @@
|
||||
# Production Readiness Plan
|
||||
|
||||
**Created:** December 25, 2025
|
||||
**Last Updated:** December 25, 2025
|
||||
**Goal:** Ship to production with simplified UI while keeping backend unchanged
|
||||
**Status:** ✅ CORE CHANGES COMPLETE
|
||||
|
||||
---
|
||||
|
||||
## Implementation Status
|
||||
|
||||
### ✅ Completed Changes
|
||||
|
||||
| File | Change | Status |
|
||||
|------|--------|--------|
|
||||
| `layout/AppLayout.tsx` | Header shows "Content: X/Y" | ✅ Done |
|
||||
| `pages/Dashboard/Home.tsx` | Credit widget → "Content This Month" | ✅ Done |
|
||||
| `pages/Help/Help.tsx` | FAQ updated | ✅ Done |
|
||||
| `pages/Automation/AutomationPage.tsx` | Error messages updated | ✅ Done |
|
||||
| `components/auth/SignUpForm*.tsx` | 3 files - removed credit text | ✅ Done |
|
||||
| `pages/Settings/Plans.tsx` | Shows "Pages/Articles per month" | ✅ Done |
|
||||
| `pages/account/PlansAndBillingPage.tsx` | Tabs simplified, Purchase Credits hidden | ✅ Done |
|
||||
| `pages/Payment.tsx` | Updated pricing display | ✅ Done |
|
||||
| `pages/Optimizer/Dashboard.tsx` | Removed credits card | ✅ Done |
|
||||
| `pages/Settings/CreditsAndBilling.tsx` | Renamed to "Usage & Billing" | ✅ Done |
|
||||
| `pages/Billing/Credits.tsx` | Renamed to "Content Usage" | ✅ Done |
|
||||
| `components/billing/BillingBalancePanel.tsx` | "Usage Overview" | ✅ Done |
|
||||
| `components/dashboard/CreditBalanceWidget.tsx` | "Content Usage" | ✅ Done |
|
||||
| `components/dashboard/UsageChartWidget.tsx` | "Content Created" | ✅ Done |
|
||||
| `components/ui/pricing-table/index.tsx` | "Content pieces/month" | ✅ Done |
|
||||
| `marketing/pages/Pricing.tsx` | "Usage Dashboard" | ✅ Done |
|
||||
| `docs/40-WORKFLOWS/CREDIT-SYSTEM.md` | Updated docs | ✅ Done |
|
||||
|
||||
### Hidden from Regular Users
|
||||
|
||||
| Feature | Status |
|
||||
|---------|--------|
|
||||
| Purchase Credits page | Hidden (commented out) |
|
||||
| Credit Cost Breakdown | Hidden |
|
||||
| Credit Packages grid | Hidden |
|
||||
| Detailed credit analytics | Hidden |
|
||||
|
||||
---
|
||||
|
||||
## The Strategy: Abstraction Layer
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ WHAT CHANGES │
|
||||
├─────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ BACKEND (NO CHANGES) FRONTEND (CHANGES) │
|
||||
│ ────────────────────── ────────────────── │
|
||||
│ • Credit deduction ✓ • Hide credit numbers ✅ │
|
||||
│ • Usage tracking ✓ • Show "Content Pieces" ✅ │
|
||||
│ • Plan limits ✓ • Simplify terminology ✅ │
|
||||
│ • API responses ✓ • Remove purchase credits ✅ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Key Insight:** Backend tracks `content_credits`. User sees this as "Content Pieces".
|
||||
No conversion needed - just rename the display.
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Core Abstraction (billingStore)
|
||||
|
||||
### File: `frontend/src/store/billingStore.ts`
|
||||
|
||||
Add computed properties that translate credits → content pieces:
|
||||
|
||||
```typescript
|
||||
// Add to BillingState interface
|
||||
interface BillingState {
|
||||
// ... existing ...
|
||||
|
||||
// Computed for simple UI
|
||||
getContentPiecesRemaining: () => number;
|
||||
getContentPiecesUsed: () => number;
|
||||
getContentPiecesTotal: () => number;
|
||||
}
|
||||
|
||||
// In the store
|
||||
getContentPiecesRemaining: () => {
|
||||
const balance = get().balance;
|
||||
// content_credits = content pieces (1:1 mapping)
|
||||
return balance?.credits_remaining ?? 0;
|
||||
},
|
||||
|
||||
getContentPiecesUsed: () => {
|
||||
const balance = get().balance;
|
||||
return balance?.credits_used_this_month ?? 0;
|
||||
},
|
||||
|
||||
getContentPiecesTotal: () => {
|
||||
const balance = get().balance;
|
||||
return balance?.plan_credits_per_month ?? 0;
|
||||
},
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: Header Metrics Update
|
||||
|
||||
### File: `frontend/src/layout/AppLayout.tsx`
|
||||
|
||||
**Current (line ~138):**
|
||||
```typescript
|
||||
{
|
||||
label: 'Credits',
|
||||
value: balance.credits.toLocaleString(),
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
**Change to:**
|
||||
```typescript
|
||||
{
|
||||
label: 'Content',
|
||||
value: `${balance.credits_remaining}/${balance.plan_credits_per_month}`,
|
||||
tooltip: 'Content pieces remaining this month'
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: Pages to Update
|
||||
|
||||
### Priority 1: Remove/Hide These Pages
|
||||
|
||||
| Page | File | Action |
|
||||
|------|------|--------|
|
||||
| Purchase Credits | `pages/account/PurchaseCreditsPage.tsx` | Hide from nav, keep for admin |
|
||||
| Credits Tab | `pages/Billing/Credits.tsx` | Remove tab from billing |
|
||||
| Credits & Billing | `pages/Settings/CreditsAndBilling.tsx` | Rename to "Usage" |
|
||||
|
||||
### Priority 2: Update Text/Labels
|
||||
|
||||
| Page | File | Changes |
|
||||
|------|------|---------|
|
||||
| Dashboard | `pages/Dashboard/Home.tsx` | "Credits" → "Content Pieces" |
|
||||
| Plans & Billing | `pages/account/PlansAndBillingPage.tsx` | Remove Credits tab, simplify |
|
||||
| Usage Analytics | `pages/account/UsageAnalyticsPage.tsx` | "Credits" → "Content" |
|
||||
| Automation | `pages/Automation/AutomationPage.tsx` | "credits" → "content pieces" |
|
||||
| Help | `pages/Help/Help.tsx` | Update FAQ text |
|
||||
|
||||
### Priority 3: Marketing Pages
|
||||
|
||||
| Page | File | Changes |
|
||||
|------|------|---------|
|
||||
| Pricing | `marketing/pages/Pricing.tsx` | Already updated per session |
|
||||
| Waitlist | `marketing/pages/Waitlist.tsx` | Update copy |
|
||||
|
||||
---
|
||||
|
||||
## Phase 4: Components to Update
|
||||
|
||||
### High Priority
|
||||
|
||||
| Component | File | Changes |
|
||||
|-----------|------|---------|
|
||||
| CreditBalanceWidget | `components/dashboard/CreditBalanceWidget.tsx` | Rename to ContentBalanceWidget |
|
||||
| BillingBalancePanel | `components/billing/BillingBalancePanel.tsx` | Remove "Purchase Credits" link |
|
||||
| BillingUsagePanel | `components/billing/BillingUsagePanel.tsx` | Simplify display |
|
||||
| CurrentProcessingCard | `components/Automation/CurrentProcessingCard.tsx` | "Credits Used" → "Content Generated" |
|
||||
| RunHistory | `components/Automation/RunHistory.tsx` | Same |
|
||||
|
||||
### Medium Priority (Can ship with these unchanged)
|
||||
|
||||
| Component | File | Notes |
|
||||
|-----------|------|-------|
|
||||
| CreditCostBreakdownPanel | `components/billing/CreditCostBreakdownPanel.tsx` | Admin only, keep |
|
||||
| CreditCostsPanel | `components/billing/CreditCostsPanel.tsx` | Admin only, keep |
|
||||
| UsageChartWidget | `components/dashboard/UsageChartWidget.tsx` | Keep for analytics |
|
||||
|
||||
---
|
||||
|
||||
## Phase 5: Routes to Update
|
||||
|
||||
### File: `frontend/src/App.tsx`
|
||||
|
||||
**Remove from user routes:**
|
||||
```typescript
|
||||
// Remove or hide:
|
||||
<Route path="/account/purchase-credits" element={<PurchaseCreditsPage />} />
|
||||
<Route path="/billing/credits" element={<Credits />} />
|
||||
```
|
||||
|
||||
**Keep for admin access only** (add admin check)
|
||||
|
||||
---
|
||||
|
||||
## Phase 6: Terminology Mapping
|
||||
|
||||
Use this mapping consistently:
|
||||
|
||||
| OLD (Backend/Internal) | NEW (User-Facing) |
|
||||
|------------------------|-------------------|
|
||||
| credits | content pieces |
|
||||
| credit balance | content remaining |
|
||||
| credits used | content generated |
|
||||
| plan_credits_per_month | monthly content limit |
|
||||
| credits_remaining | content pieces left |
|
||||
| insufficient credits | content limit reached |
|
||||
| purchase credits | upgrade plan |
|
||||
|
||||
---
|
||||
|
||||
## Phase 7: Error Messages
|
||||
|
||||
### File: Create `frontend/src/utils/userFriendlyMessages.ts`
|
||||
|
||||
```typescript
|
||||
export const USER_MESSAGES = {
|
||||
INSUFFICIENT_CREDITS: "You've reached your content limit for this month. Upgrade your plan for more.",
|
||||
CREDIT_DEDUCTED: "Content piece generated successfully",
|
||||
LOW_BALANCE: "You're running low on content pieces this month",
|
||||
|
||||
// Operation-specific
|
||||
CLUSTERING_SUCCESS: "Keywords organized into topics",
|
||||
IDEAS_SUCCESS: "Content ideas generated",
|
||||
CONTENT_SUCCESS: "Article draft created",
|
||||
IMAGES_SUCCESS: "Images generated",
|
||||
};
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Implementation Order
|
||||
|
||||
### Day 1: Core Changes (Ship Blocker)
|
||||
|
||||
1. [ ] Update `billingStore.ts` with computed properties
|
||||
2. [ ] Update `AppLayout.tsx` header metric
|
||||
3. [ ] Update `PlansAndBillingPage.tsx` - remove Credits tab
|
||||
4. [ ] Hide Purchase Credits route (don't delete)
|
||||
|
||||
### Day 2: Dashboard & Key Pages
|
||||
|
||||
5. [ ] Update `Dashboard/Home.tsx` labels
|
||||
6. [ ] Update `UsageAnalyticsPage.tsx` labels
|
||||
7. [ ] Update `AutomationPage.tsx` labels
|
||||
8. [ ] Update `Help.tsx` FAQ content
|
||||
|
||||
### Day 3: Components & Polish
|
||||
|
||||
9. [ ] Rename CreditBalanceWidget → ContentBalanceWidget
|
||||
10. [ ] Update BillingBalancePanel
|
||||
11. [ ] Update CurrentProcessingCard
|
||||
12. [ ] Update RunHistory
|
||||
|
||||
### Day 4: Marketing & Final
|
||||
|
||||
13. [ ] Verify Pricing page is correct
|
||||
14. [ ] Update Waitlist/Tour pages
|
||||
15. [ ] Update SignUp form text
|
||||
16. [ ] Final QA pass
|
||||
|
||||
---
|
||||
|
||||
## What NOT to Change
|
||||
|
||||
Keep these exactly as-is:
|
||||
|
||||
1. **Backend API endpoints** - All `/v1/billing/*` endpoints
|
||||
2. **Database models** - CreditBalance, CreditUsage, etc.
|
||||
3. **Credit deduction logic** - In business services
|
||||
4. **Admin pages** - Keep full credit visibility for admins
|
||||
5. **API responses** - Backend still returns `credits`, frontend translates
|
||||
|
||||
---
|
||||
|
||||
## Backend Soft Limits (Already Implemented)
|
||||
|
||||
Per the pricing session, backend should enforce:
|
||||
|
||||
| Limit | Starter | Growth | Scale |
|
||||
|-------|---------|--------|-------|
|
||||
| Content pieces/mo | 50 | 200 | 500 |
|
||||
| Keyword imports/mo | 500 | 2,000 | 5,000 |
|
||||
| Clustering ops/mo | 100 | 400 | 1,000 |
|
||||
| Idea generations/mo | 150 | 600 | 1,500 |
|
||||
|
||||
**If not implemented:** These are hidden from user but prevent abuse. Add backend validation in:
|
||||
- `backend/igny8_core/business/billing/services.py`
|
||||
|
||||
---
|
||||
|
||||
## Quick Wins (Can Do Now)
|
||||
|
||||
### 1. Header Metric (5 min)
|
||||
|
||||
In `AppLayout.tsx`, change:
|
||||
```typescript
|
||||
label: 'Credits',
|
||||
```
|
||||
to:
|
||||
```typescript
|
||||
label: 'Content',
|
||||
```
|
||||
|
||||
### 2. Help FAQ (5 min)
|
||||
|
||||
In `Help.tsx`, update the credits question to:
|
||||
```
|
||||
question: "How does content usage work?"
|
||||
answer: "Each plan includes a monthly content allowance. Creating articles, generating ideas, and producing images all count toward your monthly limit. View your usage in Settings > Usage."
|
||||
```
|
||||
|
||||
### 3. Hide Purchase Credits Link (5 min)
|
||||
|
||||
In `BillingBalancePanel.tsx`, remove or conditionally hide:
|
||||
```typescript
|
||||
<Link to="/account/purchase-credits">Purchase Credits</Link>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Testing Checklist
|
||||
|
||||
Before production:
|
||||
|
||||
- [ ] User can see "47/50 Content" in header (not "835 Credits")
|
||||
- [ ] Plans page shows content pieces, not credits
|
||||
- [ ] No "Purchase Credits" visible to regular users
|
||||
- [ ] Automation shows "Content Generated: 5" not "Credits Used: 5"
|
||||
- [ ] Error on limit shows "Content limit reached" not "Insufficient credits"
|
||||
- [ ] Dashboard shows simple progress bar with content count
|
||||
- [ ] Help/FAQ explains content pieces, not credits
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
**Total effort:** ~2-3 days of frontend work
|
||||
**Backend changes:** Zero
|
||||
**Risk:** Low (display-only changes)
|
||||
**Rollback:** Easy (revert frontend only)
|
||||
|
||||
The system still tracks everything internally with credits. Users just see a simpler "content pieces" model that maps 1:1 to content credits.
|
||||
242
to-do-s/part1/SECTION_2_FINAL_MODS.md
Normal file
242
to-do-s/part1/SECTION_2_FINAL_MODS.md
Normal file
@@ -0,0 +1,242 @@
|
||||
# Section 2: SETUP Modules - Audit & Action Plan
|
||||
|
||||
**Date:** December 27, 2025
|
||||
**Status:** Finalized for Implementation
|
||||
**Scope:** Add Keywords, Content Settings, Sites (Thinker excluded - admin only)
|
||||
|
||||
---
|
||||
|
||||
## 2.1 Add Keywords
|
||||
|
||||
**Route:** `/setup/add-keywords`
|
||||
**File:** `pages/Setup/AddKeywords.tsx`
|
||||
|
||||
### Current Functionality
|
||||
- Browse pre-populated seed keywords from global database (admin-imported CSV)
|
||||
- Filter by active site's industry/sector
|
||||
- Bulk select and add keywords to Planner workflow
|
||||
- Tracks which keywords are already added
|
||||
- Filters: Search, Country, Difficulty
|
||||
|
||||
### Important Clarification
|
||||
- **This page:** Browse/select from global seed keyword database only
|
||||
- **Manual keyword entry:** Available in Planner/Keywords page (user's own workflow), NOT here
|
||||
- **Keyword imports:** Admin-only via backend admin panel
|
||||
|
||||
---
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | Sector requirement unclear | High | Add tooltip/message explaining why buttons are disabled when no sector is selected |
|
||||
| 2 | No "already added" filter | Medium | Add filter toggle: "Show not-yet-added only" |
|
||||
| 3 | No "Next Step" CTA | High | Add button after keywords added: "Next: Plan Your Content →" linking to Planner |
|
||||
| 4 | No keyword count summary | Medium | Display: "X keywords in your workflow • Y available to add" |
|
||||
| 5 | Import/manual add buttons exist | High | Remove any UI elements for importing or manually adding keywords - this is global DB, read-only for users |
|
||||
| 6 | No Keyword Research indication | Low | Add small teaser text: "Looking for more keywords? Keyword Research coming soon" (user-friendly, non-technical wording) |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
**For Issue #1 (Sector requirement):**
|
||||
- When buttons are disabled, show tooltip: "Please select an industry and sector in your Site Settings to browse relevant keywords"
|
||||
- Consider linking directly to Site Settings
|
||||
|
||||
**For Issue #3 (Next Step CTA):**
|
||||
- Button should appear after user has added at least 1 keyword
|
||||
- Route to `/planner/keywords`
|
||||
|
||||
**For Issue #5 (Remove import/add):**
|
||||
- Audit the page for any "Import Keywords" or "Add Custom Keyword" buttons
|
||||
- Remove from UI completely
|
||||
- Keywords only come from admin-imported global database
|
||||
|
||||
---
|
||||
|
||||
## 2.2 Content Settings
|
||||
|
||||
**Route:** `/account/content-settings`
|
||||
**File:** `pages/account/ContentSettingsPage.tsx`
|
||||
**Tabs:** Content Generation, Publishing, Image Settings
|
||||
|
||||
### Current Functionality
|
||||
- **Content Generation Tab:** Append to prompt, default tone, default length
|
||||
- **Publishing Tab:** Auto-publish toggle, keep updated toggle
|
||||
- **Image Settings Tab:** Quality, style, sizes, format (DALL-E 2/3/Runware)
|
||||
|
||||
### Current State
|
||||
- ⚠️ **Content Generation:** Shows "saved" but does NOT persist (TODO in code)
|
||||
- ⚠️ **Publishing:** Shows "saved" but does NOT persist (no backend API)
|
||||
- ✅ **Image Settings:** Works correctly (has API integration)
|
||||
|
||||
---
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | Content Generation NOT PERSISTED | 🔴 Critical | Implement backend API endpoint to save Content Generation settings |
|
||||
| 2 | Publishing NOT PERSISTED | 🔴 Critical | Implement backend API endpoint - simple toggle for auto-publish (true/false) |
|
||||
| 3 | False "saved" confirmation | 🔴 Critical | Fix after #1 and #2 - currently misleads users |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
**For Issue #1 (Content Generation API):**
|
||||
- Fields to persist: append_to_prompt, default_tone, default_length
|
||||
- Should save at account level (global, not per-site)
|
||||
|
||||
**For Issue #2 (Publishing API):**
|
||||
- Simple boolean toggle: auto_publish (true/false)
|
||||
- When true: content automatically publishes to WordPress after generation
|
||||
- When false: content stays in Review status for manual publishing
|
||||
|
||||
**Not Needed for Launch:**
|
||||
- Per-site content settings
|
||||
- Thinker prompts connection explanation (handled via shortcodes in prompts)
|
||||
|
||||
---
|
||||
|
||||
## 2.3 Sites
|
||||
|
||||
**Route:** `/sites`
|
||||
**Files:** `pages/Sites/List.tsx`, `pages/Sites/SiteSettings.tsx`, `pages/Sites/SiteDashboard.tsx`
|
||||
**Tabs (Site Settings):** General, Integrations, Content Types
|
||||
|
||||
### Current Functionality
|
||||
- List all sites with filtering (search, type, hosting, status)
|
||||
- Create sites via WorkflowGuide (requires industry + sectors)
|
||||
- Activate/deactivate sites
|
||||
- Navigate to site dashboard, content, settings
|
||||
- Settings: Name, URL, SEO, WordPress integration, content type mapping
|
||||
|
||||
### What Sites Module Should Be (Launch Scope)
|
||||
- Connect/manage WordPress sites for content publishing
|
||||
- Configure WordPress integration (API credentials)
|
||||
- Set active site for content workflow
|
||||
- Industry/sector selection (for keyword filtering)
|
||||
|
||||
---
|
||||
|
||||
### Issues to Address
|
||||
|
||||
#### A. Fix/Improve (From Audit)
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | Dashboard stats are mock data | Medium | Implement real site statistics endpoint OR remove stats display |
|
||||
| 2 | No inline editing | Low | Add inline edit for site name from list view |
|
||||
| 3 | No site cloning | Low | Add "Duplicate Site" action to copy configuration |
|
||||
| 4 | No bulk operations | Low | Add bulk activate/deactivate/delete |
|
||||
| 5 | Complex site creation flow | High | Allow site creation without requiring industry/sector upfront |
|
||||
| 6 | Integration tab default after creation | Medium | Default to General tab, not Integrations (less confusing for non-technical users) |
|
||||
| 7 | No setup progress indicator | High | Add visual checklist showing what's configured vs pending (see below) |
|
||||
|
||||
#### B. Remove (Legacy Site Builder)
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 8 | Site Builder legacy pages | High | Remove all frontend pages/components related to site builder feature |
|
||||
| 9 | WordPress content fetching | High | Remove code that fetches existing content FROM WordPress (only IGNY8-generated content should exist) |
|
||||
| 10 | Duplicate Manage.tsx | High | Delete `pages/Sites/Manage.tsx` - redundant with List.tsx |
|
||||
| 11 | Backend site builder code | High | Remove backend APIs/models related to site builder and external content fetching |
|
||||
|
||||
---
|
||||
|
||||
### Setup Completion Checklist (New Feature)
|
||||
|
||||
Display this checklist on Site card or Site Dashboard to guide users:
|
||||
|
||||
```
|
||||
Site Setup Progress
|
||||
───────────────────
|
||||
☑ Site created
|
||||
☐ Industry/Sectors selected
|
||||
☐ WordPress integration configured (or skipped)
|
||||
☐ Keywords added
|
||||
☐ Content settings configured
|
||||
|
||||
[Complete Setup →]
|
||||
```
|
||||
|
||||
**Implementation Notes:**
|
||||
- Show on each site card in list view (compact version)
|
||||
- Show expanded on Site Dashboard
|
||||
- Each item links to relevant settings page
|
||||
- "Complete Setup" button goes to first incomplete item
|
||||
- When all complete, show "✓ Ready to create content"
|
||||
|
||||
---
|
||||
|
||||
## 2.4 SETUP Cross-Module Issues
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | No guided flow | High | After completing setup tasks, guide user to start content workflow (link to Planner) |
|
||||
| 2 | Scattered settings | Medium | Document where settings live; consider consolidation in future |
|
||||
| 3 | No onboarding checklist | High | Implement Setup Completion Checklist (see 2.3 above) |
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
### Total Issues by Section
|
||||
|
||||
| Section | Critical | High | Medium | Low | Total |
|
||||
|---------|----------|------|--------|-----|-------|
|
||||
| 2.1 Add Keywords | 0 | 3 | 2 | 1 | 6 |
|
||||
| 2.2 Content Settings | 3 | 0 | 0 | 0 | 3 |
|
||||
| 2.3 Sites | 0 | 6 | 2 | 3 | 11 |
|
||||
| 2.4 Cross-Module | 0 | 2 | 1 | 0 | 3 |
|
||||
| **TOTAL** | **3** | **11** | **5** | **4** | **23** |
|
||||
|
||||
### Critical Items (Must Fix)
|
||||
|
||||
1. **Content Settings - Content Generation tab not saving** → Implement backend API
|
||||
2. **Content Settings - Publishing tab not saving** → Implement backend API
|
||||
3. **Content Settings - False "saved" message** → Fix after APIs implemented
|
||||
|
||||
### High Priority Items
|
||||
|
||||
1. Add Keywords - Sector requirement tooltip
|
||||
2. Add Keywords - Next Step CTA to Planner
|
||||
3. Add Keywords - Remove import/manual add buttons
|
||||
4. Sites - Allow simpler site creation flow
|
||||
5. Sites - Add Setup Completion Checklist
|
||||
6. Sites - Remove Site Builder legacy code (frontend)
|
||||
7. Sites - Remove WordPress content fetching code
|
||||
8. Sites - Delete duplicate Manage.tsx
|
||||
9. Sites - Remove Site Builder backend code
|
||||
10. Cross-Module - Guided flow after setup
|
||||
11. Cross-Module - Onboarding checklist implementation
|
||||
|
||||
### Files to Delete
|
||||
|
||||
| File | Reason |
|
||||
|------|--------|
|
||||
| `pages/Sites/Manage.tsx` | Duplicate of List.tsx |
|
||||
| Site Builder related pages | Legacy feature removed |
|
||||
| Site Builder related components | Legacy feature removed |
|
||||
|
||||
### Files to Modify
|
||||
|
||||
| File | Changes |
|
||||
|------|---------|
|
||||
| `pages/Setup/AddKeywords.tsx` | Add tooltip, filter, CTA, count summary, remove import buttons, add teaser |
|
||||
| `pages/account/ContentSettingsPage.tsx` | Connect to new backend APIs |
|
||||
| `pages/Sites/List.tsx` | Add setup checklist, inline edit, bulk operations |
|
||||
| `pages/Sites/SiteSettings.tsx` | Default to General tab |
|
||||
| `pages/Sites/SiteDashboard.tsx` | Fix mock stats, add setup checklist |
|
||||
|
||||
### Backend Work Required
|
||||
|
||||
| Area | Work |
|
||||
|------|------|
|
||||
| Content Settings API | Create endpoints for Content Generation and Publishing settings |
|
||||
| Site Statistics API | Implement real stats OR remove from frontend |
|
||||
| Cleanup | Remove Site Builder and content fetching APIs/models |
|
||||
|
||||
---
|
||||
313
to-do-s/part1/SECTION_3_FINAL_MODS.md
Normal file
313
to-do-s/part1/SECTION_3_FINAL_MODS.md
Normal file
@@ -0,0 +1,313 @@
|
||||
# Section 3: WORKFLOW Modules - Audit & Action Plan
|
||||
|
||||
**Date:** December 27, 2025
|
||||
**Status:** Finalized for Implementation
|
||||
**Scope:** Planner, Writer, Automation (Linker & Optimizer excluded - not active modules)
|
||||
|
||||
---
|
||||
|
||||
## 3.1 Planner
|
||||
|
||||
**Route:** `/planner/keywords`
|
||||
**Files:** `pages/Planner/Keywords.tsx`, `pages/Planner/Clusters.tsx`, `pages/Planner/ClusterView.tsx`, `pages/Planner/Ideas.tsx`, `pages/Planner/KeywordOpportunities.tsx`
|
||||
**Tabs:** Keywords, Clusters, Ideas
|
||||
|
||||
### Current Functionality
|
||||
- **Keywords:** CRUD, bulk status updates, auto-cluster AI, filters
|
||||
- **Clusters:** CRUD, bulk operations, auto-generate ideas AI
|
||||
- **Ideas:** CRUD, bulk queue to writer, filters
|
||||
- **Flow:** Keywords → Auto-Cluster → Clusters → Auto-Generate Ideas → Ideas → Queue to Writer
|
||||
|
||||
---
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | KeywordOpportunities page exists but orphaned | High | **DELETE** - Remove `pages/Planner/KeywordOpportunities.tsx` and all references to it. Add Keywords page is the source of truth for seed keywords |
|
||||
| 2 | No "Add to Existing Cluster" | Medium | Add option to assign keywords to existing clusters (not just create new) |
|
||||
| 3 | No cluster progress indicator | High | Show which clusters already have ideas generated (badge/indicator) |
|
||||
| 4 | Ideas missing queued count | Medium | Add indicator showing how many ideas are pending vs processed |
|
||||
| 5 | Cluster → Ideas transition unclear | Medium | Make it clear which clusters need ideas generated |
|
||||
| 6 | No return path from Ideas to source cluster | Low | Make cluster name clickable on Ideas page to navigate back |
|
||||
|
||||
---
|
||||
|
||||
### Issues NOT Being Addressed (Per Discussion)
|
||||
|
||||
| Issue | Reason |
|
||||
|-------|--------|
|
||||
| No cluster merge/split | Risk of breaking functional workflow, complex implementation |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
**For Issue #1 (Remove KeywordOpportunities):**
|
||||
- Delete file: `pages/Planner/KeywordOpportunities.tsx`
|
||||
- Remove route from App.tsx or router config
|
||||
- Remove any navigation links to `/planner/keyword-opportunities`
|
||||
- Remove from sidebar if present
|
||||
- The Add Keywords page (`/setup/add-keywords`) is the active workflow item for seed keywords
|
||||
|
||||
**For Issue #3 (Cluster progress indicator):**
|
||||
- On Clusters table, show badge: "X ideas" or "No ideas yet"
|
||||
- Visual distinction between clusters with/without ideas
|
||||
- Consider color coding or icon
|
||||
|
||||
**For Issue #5 (Cluster → Ideas transition):**
|
||||
- Add "Generate Ideas" button prominently on clusters without ideas
|
||||
- Filter option: "Show clusters without ideas"
|
||||
|
||||
---
|
||||
|
||||
## 3.2 Writer
|
||||
|
||||
**Route:** `/writer/tasks`
|
||||
**Files:** `pages/Writer/Tasks.tsx`, `pages/Writer/Drafts.tsx`, `pages/Writer/ContentView.tsx`, `pages/Writer/Images.tsx`, `pages/Writer/Review.tsx`, `pages/Writer/Published.tsx`
|
||||
**Tabs:** Queue, Drafts, Images, Review, Published
|
||||
|
||||
### Current Functionality
|
||||
- **Tasks (Queue):** CRUD, generate content (row action only), generate images bulk
|
||||
- **Drafts:** List drafts, view details, status updates
|
||||
- **Images:** Grouped by content, image generation
|
||||
- **Review:** Status=review filter, publish to WordPress
|
||||
- **Published:** Status=published, WordPress sync status
|
||||
|
||||
---
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | Status progression confusion | High | Streamline Draft → Review → Published flow - should not require navigating different pages for status changes |
|
||||
| 2 | Images detached from content workflow | High | Integrate images into content workflow - show/manage images within content view |
|
||||
| 3 | ContentView shows tags and categories twice | High | Fix template to display tags and categories only once |
|
||||
|
||||
---
|
||||
|
||||
### Issues NOT Being Addressed (Per Discussion)
|
||||
|
||||
| Issue | Reason |
|
||||
|-------|--------|
|
||||
| No bulk content generation | Not an issue per current workflow |
|
||||
| No content editing | Not an issue per current workflow |
|
||||
| No manual task creation | Not an issue per current workflow |
|
||||
| No content regeneration | Not an issue per current workflow |
|
||||
| Review → Published manual only | Not an issue per current workflow |
|
||||
| ContentView missing actions bar | Not an issue per current workflow |
|
||||
| No send_to_linker action | Linker not active module |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
**For Issue #1 (Status progression):**
|
||||
- Allow status changes from any tab/view without forcing navigation
|
||||
- Consider unified content list with status filter instead of separate pages
|
||||
- Or add status change dropdown/buttons within each view
|
||||
|
||||
**For Issue #2 (Images integration):**
|
||||
- Show image thumbnails within ContentView
|
||||
- Allow image generation from ContentView
|
||||
- Show image count on content list items
|
||||
|
||||
**For Issue #3 (Duplicate tags/categories):**
|
||||
- Audit ContentView.tsx template
|
||||
- Find and remove duplicate rendering of tags and categories
|
||||
- Should display once in appropriate section
|
||||
|
||||
---
|
||||
|
||||
## 3.3 Automation
|
||||
|
||||
**Route:** `/automation`
|
||||
**Files:** `pages/Automation/AutomationPage.tsx` (or Dashboard.tsx)
|
||||
**Tabs:** None (single page)
|
||||
|
||||
### Current Functionality
|
||||
- Pipeline overview (7 stages: Keywords → Clusters → Ideas → Tasks → Content → Image Prompts → Images)
|
||||
- Schedule configuration (frequency, time, enable/disable)
|
||||
- Run controls (Run Now, Pause, Resume)
|
||||
- Real-time progress polling
|
||||
- Metrics display and activity log
|
||||
|
||||
---
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | No stage-by-stage control | Medium | Add toggles to enable/disable individual pipeline stages |
|
||||
| 2 | No review gate config | Low | Add UI to configure review gate rules (Stage 7) |
|
||||
| 3 | No error recovery | High | Add retry capability for failed items (per-item or per-stage) |
|
||||
| 4 | No batch size config | Medium | Add setting to throttle items processed per run |
|
||||
| 5 | No dry run/preview | Medium | Add preview mode to show what WOULD be processed before running |
|
||||
| 6 | Activity log not filterable | Medium | Add filters: by stage, status, date |
|
||||
| 7 | Credit estimation unclear | High | Clarify labeling - consistent terminology (credits vs content pieces) |
|
||||
| 8 | Run history depth unknown | Low | Add pagination to run history |
|
||||
| 9 | No indication of manual vs automated | Low | Show source indicator for processed items |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
**Critical Constraint:** All changes must NOT affect the actual AI functions that run on module pages. Automation uses the same functions - only UI/control changes, not function logic.
|
||||
|
||||
**For Issue #1 (Stage toggles):**
|
||||
- Add on/off toggle for each of the 7 stages
|
||||
- When stage is off, automation skips it
|
||||
- Visual indicator showing which stages are active
|
||||
|
||||
**For Issue #3 (Error recovery):**
|
||||
- Show failed items in activity log with "Retry" button
|
||||
- Option to retry all failed items from a run
|
||||
- Clear error messages explaining what failed
|
||||
|
||||
**For Issue #5 (Dry run/preview):**
|
||||
- "Preview Run" button shows list of items that would be processed
|
||||
- Shows count per stage
|
||||
- User can then confirm or cancel
|
||||
|
||||
**For Issue #7 (Credit estimation):**
|
||||
- Use consistent terminology matching the pricing simplification plan
|
||||
- Show estimated cost before running
|
||||
|
||||
---
|
||||
|
||||
## 3.4 Linker
|
||||
|
||||
**Status:** ❌ NOT ACTIVE MODULE - Skipped
|
||||
|
||||
Not part of current phase. No issues to address.
|
||||
|
||||
---
|
||||
|
||||
## 3.5 Optimizer
|
||||
|
||||
**Status:** ❌ NOT ACTIVE MODULE - Skipped
|
||||
|
||||
Not part of current phase. No issues to address.
|
||||
|
||||
---
|
||||
|
||||
## 3.6 WORKFLOW Cross-Module Issues
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | No Planner → Writer visibility | Medium | After queuing ideas to writer, provide clear feedback and link to Writer |
|
||||
| 2 | No cross-module notifications | High | Log all AI runs in notification dropdown (bell icon) with correct end results |
|
||||
| 3 | Progress modals have wrong texts | High | Fix placeholder text, wrong wording, inaccurate counts (showing "X" or placeholders) |
|
||||
| 4 | Progress modal counts inaccurate | High | Ensure counts reflect actual items being processed |
|
||||
| 5 | No breadcrumb navigation | Medium | Add breadcrumbs showing workflow path (Cluster → Idea → Task → Content) |
|
||||
| 6 | No "Next Step" suggestions | Medium | After each action, suggest what to do next |
|
||||
|
||||
---
|
||||
|
||||
### Issues NOT Being Addressed (Per Discussion)
|
||||
|
||||
| Issue | Reason |
|
||||
|-------|--------|
|
||||
| No Writer → Linker integration | Linker not active module |
|
||||
| No Writer → Optimizer integration | Optimizer not active module |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
**For Issue #2 (Notifications):**
|
||||
- Bell icon dropdown should show log of all AI function runs
|
||||
- Each entry shows: function type, status (success/failed/in-progress), timestamp
|
||||
- Include runs from: Clustering, Idea Generation, Content Generation, Image Generation
|
||||
- Show result: "Generated 5 ideas from Cluster X" or "Failed: insufficient credits"
|
||||
- Link to relevant content/page
|
||||
|
||||
**For Issues #3 & #4 (Progress modals):**
|
||||
- Audit all progress modals across modules
|
||||
- Replace placeholder text ("X", "processing...", wrong labels)
|
||||
- Ensure counts match actual items:
|
||||
- "Processing 5 of 12 keywords" (not "Processing X of Y")
|
||||
- "Generated 3 ideas" (actual count, not placeholder)
|
||||
- Match text to actual AI function being performed
|
||||
- Consistent terminology across all modals
|
||||
|
||||
**Progress Modals to Audit:**
|
||||
- Keyword clustering modal
|
||||
- Idea generation modal
|
||||
- Content generation modal
|
||||
- Image prompt extraction modal
|
||||
- Image generation modal
|
||||
- Any bulk operation modals
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
### Total Issues by Section
|
||||
|
||||
| Section | High | Medium | Low | Total |
|
||||
|---------|------|--------|-----|-------|
|
||||
| 3.1 Planner | 2 | 3 | 1 | 6 |
|
||||
| 3.2 Writer | 3 | 0 | 0 | 3 |
|
||||
| 3.3 Automation | 2 | 5 | 2 | 9 |
|
||||
| 3.4 Linker | - | - | - | Skipped |
|
||||
| 3.5 Optimizer | - | - | - | Skipped |
|
||||
| 3.6 Cross-Module | 2 | 4 | 0 | 6 |
|
||||
| **TOTAL** | **9** | **12** | **3** | **24** |
|
||||
|
||||
---
|
||||
|
||||
### High Priority Items
|
||||
|
||||
1. **Planner** - Delete KeywordOpportunities page and all references
|
||||
2. **Planner** - Add cluster progress indicator (which have ideas)
|
||||
3. **Writer** - Fix status progression confusion
|
||||
4. **Writer** - Integrate images into content workflow
|
||||
5. **Writer** - Fix duplicate tags/categories in ContentView
|
||||
6. **Automation** - Add error recovery/retry for failed items
|
||||
7. **Automation** - Clarify credit/content terminology
|
||||
8. **Cross-Module** - Fix progress modal texts and counts
|
||||
9. **Cross-Module** - Implement notification logging for AI runs
|
||||
|
||||
---
|
||||
|
||||
### Files to Delete
|
||||
|
||||
| File | Reason |
|
||||
|------|--------|
|
||||
| `pages/Planner/KeywordOpportunities.tsx` | Orphaned page, Add Keywords is source of truth |
|
||||
|
||||
---
|
||||
|
||||
### Files to Modify
|
||||
|
||||
| File | Changes |
|
||||
|------|---------|
|
||||
| `pages/Planner/Keywords.tsx` | Remove any KeywordOpportunities references |
|
||||
| `pages/Planner/Clusters.tsx` | Add ideas count badge, "Generate Ideas" prominence |
|
||||
| `pages/Planner/Ideas.tsx` | Add queued count indicator, clickable cluster name |
|
||||
| `pages/Writer/Tasks.tsx` | Streamline status changes |
|
||||
| `pages/Writer/Drafts.tsx` | Streamline status changes |
|
||||
| `pages/Writer/ContentView.tsx` | Fix duplicate tags/categories, integrate images |
|
||||
| `pages/Writer/Images.tsx` | Better integration with content workflow |
|
||||
| `pages/Writer/Review.tsx` | Streamline status changes |
|
||||
| `pages/Automation/AutomationPage.tsx` | Stage toggles, batch size, preview, filters, error retry |
|
||||
| All progress modal components | Fix placeholder text, counts, wording |
|
||||
| Notification dropdown component | Add AI run logging |
|
||||
| Router/App.tsx | Remove KeywordOpportunities route |
|
||||
| Sidebar component | Remove KeywordOpportunities link if present |
|
||||
|
||||
---
|
||||
|
||||
### Backend Work Required
|
||||
|
||||
| Area | Work |
|
||||
|------|------|
|
||||
| Automation stage control | API to save stage enable/disable preferences |
|
||||
| Automation batch size | API to save batch size setting |
|
||||
| Error recovery | API to retry failed items |
|
||||
| Notification logging | Ensure AI runs are logged for notification display |
|
||||
|
||||
---
|
||||
363
to-do-s/part1/SECTION_4_FINAL_MODS.md
Normal file
363
to-do-s/part1/SECTION_4_FINAL_MODS.md
Normal file
@@ -0,0 +1,363 @@
|
||||
# Section 4: ACCOUNT Modules - Audit & Action Plan
|
||||
|
||||
**Date:** December 27, 2025
|
||||
**Status:** Finalized for Implementation
|
||||
**Scope:** Account Settings, Plans & Billing, Usage (AI Models excluded - admin only)
|
||||
|
||||
---
|
||||
|
||||
## 4.1 Account Settings
|
||||
|
||||
**Route:** `/account/settings`
|
||||
**File:** `pages/account/AccountSettingsPage.tsx`
|
||||
**Tabs:** Account, Profile, Team
|
||||
|
||||
### Current Functionality
|
||||
- **Account Tab:** Organization name, billing email, full billing address, tax ID/VAT
|
||||
- **Profile Tab:** First/last name, email, phone, timezone, language, notifications, security
|
||||
- **Team Tab:** List team members, invite via email, remove members, role display
|
||||
|
||||
---
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | Profile NOT connected to API | 🔴 Critical | Study existing backend - if profile API exists and is consistent with system, connect it. If not present, create consistent with existing API structure |
|
||||
| 2 | Change Password does nothing | 🔴 Critical | Implement password change functionality |
|
||||
| 3 | No role assignment on invite | High | Add role dropdown (Admin/Member) to invitation form |
|
||||
| 4 | No role editing for members | High | Add ability to change member role after invitation |
|
||||
| 5 | No email verification | High | Implement email verification flow when email is changed |
|
||||
| 6 | Orphaned TeamManagement.tsx | High | Delete `pages/account/TeamManagement.tsx` - functionality exists in AccountSettingsPage |
|
||||
| 7 | No 2FA option | Medium | Add two-factor authentication option in security section |
|
||||
| 8 | No account deletion | Medium | Add account closure/deletion capability |
|
||||
| 9 | No session management | Medium | Add view/revoke active sessions capability |
|
||||
| 10 | No pending invitation management | Medium | Add ability to resend or cancel pending invitations |
|
||||
| 11 | No team member limit display | Medium | Show "X of Y team members" based on plan limit |
|
||||
| 12 | Inconsistent role system | Medium | Backend returns `is_admin` boolean but UI shows Admin/Member - align these |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
**For Issue #1 (Profile API):**
|
||||
- First: Audit backend to check if profile endpoint exists
|
||||
- If exists: Study implementation, verify consistency with other APIs, then connect frontend
|
||||
- If not exists: Create new endpoint following existing API patterns in the codebase
|
||||
- Fields to persist: first_name, last_name, email, phone, timezone, language, notification preferences
|
||||
|
||||
**For Issue #2 (Password change):**
|
||||
- Implement secure password change requiring current password
|
||||
- Validate new password meets requirements
|
||||
- Consider session invalidation after password change
|
||||
|
||||
**For Issue #12 (Role consistency):**
|
||||
- Decide on role system: boolean `is_admin` or role enum (admin/member/viewer)
|
||||
- Align frontend display with backend data structure
|
||||
|
||||
---
|
||||
|
||||
## 4.2 Plans & Billing
|
||||
|
||||
**Route:** `/account/plans`
|
||||
**Files:** `pages/account/PlansAndBillingPage.tsx`, `pages/Billing/CreditPurchase.tsx`
|
||||
**Tabs:** Current Plan, Upgrade Plan, History
|
||||
|
||||
### Current Functionality
|
||||
- **Current Plan:** Plan name, status, credits, balance, renewal date, features
|
||||
- **Upgrade:** Pricing table, plan comparison, change policy
|
||||
- **History:** Invoices with PDF download, payments, payment methods
|
||||
|
||||
### Payment Context
|
||||
Currently using manual payment methods only (bank transfer, wallet). No automatic payment processing.
|
||||
|
||||
---
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | No proration preview | High | Show prorated amount before plan upgrade/downgrade |
|
||||
| 2 | Credit purchase not linked | Medium | Link to credit purchase from Plans & Billing page |
|
||||
| 3 | Cancellation is immediate | High | Add confirmation dialog before plan cancellation |
|
||||
| 4 | No downgrade proration display | Medium | Show calculation when downgrading plan |
|
||||
| 5 | Throttling errors surface to users | Medium | Replace raw throttling messages with user-friendly spinner/message |
|
||||
| 6 | No billing cycle visualization | Medium | Make renewal date prominent, show billing cycle clearly |
|
||||
| 7 | No cancellation reason collection | Low | Add optional reason selection when cancelling |
|
||||
|
||||
---
|
||||
|
||||
### Issues NOT Being Addressed (Per Discussion)
|
||||
|
||||
| Issue | Reason |
|
||||
|-------|--------|
|
||||
| No payment failure retry | Manual payment only - no auto-retry needed |
|
||||
| Payment method UI incomplete | Manual payment only - limited methods by design |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
**For Issue #1 (Proration preview):**
|
||||
- Before confirming plan change, show:
|
||||
- Current plan remaining value
|
||||
- New plan cost
|
||||
- Prorated amount due/credited
|
||||
- Calculate based on days remaining in billing cycle
|
||||
|
||||
**For Issue #3 (Cancellation confirmation):**
|
||||
- Modal dialog: "Are you sure you want to cancel?"
|
||||
- Show what they'll lose (features, remaining credits)
|
||||
- Require explicit confirmation
|
||||
|
||||
**For Issue #5 (Throttling messages):**
|
||||
- Intercept throttling errors
|
||||
- Show spinner with "Processing your request..." instead of technical error
|
||||
- Implement proper retry logic behind the scenes
|
||||
|
||||
---
|
||||
|
||||
## 4.3 Usage
|
||||
|
||||
**Route:** `/account/usage`
|
||||
**Files:** `pages/account/UsageAnalyticsPage.tsx`, `pages/account/UsageLimits.tsx`, `pages/account/CreditActivity.tsx`
|
||||
**Tabs:** Your Limits & Usage, Credit History, API Activity
|
||||
|
||||
### Current Functionality
|
||||
- **Quick Stats:** Credits left, used this month, monthly limit, usage %
|
||||
- **Limits:** Hard limits (sites, users, keywords, clusters) + Monthly limits
|
||||
- **Credit History:** Transaction log with type, amount, description
|
||||
- **API Activity:** Call statistics, endpoint breakdown
|
||||
|
||||
---
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | API Activity is HARDCODED | 🔴 Critical | Implement real API activity tracking - replace fake values (1,234, 567, 342) |
|
||||
| 2 | Success rate is fake | 🔴 Critical | Calculate and display real success rate from actual data |
|
||||
| 3 | No usage alerts | High | Implement default alerts at usage thresholds (80%, 90%, 100%) - sent to all users automatically |
|
||||
| 4 | No per-site usage | High | Add breakdown showing which site consumed what |
|
||||
| 5 | No usage forecasting | Medium | Add "At current rate, you'll reach limit in X days" |
|
||||
| 6 | No actionable insights | Medium | Suggest upgrade when approaching limits |
|
||||
| 7 | Credit history lacks context | Medium | Add links from credit transactions to related content/operations |
|
||||
|
||||
---
|
||||
|
||||
### Issues NOT Being Addressed (Per Discussion)
|
||||
|
||||
| Issue | Reason |
|
||||
|-------|--------|
|
||||
| No per-user usage | Not needed for current phase |
|
||||
| No usage export | Not needed for current phase |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
**For Issue #1 & #2 (Real API Activity):**
|
||||
- Backend needs to log API calls (may already exist)
|
||||
- Track: endpoint, timestamp, status (success/fail), response time
|
||||
- Aggregate for display: total calls, success rate, calls by endpoint
|
||||
- Replace hardcoded values with real calculated data
|
||||
|
||||
**For Issue #3 (Usage alerts):**
|
||||
- Default behavior: all users receive alerts
|
||||
- Trigger points: 80%, 90%, 100% of limits
|
||||
- Delivery: in-app notification + email
|
||||
- No user preferences needed - alerts go to everyone
|
||||
|
||||
**For Issue #4 (Per-site usage):**
|
||||
- Break down credit usage by site
|
||||
- Show: "Site A: 450 credits, Site B: 230 credits"
|
||||
- Pie chart or table visualization
|
||||
|
||||
---
|
||||
|
||||
## 4.4 AI Models (Admin Only)
|
||||
|
||||
**Status:** ❌ SKIP ENTIRELY
|
||||
|
||||
Not part of user-facing modules. Admin only - no changes needed.
|
||||
|
||||
---
|
||||
|
||||
## 4.5 ACCOUNT Cross-Module Issues (MAJOR)
|
||||
|
||||
These are architectural issues requiring proper analysis and solutions.
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | Multiple credit balance sources | 🔴 Critical | Establish ONE source of truth for credit balance. Analyze: Plans page, Usage page, billingStore - determine which is authoritative, remove others, refactor all references |
|
||||
| 2 | Fragmented billing pages | High | **AI Agent Task:** Audit system to identify all billing-related pages/functions, find duplicates/redundancies, propose consolidation solution |
|
||||
| 3 | Legacy routes still exist | High | Remove legacy routes (`/billing/overview`, `/team`, `/profile`), remove redirect code, refactor any references throughout codebase |
|
||||
| 4 | No notification preferences | Low | Not needed - default alerts go to all users |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Notes
|
||||
|
||||
**For Issue #1 (Single source of truth for balance):**
|
||||
|
||||
*Phase 1: Analysis*
|
||||
- Identify all places that fetch/display credit balance:
|
||||
- `billingStore.ts` (Zustand store)
|
||||
- Plans & Billing page
|
||||
- Usage page
|
||||
- Dashboard (if applicable)
|
||||
- Header component (if showing balance)
|
||||
- Document how each fetches data (API endpoint, frequency)
|
||||
|
||||
*Phase 2: Decision*
|
||||
- Determine which should be THE source:
|
||||
- Likely `billingStore` as central state management
|
||||
- Single API endpoint for balance data
|
||||
- All components should read from this one source
|
||||
|
||||
*Phase 3: Implementation*
|
||||
- Refactor all components to use single source
|
||||
- Remove duplicate API calls
|
||||
- Remove duplicate state management
|
||||
- Ensure consistency across all views
|
||||
|
||||
**For Issue #2 (Fragmented billing pages):**
|
||||
|
||||
*AI Agent Audit Task:*
|
||||
```
|
||||
TASK: Billing Pages Consolidation Audit
|
||||
|
||||
1. DISCOVER all billing-related files:
|
||||
- pages/account/PlansAndBillingPage.tsx
|
||||
- pages/Billing/CreditPurchase.tsx
|
||||
- pages/Billing/Credits.tsx (if exists)
|
||||
- pages/Settings/CreditsAndBilling.tsx (if exists)
|
||||
- Any other billing-related pages
|
||||
|
||||
2. ANALYZE each page:
|
||||
- What functionality does it provide?
|
||||
- What routes point to it?
|
||||
- Is it actively used or orphaned?
|
||||
- Does it duplicate functionality from another page?
|
||||
|
||||
3. IDENTIFY redundancies:
|
||||
- Same functionality in multiple places
|
||||
- Overlapping features
|
||||
- Dead/orphaned pages
|
||||
|
||||
4. PROPOSE solution:
|
||||
- Which pages to keep
|
||||
- Which pages to merge
|
||||
- Which pages to delete
|
||||
- Final consolidated structure
|
||||
|
||||
5. DOCUMENT migration path:
|
||||
- What routes need updating
|
||||
- What references need changing
|
||||
- What imports need refactoring
|
||||
```
|
||||
|
||||
**For Issue #3 (Legacy routes removal):**
|
||||
|
||||
*Routes to remove:*
|
||||
- `/billing/overview`
|
||||
- `/team`
|
||||
- `/profile`
|
||||
|
||||
*Process:*
|
||||
1. Find route definitions in router/App.tsx
|
||||
2. Remove route entries
|
||||
3. Find and remove redirect logic
|
||||
4. Search codebase for any links to these routes
|
||||
5. Update or remove those links
|
||||
6. Delete any orphaned components only used by these routes
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
### Total Issues by Section
|
||||
|
||||
| Section | Critical | High | Medium | Low | Total |
|
||||
|---------|----------|------|--------|-----|-------|
|
||||
| 4.1 Account Settings | 2 | 4 | 6 | 0 | 12 |
|
||||
| 4.2 Plans & Billing | 0 | 2 | 4 | 1 | 7 |
|
||||
| 4.3 Usage | 2 | 2 | 3 | 0 | 7 |
|
||||
| 4.4 AI Models | - | - | - | - | Skipped |
|
||||
| 4.5 Cross-Module | 1 | 2 | 0 | 1 | 4 |
|
||||
| **TOTAL** | **5** | **10** | **13** | **2** | **30** |
|
||||
|
||||
---
|
||||
|
||||
### Critical Items (Must Fix)
|
||||
|
||||
1. **Account Settings** - Profile tab not connected to API
|
||||
2. **Account Settings** - Password change does nothing
|
||||
3. **Usage** - API Activity tab shows hardcoded fake data
|
||||
4. **Usage** - Success rate is fake (98.5%)
|
||||
5. **Cross-Module** - Multiple credit balance sources causing inconsistency
|
||||
|
||||
---
|
||||
|
||||
### High Priority Items
|
||||
|
||||
1. Account Settings - Role assignment on invite
|
||||
2. Account Settings - Role editing for members
|
||||
3. Account Settings - Email verification
|
||||
4. Account Settings - Delete orphaned TeamManagement.tsx
|
||||
5. Plans & Billing - Proration preview
|
||||
6. Plans & Billing - Cancellation confirmation dialog
|
||||
7. Usage - Usage alerts at thresholds
|
||||
8. Usage - Per-site usage breakdown
|
||||
9. Cross-Module - Billing pages consolidation audit
|
||||
10. Cross-Module - Legacy routes removal
|
||||
|
||||
---
|
||||
|
||||
### Files to Delete
|
||||
|
||||
| File | Reason |
|
||||
|------|--------|
|
||||
| `pages/account/TeamManagement.tsx` | Orphaned - functionality in AccountSettingsPage |
|
||||
| Legacy route redirect handlers | After removing `/billing/overview`, `/team`, `/profile` |
|
||||
| Duplicate billing pages | After consolidation audit determines which to remove |
|
||||
|
||||
---
|
||||
|
||||
### Files to Modify
|
||||
|
||||
| File | Changes |
|
||||
|------|---------|
|
||||
| `pages/account/AccountSettingsPage.tsx` | Connect profile API, implement password change, add role management, add invitation management |
|
||||
| `pages/account/PlansAndBillingPage.tsx` | Add proration preview, cancellation confirmation, link credit purchase |
|
||||
| `pages/account/UsageAnalyticsPage.tsx` | Implement real API activity, add per-site breakdown, add forecasting |
|
||||
| `store/billingStore.ts` | Establish as single source of truth for balance |
|
||||
| Router/App.tsx | Remove legacy routes |
|
||||
| All components using credit balance | Refactor to use single source |
|
||||
|
||||
---
|
||||
|
||||
### Backend Work Required
|
||||
|
||||
| Area | Work |
|
||||
|------|------|
|
||||
| Profile API | Audit existing endpoint OR create new one consistent with API structure |
|
||||
| Password change API | Implement secure password change endpoint |
|
||||
| API Activity tracking | Ensure backend logs API calls, create endpoint to retrieve activity data |
|
||||
| Usage alerts | Backend service to check thresholds and trigger notifications |
|
||||
| Per-site usage | Endpoint to return credit usage broken down by site |
|
||||
|
||||
---
|
||||
|
||||
### AI Agent Specific Tasks
|
||||
|
||||
| Task | Description |
|
||||
|------|-------------|
|
||||
| Billing Pages Audit | Discover all billing pages, analyze functionality, identify redundancies, propose consolidation |
|
||||
| Credit Balance Refactor | Identify all balance sources, determine single source, refactor all references |
|
||||
| Legacy Routes Cleanup | Remove routes, remove redirects, update all references |
|
||||
| Profile API Study | Check if endpoint exists, verify consistency, connect or create |
|
||||
|
||||
---
|
||||
610
to-do-s/part1/SECTION_5_FINAL_MODS.md
Normal file
610
to-do-s/part1/SECTION_5_FINAL_MODS.md
Normal file
@@ -0,0 +1,610 @@
|
||||
# Section 5: HELP Module - Audit & Action Plan
|
||||
|
||||
**Date:** December 27, 2025
|
||||
**Status:** Finalized for Implementation
|
||||
**Scope:** Help Center, Documentation, Support Channels
|
||||
|
||||
---
|
||||
|
||||
## 5.1 Help & Docs
|
||||
|
||||
**Route:** `/help`
|
||||
**File:** `pages/Help/HelpCenter.tsx`
|
||||
|
||||
### Current Functionality
|
||||
- Table of Contents with jump-to-section navigation
|
||||
- Getting Started: Quick Start Guide, Workflow Overview
|
||||
- Planner Module: Keywords, Clusters, Ideas documentation
|
||||
- Writer Module: Tasks, Content, Images documentation
|
||||
- Automation Setup overview
|
||||
- FAQ section (~20 questions)
|
||||
- Support CTA buttons (non-functional)
|
||||
|
||||
---
|
||||
|
||||
### Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | Support dropdown link broken | 🔴 Critical | Fix link - currently goes to `/profile` which is 404 |
|
||||
| 2 | Contact Support button does nothing | 🔴 Critical | Implement mailto: or external support URL |
|
||||
| 3 | Feature Request button does nothing | 🔴 Critical | Implement mailto: or external feedback URL |
|
||||
| 4 | No actual support channel | 🔴 Critical | Configure working support email/system |
|
||||
| 5 | Placeholder pages exist | High | **DELETE** `/help/docs`, `/help/system-testing`, `/help/function-testing` pages |
|
||||
| 6 | No search functionality | Medium | Add search within help content |
|
||||
| 7 | No contextual help | Low | Consider adding in-app tooltips or "?" icons (future) |
|
||||
| 8 | Stale content risk | Medium | Help content is hardcoded in TSX - document update process |
|
||||
|
||||
---
|
||||
|
||||
### Pages to Delete
|
||||
|
||||
| File | Route | Reason |
|
||||
|------|-------|--------|
|
||||
| `pages/Help/Documentation.tsx` | `/help/docs` | Empty placeholder - not needed |
|
||||
| `pages/Help/SystemTesting.tsx` | `/help/system-testing` | Empty placeholder - not needed |
|
||||
| `pages/Help/FunctionTesting.tsx` | `/help/function-testing` | Empty placeholder - not needed |
|
||||
|
||||
---
|
||||
|
||||
## 5.2 Documentation Requirements (NEW)
|
||||
|
||||
### Documentation Approach
|
||||
|
||||
Create detailed, step-by-step documentation for each module and flow. Documentation should be:
|
||||
- **Easy to use** - Clear language, no technical jargon
|
||||
- **Step-by-step** - Numbered instructions with expected outcomes
|
||||
- **Visual** - Screenshots or diagrams where helpful
|
||||
- **Current** - Matches exactly how the system is implemented
|
||||
|
||||
---
|
||||
|
||||
### Modules to Document
|
||||
|
||||
| Module | Status | Documentation Needed |
|
||||
|--------|--------|---------------------|
|
||||
| **Dashboard** | Active | Overview, metrics explanation, navigation |
|
||||
| **Add Keywords** | Active | How to browse, filter, select, add keywords |
|
||||
| **Content Settings** | Active | Content Generation, Publishing, Image Settings tabs |
|
||||
| **Sites** | Active | Site creation, WordPress integration, site management |
|
||||
| **Planner - Keywords** | Active | Adding, managing, clustering keywords |
|
||||
| **Planner - Clusters** | Active | Understanding clusters, generating ideas |
|
||||
| **Planner - Ideas** | Active | Managing ideas, queueing to writer |
|
||||
| **Writer - Queue** | Active | Task management, content generation |
|
||||
| **Writer - Drafts** | Active | Reviewing drafts, status management |
|
||||
| **Writer - Images** | Active | Image generation, management |
|
||||
| **Writer - Review** | Active | Review process, approval workflow |
|
||||
| **Writer - Published** | Active | Published content, WordPress sync |
|
||||
| **Automation** | Active | Pipeline setup, scheduling, monitoring |
|
||||
| **Account Settings** | Active | Account, Profile, Team management |
|
||||
| **Plans & Billing** | Active | Plans, upgrades, payment, invoices |
|
||||
| **Usage** | Active | Understanding limits, credit usage, history |
|
||||
| Linker | ❌ Not Active | Skip - not documenting |
|
||||
| Optimizer | ❌ Not Active | Skip - not documenting |
|
||||
| Sites/Site Builder | ❌ Not Active | Skip - legacy feature removed |
|
||||
| Thinker | Admin Only | Skip - not user-facing |
|
||||
|
||||
---
|
||||
|
||||
### Documentation Structure
|
||||
|
||||
For each module, document:
|
||||
|
||||
```
|
||||
## [Module Name]
|
||||
|
||||
### Overview
|
||||
Brief description of what this module does and its purpose in the workflow.
|
||||
|
||||
### How to Access
|
||||
- Navigation path to reach this module
|
||||
- Direct URL
|
||||
|
||||
### Step-by-Step Guide
|
||||
|
||||
#### [Task 1 Name]
|
||||
1. Step one with specific instruction
|
||||
2. Step two with expected result
|
||||
3. Step three...
|
||||
|
||||
#### [Task 2 Name]
|
||||
1. Step one...
|
||||
2. Step two...
|
||||
|
||||
### Key Features
|
||||
- Feature 1: What it does
|
||||
- Feature 2: What it does
|
||||
|
||||
### Tips & Best Practices
|
||||
- Tip 1
|
||||
- Tip 2
|
||||
|
||||
### Common Questions
|
||||
Q: Question?
|
||||
A: Answer
|
||||
|
||||
### Troubleshooting
|
||||
- Problem: X
|
||||
Solution: Y
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Detailed Documentation Outlines
|
||||
|
||||
#### Dashboard Documentation
|
||||
|
||||
```
|
||||
## Dashboard
|
||||
|
||||
### Overview
|
||||
Your command center showing workflow progress, key metrics, and quick actions.
|
||||
|
||||
### Metrics Explained
|
||||
- Keywords: Total keywords in your workflow
|
||||
- Articles: Content pieces created
|
||||
- Images: Images generated
|
||||
- Completion %: Overall workflow progress
|
||||
|
||||
### Workflow Progress
|
||||
Visual pipeline showing: Sites → Keywords → Clusters → Ideas → Content → Published
|
||||
|
||||
### Quick Actions
|
||||
- [Action 1]: What it does, when to use
|
||||
- [Action 2]: What it does, when to use
|
||||
|
||||
### Setup Checklist
|
||||
Understanding the setup completion indicator...
|
||||
```
|
||||
|
||||
#### Add Keywords Documentation
|
||||
|
||||
```
|
||||
## Add Keywords
|
||||
|
||||
### Overview
|
||||
Browse and add keywords from our curated database to your content workflow.
|
||||
|
||||
### Prerequisites
|
||||
- Active site with industry and sector selected
|
||||
|
||||
### Step-by-Step: Adding Keywords
|
||||
|
||||
1. Navigate to SETUP → Add Keywords
|
||||
2. Browse available keywords filtered by your site's industry/sector
|
||||
3. Use filters to narrow results:
|
||||
- Search: Find specific keywords
|
||||
- Country: Filter by target country
|
||||
- Difficulty: Filter by SEO difficulty
|
||||
4. Select keywords by clicking checkboxes
|
||||
5. Click "Add to Workflow" button
|
||||
6. Keywords are now in your Planner
|
||||
|
||||
### After Adding Keywords
|
||||
Click "Next: Plan Your Content →" to proceed to the Planner module.
|
||||
|
||||
### Tips
|
||||
- Start with 10-20 keywords to test your workflow
|
||||
- Mix high and low difficulty keywords
|
||||
- Focus on your core topics first
|
||||
```
|
||||
|
||||
#### Planner Documentation
|
||||
|
||||
```
|
||||
## Planner
|
||||
|
||||
### Overview
|
||||
Organize keywords into topic clusters and generate content ideas.
|
||||
|
||||
### The Planner Flow
|
||||
Keywords → Clusters → Ideas → Writer Queue
|
||||
|
||||
---
|
||||
|
||||
### Keywords Tab
|
||||
|
||||
#### Adding Keywords Manually
|
||||
1. Click "Add Keyword" button
|
||||
2. Enter keyword text
|
||||
3. Set initial status
|
||||
4. Save
|
||||
|
||||
#### Clustering Keywords
|
||||
1. Select keywords to cluster (checkboxes)
|
||||
2. Click "Auto-Cluster" button
|
||||
3. AI analyzes and groups related keywords
|
||||
4. Review created clusters in Clusters tab
|
||||
|
||||
---
|
||||
|
||||
### Clusters Tab
|
||||
|
||||
#### Understanding Clusters
|
||||
Clusters group related keywords by topic for focused content creation.
|
||||
|
||||
#### Generating Ideas from Clusters
|
||||
1. Select cluster(s) to generate ideas for
|
||||
2. Click "Generate Ideas" button
|
||||
3. AI creates content ideas based on cluster keywords
|
||||
4. Review ideas in Ideas tab
|
||||
|
||||
#### Cluster Progress
|
||||
- Badge shows "X ideas" for clusters with generated ideas
|
||||
- "No ideas yet" indicates pending clusters
|
||||
|
||||
---
|
||||
|
||||
### Ideas Tab
|
||||
|
||||
#### Reviewing Ideas
|
||||
Each idea shows: title, target keyword, cluster source
|
||||
|
||||
#### Sending Ideas to Writer
|
||||
1. Select ideas to write (checkboxes)
|
||||
2. Click "Queue to Writer" button
|
||||
3. Ideas become tasks in Writer Queue
|
||||
```
|
||||
|
||||
#### Writer Documentation
|
||||
|
||||
```
|
||||
## Writer
|
||||
|
||||
### Overview
|
||||
Generate, review, and publish AI-created content.
|
||||
|
||||
### The Writer Flow
|
||||
Queue → Drafts → Review → Published
|
||||
|
||||
---
|
||||
|
||||
### Queue Tab (Tasks)
|
||||
|
||||
#### Understanding Tasks
|
||||
Tasks are content pieces waiting to be generated.
|
||||
|
||||
#### Generating Content
|
||||
1. Find task in queue
|
||||
2. Click "Generate Content" action
|
||||
3. AI writes the article
|
||||
4. Content moves to Drafts
|
||||
|
||||
---
|
||||
|
||||
### Drafts Tab
|
||||
|
||||
#### Reviewing Drafts
|
||||
1. Click on draft to view full content
|
||||
2. Review AI-generated article
|
||||
3. Check content quality and accuracy
|
||||
|
||||
#### Moving to Review
|
||||
1. Select draft(s)
|
||||
2. Change status to "Review"
|
||||
3. Content moves to Review tab
|
||||
|
||||
---
|
||||
|
||||
### Images Tab
|
||||
|
||||
#### Generating Images
|
||||
1. Select content needing images
|
||||
2. Click "Generate Images"
|
||||
3. AI creates images based on content
|
||||
4. Images attach to content
|
||||
|
||||
---
|
||||
|
||||
### Review Tab
|
||||
|
||||
#### Final Review Process
|
||||
1. Review content and images together
|
||||
2. Make any final adjustments
|
||||
3. Approve for publishing
|
||||
|
||||
#### Publishing to WordPress
|
||||
1. Select reviewed content
|
||||
2. Click "Publish" button
|
||||
3. Content syncs to WordPress
|
||||
4. Moves to Published tab
|
||||
|
||||
---
|
||||
|
||||
### Published Tab
|
||||
|
||||
#### Viewing Published Content
|
||||
- See all published articles
|
||||
- WordPress sync status
|
||||
- Publication dates
|
||||
```
|
||||
|
||||
#### Automation Documentation
|
||||
|
||||
```
|
||||
## Automation
|
||||
|
||||
### Overview
|
||||
Automate your entire content pipeline from keywords to published articles.
|
||||
|
||||
### Pipeline Stages
|
||||
1. Keywords → Clustering
|
||||
2. Clusters → Idea Generation
|
||||
3. Ideas → Task Creation
|
||||
4. Tasks → Content Generation
|
||||
5. Content → Image Prompt Extraction
|
||||
6. Prompts → Image Generation
|
||||
7. Review Gate
|
||||
|
||||
---
|
||||
|
||||
### Setting Up Automation
|
||||
|
||||
#### Configure Schedule
|
||||
1. Set frequency (daily, weekly, etc.)
|
||||
2. Set preferred run time
|
||||
3. Enable/disable automation
|
||||
|
||||
#### Stage Controls
|
||||
Enable or disable individual stages as needed.
|
||||
|
||||
#### Batch Size
|
||||
Set how many items process per run.
|
||||
|
||||
---
|
||||
|
||||
### Running Automation
|
||||
|
||||
#### Manual Run
|
||||
Click "Run Now" to start pipeline immediately.
|
||||
|
||||
#### Monitoring Progress
|
||||
- Real-time progress display
|
||||
- Stage-by-stage status
|
||||
- Activity log
|
||||
|
||||
#### Handling Errors
|
||||
- Failed items shown in log
|
||||
- Click "Retry" to reprocess failed items
|
||||
|
||||
---
|
||||
|
||||
### Best Practices
|
||||
- Start with small batch sizes
|
||||
- Monitor first few runs closely
|
||||
- Review automation output regularly
|
||||
```
|
||||
|
||||
#### Account Settings Documentation
|
||||
|
||||
```
|
||||
## Account Settings
|
||||
|
||||
### Overview
|
||||
Manage your account, profile, and team.
|
||||
|
||||
---
|
||||
|
||||
### Account Tab
|
||||
- Organization name
|
||||
- Billing email
|
||||
- Billing address
|
||||
- Tax ID/VAT number
|
||||
|
||||
---
|
||||
|
||||
### Profile Tab
|
||||
- Personal information (name, email, phone)
|
||||
- Timezone and language preferences
|
||||
- Notification settings
|
||||
- Security settings (password, 2FA)
|
||||
|
||||
#### Changing Password
|
||||
1. Go to Profile tab
|
||||
2. Click "Change Password"
|
||||
3. Enter current password
|
||||
4. Enter and confirm new password
|
||||
5. Save changes
|
||||
|
||||
---
|
||||
|
||||
### Team Tab
|
||||
|
||||
#### Inviting Team Members
|
||||
1. Click "Invite Member"
|
||||
2. Enter email address
|
||||
3. Select role (Admin or Member)
|
||||
4. Send invitation
|
||||
|
||||
#### Managing Members
|
||||
- View all team members
|
||||
- Change member roles
|
||||
- Remove members
|
||||
|
||||
#### Team Limits
|
||||
Your plan allows X team members. Currently using Y.
|
||||
```
|
||||
|
||||
#### Plans & Billing Documentation
|
||||
|
||||
```
|
||||
## Plans & Billing
|
||||
|
||||
### Overview
|
||||
Manage your subscription, view invoices, and track payments.
|
||||
|
||||
---
|
||||
|
||||
### Current Plan Tab
|
||||
- Plan name and features
|
||||
- Credit balance
|
||||
- Renewal date
|
||||
- Usage summary
|
||||
|
||||
---
|
||||
|
||||
### Upgrade Plan Tab
|
||||
|
||||
#### Changing Plans
|
||||
1. Review available plans
|
||||
2. Compare features
|
||||
3. Click "Upgrade" on desired plan
|
||||
4. Review proration (credit for remaining time)
|
||||
5. Confirm change
|
||||
|
||||
#### Cancelling Plan
|
||||
1. Click "Cancel Plan"
|
||||
2. Review what you'll lose
|
||||
3. Confirm cancellation
|
||||
|
||||
---
|
||||
|
||||
### History Tab
|
||||
- Invoice history with PDF download
|
||||
- Payment records
|
||||
- Payment method management
|
||||
```
|
||||
|
||||
#### Usage Documentation
|
||||
|
||||
```
|
||||
## Usage
|
||||
|
||||
### Overview
|
||||
Track your credit usage, limits, and activity.
|
||||
|
||||
---
|
||||
|
||||
### Your Limits & Usage Tab
|
||||
|
||||
#### Understanding Limits
|
||||
- **Hard Limits:** Maximum allowed (sites, users, keywords)
|
||||
- **Monthly Limits:** Reset each billing cycle
|
||||
|
||||
#### Credit Balance
|
||||
- Credits remaining
|
||||
- Credits used this month
|
||||
- Monthly allocation
|
||||
|
||||
---
|
||||
|
||||
### Credit History Tab
|
||||
Transaction log showing all credit activity:
|
||||
- Credit additions (plan, purchases)
|
||||
- Credit usage (content, images, etc.)
|
||||
|
||||
---
|
||||
|
||||
### API Activity Tab
|
||||
- Total API calls
|
||||
- Success rate
|
||||
- Activity by endpoint
|
||||
|
||||
---
|
||||
|
||||
### Usage Alerts
|
||||
Automatic alerts at 80%, 90%, and 100% of limits.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5.3 FAQ Updates
|
||||
|
||||
### Current FAQ Topics (~20 questions)
|
||||
Review and update existing FAQ to ensure accuracy.
|
||||
|
||||
### Additional FAQ Topics Needed
|
||||
|
||||
| Topic | Questions to Add |
|
||||
|-------|------------------|
|
||||
| Credits | How credits work, what uses credits, credit costs |
|
||||
| Automation | How to set up, troubleshooting, best practices |
|
||||
| WordPress | Integration setup, sync issues, troubleshooting |
|
||||
| Content | Generation tips, quality settings, editing |
|
||||
| Images | Generation options, formats, sizes |
|
||||
| Billing | Payment methods, invoices, plan changes |
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
### Total Issues
|
||||
|
||||
| Category | Critical | High | Medium | Low | Total |
|
||||
|----------|----------|------|--------|-----|-------|
|
||||
| Support/Links | 4 | 0 | 0 | 0 | 4 |
|
||||
| Pages to Delete | 0 | 1 | 0 | 0 | 1 |
|
||||
| Features | 0 | 0 | 2 | 1 | 3 |
|
||||
| Documentation | 0 | 1 | 0 | 0 | 1 |
|
||||
| **TOTAL** | **4** | **2** | **2** | **1** | **9** |
|
||||
|
||||
---
|
||||
|
||||
### Critical Items (Must Fix)
|
||||
|
||||
1. Fix Support dropdown link (currently 404)
|
||||
2. Implement Contact Support button (mailto: or support URL)
|
||||
3. Implement Feature Request button (mailto: or feedback URL)
|
||||
4. Configure working support channel
|
||||
|
||||
---
|
||||
|
||||
### High Priority Items
|
||||
|
||||
1. Delete placeholder pages (`/help/docs`, `/help/system-testing`, `/help/function-testing`)
|
||||
2. Create comprehensive step-by-step documentation for all active modules
|
||||
|
||||
---
|
||||
|
||||
### Files to Delete
|
||||
|
||||
| File | Reason |
|
||||
|------|--------|
|
||||
| `pages/Help/Documentation.tsx` | Empty placeholder |
|
||||
| `pages/Help/SystemTesting.tsx` | Empty placeholder |
|
||||
| `pages/Help/FunctionTesting.tsx` | Empty placeholder |
|
||||
|
||||
---
|
||||
|
||||
### Files to Modify
|
||||
|
||||
| File | Changes |
|
||||
|------|---------|
|
||||
| `pages/Help/HelpCenter.tsx` | Fix support link, implement button handlers, add comprehensive documentation, update FAQ |
|
||||
| Router/App.tsx | Remove routes for deleted help pages |
|
||||
|
||||
---
|
||||
|
||||
### Documentation Modules (Do NOT Document)
|
||||
|
||||
| Module | Reason |
|
||||
|--------|--------|
|
||||
| Linker | Not active |
|
||||
| Optimizer | Not active |
|
||||
| Sites/Site Builder | Legacy feature removed |
|
||||
| Thinker | Admin only - not user-facing |
|
||||
|
||||
---
|
||||
|
||||
### Documentation Deliverables
|
||||
|
||||
Create detailed step-by-step documentation for:
|
||||
|
||||
1. ✅ Dashboard
|
||||
2. ✅ Add Keywords
|
||||
3. ✅ Content Settings
|
||||
4. ✅ Sites (WordPress integration focus, not site builder)
|
||||
5. ✅ Planner - Keywords
|
||||
6. ✅ Planner - Clusters
|
||||
7. ✅ Planner - Ideas
|
||||
8. ✅ Writer - Queue/Tasks
|
||||
9. ✅ Writer - Drafts
|
||||
10. ✅ Writer - Images
|
||||
11. ✅ Writer - Review
|
||||
12. ✅ Writer - Published
|
||||
13. ✅ Automation
|
||||
14. ✅ Account Settings
|
||||
15. ✅ Plans & Billing
|
||||
16. ✅ Usage
|
||||
|
||||
---
|
||||
464
to-do-s/part1/SECTION_6_FINAL_MODS.md
Normal file
464
to-do-s/part1/SECTION_6_FINAL_MODS.md
Normal file
@@ -0,0 +1,464 @@
|
||||
# Section 6: Sidebar & Navigation - Audit & Action Plan
|
||||
|
||||
**Date:** December 27, 2025
|
||||
**Status:** Finalized for Implementation
|
||||
**Scope:** Sidebar structure, navigation restructure (tabs → sidebar dropdowns)
|
||||
|
||||
---
|
||||
|
||||
## 6.1 Current Navigation Structure
|
||||
|
||||
**File:** `layout/AppSidebar.tsx`
|
||||
|
||||
```
|
||||
Dashboard (standalone)
|
||||
├─ SETUP
|
||||
│ ├─ Add Keywords → /setup/add-keywords
|
||||
│ ├─ Content Settings → /account/content-settings
|
||||
│ ├─ Sites → /sites
|
||||
│ └─ Thinker (admin only) → /thinker/prompts
|
||||
├─ WORKFLOW
|
||||
│ ├─ Planner → /planner/keywords
|
||||
│ ├─ Writer → /writer/tasks
|
||||
│ ├─ Automation → /automation
|
||||
│ ├─ Linker → /linker/content [NOT ACTIVE - REMOVE]
|
||||
│ └─ Optimizer → /optimizer/content [NOT ACTIVE - REMOVE]
|
||||
├─ ACCOUNT
|
||||
│ ├─ Account Settings → /account/settings
|
||||
│ ├─ Plans & Billing → /account/plans
|
||||
│ ├─ Usage → /account/usage
|
||||
│ └─ AI Models (admin only) → /settings/integration
|
||||
└─ HELP
|
||||
└─ Help & Docs → /help
|
||||
```
|
||||
|
||||
### Current In-Page Navigation (TO BE REMOVED)
|
||||
|
||||
| Module | Current Tabs/Buttons | Location |
|
||||
|--------|---------------------|----------|
|
||||
| **Planner** | Keywords, Clusters, Ideas | Tab buttons in page header |
|
||||
| **Writer** | Queue, Drafts, Images, Review, Published | Tab buttons in page header |
|
||||
| **Account Settings** | Account, Profile, Team | Tabs in page |
|
||||
| **Plans & Billing** | Current Plan, Upgrade Plan, History | Tabs in page |
|
||||
| **Usage** | Your Limits & Usage, Credit History, API Activity | Tabs in page |
|
||||
| **Content Settings** | Content Generation, Publishing, Image Settings | Tabs in page |
|
||||
|
||||
---
|
||||
|
||||
## 6.2 Issues to Address
|
||||
|
||||
| # | Issue | Priority | Action |
|
||||
|---|-------|----------|--------|
|
||||
| 1 | Linker in navigation | High | **REMOVE** - not active module |
|
||||
| 2 | Optimizer in navigation | High | **REMOVE** - not active module |
|
||||
| 3 | KeywordOpportunities reference | High | **REMOVE** - page being deleted |
|
||||
| 4 | Help sub-pages in routes | High | **REMOVE** - pages being deleted |
|
||||
| 5 | Menu order incorrect | High | Reorder SETUP: Sites → Add Keywords → Content Settings → Thinker |
|
||||
| 6 | Tabs/buttons clutter page headers | High | **MOVE to sidebar dropdowns** |
|
||||
| 7 | No breadcrumb navigation | Medium | Add breadcrumbs (space now available in header) |
|
||||
| 8 | No "Next Step" guidance | Medium | Add contextual next step (space now available in header) |
|
||||
| 9 | No active section highlighting | Medium | Highlight current section/page in sidebar |
|
||||
| 10 | Credit purchase not in sidebar | Low | Accessible from Plans & Billing |
|
||||
|
||||
---
|
||||
|
||||
## 6.3 New Navigation Structure: Sidebar Dropdowns
|
||||
|
||||
### Decision: Move All Sub-Navigation to Sidebar
|
||||
|
||||
**Rationale:**
|
||||
- New app launch - no existing user patterns to unlearn
|
||||
- Desktop-only app - no mobile concerns
|
||||
- Same number of clicks - active dropdown stays expanded automatically
|
||||
- Cleaner page headers - space for breadcrumbs and "Next Step" CTAs
|
||||
- Better discoverability - all navigation visible in one place
|
||||
- Scalable - easy to add new sub-pages in future
|
||||
- Consistent pattern across all modules
|
||||
|
||||
### New Sidebar Structure
|
||||
|
||||
```
|
||||
Dashboard
|
||||
|
||||
SETUP
|
||||
├─ Sites ▼
|
||||
│ ├─ All Sites → /sites
|
||||
│ └─ Site Settings → /sites/:id/settings (contextual)
|
||||
├─ Add Keywords → /setup/add-keywords
|
||||
├─ Content Settings ▼
|
||||
│ ├─ Content Generation → /account/content-settings/generation
|
||||
│ ├─ Publishing → /account/content-settings/publishing
|
||||
│ └─ Image Settings → /account/content-settings/images
|
||||
└─ Thinker (admin only) ▼
|
||||
├─ Prompts → /thinker/prompts
|
||||
└─ Author Profiles → /thinker/author-profiles
|
||||
|
||||
WORKFLOW
|
||||
├─ Planner ▼
|
||||
│ ├─ Keywords → /planner/keywords
|
||||
│ ├─ Clusters → /planner/clusters
|
||||
│ └─ Ideas → /planner/ideas
|
||||
├─ Writer ▼
|
||||
│ ├─ Queue → /writer/tasks
|
||||
│ ├─ Drafts → /writer/drafts
|
||||
│ ├─ Images → /writer/images
|
||||
│ ├─ Review → /writer/review
|
||||
│ └─ Published → /writer/published
|
||||
└─ Automation → /automation
|
||||
|
||||
ACCOUNT
|
||||
├─ Account Settings ▼
|
||||
│ ├─ Account → /account/settings/account
|
||||
│ ├─ Profile → /account/settings/profile
|
||||
│ └─ Team → /account/settings/team
|
||||
├─ Plans & Billing ▼
|
||||
│ ├─ Current Plan → /account/plans/current
|
||||
│ ├─ Upgrade Plan → /account/plans/upgrade
|
||||
│ └─ History → /account/plans/history
|
||||
├─ Usage ▼
|
||||
│ ├─ Limits & Usage → /account/usage/limits
|
||||
│ ├─ Credit History → /account/usage/credits
|
||||
│ └─ API Activity → /account/usage/api
|
||||
└─ AI Models (admin only) → /settings/integration
|
||||
|
||||
HELP
|
||||
└─ Help & Docs → /help
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6.4 Sidebar Behavior Specification
|
||||
|
||||
### Dropdown Behavior
|
||||
|
||||
1. **Active Page Detection:**
|
||||
- When user navigates to any page, its parent dropdown auto-expands
|
||||
- Current page is highlighted within the dropdown
|
||||
- Active dropdown stays expanded - does NOT collapse
|
||||
|
||||
2. **Click Behavior:**
|
||||
- Click on dropdown parent (if not expanded) → expands dropdown
|
||||
- Click on dropdown parent (if expanded) → collapses dropdown
|
||||
- Click on sub-item → navigates to that page, dropdown stays open
|
||||
- Only active page's dropdown auto-opens on page load
|
||||
|
||||
3. **Visual States:**
|
||||
```
|
||||
Planner ▼ ← Parent: expanded indicator
|
||||
Keywords ← Normal sub-item
|
||||
Clusters ● ← Active page: highlighted
|
||||
Ideas ← Normal sub-item
|
||||
|
||||
Writer ▶ ← Collapsed (not active)
|
||||
```
|
||||
|
||||
4. **Persistence:**
|
||||
- Active dropdown remains expanded during navigation within that module
|
||||
- On direct URL access or refresh, opens dropdown containing current page
|
||||
- Non-active dropdowns default to collapsed state
|
||||
|
||||
### Example Flow
|
||||
|
||||
User is on `/planner/clusters`:
|
||||
|
||||
```
|
||||
WORKFLOW
|
||||
├─ Planner ▼ [EXPANDED - contains active page]
|
||||
│ ├─ Keywords [clickable]
|
||||
│ ├─ Clusters ● [ACTIVE - highlighted]
|
||||
│ └─ Ideas [clickable]
|
||||
├─ Writer ▶ [COLLAPSED]
|
||||
└─ Automation [no dropdown - single page]
|
||||
```
|
||||
|
||||
User clicks "Ideas":
|
||||
- Navigates to `/planner/ideas`
|
||||
- Planner dropdown stays expanded
|
||||
- "Ideas" becomes highlighted
|
||||
- "Clusters" returns to normal state
|
||||
|
||||
User clicks "Writer":
|
||||
- Writer dropdown expands
|
||||
- Planner dropdown can stay expanded or collapse (design choice)
|
||||
- Shows Writer sub-items
|
||||
|
||||
---
|
||||
|
||||
## 6.5 Page Header Structure (After Tabs Removal)
|
||||
|
||||
### Before (Current)
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────┐
|
||||
│ [Keywords] [Clusters] [Ideas] [+ Add] [Bulk ▼] [Filter] [Search] │
|
||||
├─────────────────────────────────────────────────────────────────────┤
|
||||
│ Content area... │
|
||||
```
|
||||
|
||||
### After (New)
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────┐
|
||||
│ Planner > Clusters [+ Add] [Bulk ▼] [Next: Ideas →] │
|
||||
├─────────────────────────────────────────────────────────────────────┤
|
||||
│ [Filter] [Search...] │
|
||||
├─────────────────────────────────────────────────────────────────────┤
|
||||
│ Content area... │
|
||||
```
|
||||
|
||||
### Header Components
|
||||
|
||||
| Component | Position | Purpose |
|
||||
|-----------|----------|---------|
|
||||
| Breadcrumb | Left | Shows: Section > Page (e.g., "Planner > Clusters") |
|
||||
| Primary Actions | Center-Right | Add, Bulk actions |
|
||||
| Next Step CTA | Right | Contextual "Next: [Action] →" button |
|
||||
| Filters/Search | Below header or inline | Data filtering |
|
||||
|
||||
---
|
||||
|
||||
## 6.6 Breadcrumb Implementation
|
||||
|
||||
### Breadcrumb Pattern
|
||||
|
||||
```
|
||||
[Section] > [Page]
|
||||
[Section] > [Page] > [Detail]
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
| Route | Breadcrumb Display |
|
||||
|-------|-------------------|
|
||||
| `/planner/keywords` | Planner > Keywords |
|
||||
| `/planner/clusters` | Planner > Clusters |
|
||||
| `/planner/clusters/:id` | Planner > Clusters > [Cluster Name] |
|
||||
| `/writer/drafts` | Writer > Drafts |
|
||||
| `/writer/drafts/:id` | Writer > Drafts > [Content Title] |
|
||||
| `/account/settings/team` | Account Settings > Team |
|
||||
| `/account/plans/upgrade` | Plans & Billing > Upgrade Plan |
|
||||
|
||||
### Implementation
|
||||
|
||||
- Create reusable `<Breadcrumb />` component
|
||||
- Each page defines its breadcrumb trail via props or route config
|
||||
- Clickable links except for current page (last item)
|
||||
|
||||
---
|
||||
|
||||
## 6.7 "Next Step" CTA Implementation
|
||||
|
||||
### Contextual Next Steps
|
||||
|
||||
| Current Location | Condition | Next Step CTA |
|
||||
|------------------|-----------|---------------|
|
||||
| Sites | Site created | "Next: Add Keywords →" |
|
||||
| Add Keywords | Keywords added (count > 0) | "Next: Plan Your Content →" |
|
||||
| Planner > Keywords | Has unclustered keywords | "Next: Cluster Keywords →" |
|
||||
| Planner > Clusters | Cluster selected/has clusters | "Next: Generate Ideas →" |
|
||||
| Planner > Ideas | Has ideas | "Next: Queue to Writer →" |
|
||||
| Writer > Queue | Has tasks | "Next: Generate Content →" |
|
||||
| Writer > Drafts | Has drafts | "Next: Review Drafts →" |
|
||||
| Writer > Review | Has reviewed content | "Next: Publish →" |
|
||||
|
||||
### Implementation
|
||||
|
||||
- Create `<NextStepCTA />` component
|
||||
- Each page determines when to show and what action
|
||||
- Button styled prominently but not intrusive
|
||||
- Links to logical next step in workflow
|
||||
|
||||
---
|
||||
|
||||
## 6.8 Route Updates Required
|
||||
|
||||
### Routes to Add/Update
|
||||
|
||||
To support sidebar navigation, routes need restructuring:
|
||||
|
||||
| Current Route | New Route | Notes |
|
||||
|---------------|-----------|-------|
|
||||
| `/account/content-settings` | `/account/content-settings/generation` | Default to first sub-page |
|
||||
| (same page, different tab) | `/account/content-settings/publishing` | Separate route |
|
||||
| (same page, different tab) | `/account/content-settings/images` | Separate route |
|
||||
| `/account/settings` | `/account/settings/account` | Default to first sub-page |
|
||||
| (same page, different tab) | `/account/settings/profile` | Separate route |
|
||||
| (same page, different tab) | `/account/settings/team` | Separate route |
|
||||
| `/account/plans` | `/account/plans/current` | Default to first sub-page |
|
||||
| (same page, different tab) | `/account/plans/upgrade` | Separate route |
|
||||
| (same page, different tab) | `/account/plans/history` | Separate route |
|
||||
| `/account/usage` | `/account/usage/limits` | Default to first sub-page |
|
||||
| (same page, different tab) | `/account/usage/credits` | Separate route |
|
||||
| (same page, different tab) | `/account/usage/api` | Separate route |
|
||||
|
||||
### Routes to Remove
|
||||
|
||||
| Route | Reason |
|
||||
|-------|--------|
|
||||
| `/linker/*` | Module not active |
|
||||
| `/optimizer/*` | Module not active |
|
||||
| `/planner/keyword-opportunities` | Page deleted |
|
||||
| `/help/docs` | Page deleted |
|
||||
| `/help/system-testing` | Page deleted |
|
||||
| `/help/function-testing` | Page deleted |
|
||||
| `/billing/overview` | Legacy route |
|
||||
| `/team` | Legacy route |
|
||||
| `/profile` | Legacy route |
|
||||
|
||||
---
|
||||
|
||||
## 6.9 Implementation Plan
|
||||
|
||||
### Phase 1: Sidebar Restructure
|
||||
|
||||
1. **Update `AppSidebar.tsx`:**
|
||||
- Add dropdown functionality for multi-page modules
|
||||
- Implement expand/collapse with active state detection
|
||||
- Remove Linker and Optimizer
|
||||
- Reorder SETUP: Sites → Add Keywords → Content Settings → Thinker
|
||||
- Add visual indicators (▼ expanded, ▶ collapsed, ● active)
|
||||
|
||||
2. **Create dropdown data structure:**
|
||||
```typescript
|
||||
const sidebarConfig = [
|
||||
{
|
||||
section: 'SETUP',
|
||||
items: [
|
||||
{ label: 'Sites', path: '/sites', icon: Globe },
|
||||
{ label: 'Add Keywords', path: '/setup/add-keywords', icon: Key },
|
||||
{
|
||||
label: 'Content Settings',
|
||||
icon: Settings,
|
||||
children: [
|
||||
{ label: 'Content Generation', path: '/account/content-settings/generation' },
|
||||
{ label: 'Publishing', path: '/account/content-settings/publishing' },
|
||||
{ label: 'Image Settings', path: '/account/content-settings/images' },
|
||||
]
|
||||
},
|
||||
// ... etc
|
||||
]
|
||||
},
|
||||
// ... other sections
|
||||
];
|
||||
```
|
||||
|
||||
### Phase 2: Route Updates
|
||||
|
||||
1. **Update Router/App.tsx:**
|
||||
- Add new sub-routes for tabbed pages
|
||||
- Set up redirects from parent routes to default child
|
||||
- Remove deleted/inactive routes
|
||||
|
||||
2. **Example route structure:**
|
||||
```typescript
|
||||
// Content Settings
|
||||
<Route path="/account/content-settings" element={<Navigate to="/account/content-settings/generation" />} />
|
||||
<Route path="/account/content-settings/generation" element={<ContentSettingsGeneration />} />
|
||||
<Route path="/account/content-settings/publishing" element={<ContentSettingsPublishing />} />
|
||||
<Route path="/account/content-settings/images" element={<ContentSettingsImages />} />
|
||||
```
|
||||
|
||||
### Phase 3: Page Header Updates
|
||||
|
||||
1. **Remove tab components from all pages:**
|
||||
- Planner (Keywords, Clusters, Ideas tabs)
|
||||
- Writer (Queue, Drafts, Images, Review, Published tabs)
|
||||
- Account Settings (Account, Profile, Team tabs)
|
||||
- Plans & Billing (Current, Upgrade, History tabs)
|
||||
- Usage (Limits, Credits, API tabs)
|
||||
- Content Settings (Generation, Publishing, Images tabs)
|
||||
|
||||
2. **Add Breadcrumb component to each page**
|
||||
|
||||
3. **Add NextStepCTA component where applicable**
|
||||
|
||||
4. **Reorganize header layout:**
|
||||
- Left: Breadcrumb
|
||||
- Right: Actions + Next Step CTA
|
||||
|
||||
### Phase 4: Component Creation
|
||||
|
||||
1. **Create `components/navigation/Breadcrumb.tsx`**
|
||||
2. **Create `components/navigation/NextStepCTA.tsx`**
|
||||
3. **Create `components/navigation/SidebarDropdown.tsx`** (if not using existing UI library component)
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
### Total Issues
|
||||
|
||||
| Category | High | Medium | Low | Total |
|
||||
|----------|------|--------|-----|-------|
|
||||
| Remove inactive modules | 2 | 0 | 0 | 2 |
|
||||
| Remove deleted pages | 2 | 0 | 0 | 2 |
|
||||
| Menu order | 1 | 0 | 0 | 1 |
|
||||
| Navigation restructure | 1 | 0 | 0 | 1 |
|
||||
| New features | 0 | 3 | 1 | 4 |
|
||||
| **TOTAL** | **6** | **3** | **1** | **10** |
|
||||
|
||||
---
|
||||
|
||||
### High Priority Items
|
||||
|
||||
1. Remove Linker from sidebar navigation
|
||||
2. Remove Optimizer from sidebar navigation
|
||||
3. Remove KeywordOpportunities route references
|
||||
4. Remove Help sub-page routes
|
||||
5. Reorder SETUP menu: Sites → Add Keywords → Content Settings → Thinker
|
||||
6. **Implement sidebar dropdown navigation (replace all tabs)**
|
||||
|
||||
---
|
||||
|
||||
### Medium Priority Items
|
||||
|
||||
1. Add breadcrumb navigation component
|
||||
2. Add "Next Step" contextual guidance
|
||||
3. Add active section highlighting in sidebar
|
||||
|
||||
---
|
||||
|
||||
### Files to Delete
|
||||
|
||||
| File | Reason |
|
||||
|------|--------|
|
||||
| Tab components in page headers | Replaced by sidebar navigation |
|
||||
| Any standalone tab navigation components | No longer needed |
|
||||
|
||||
---
|
||||
|
||||
### Files to Create
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `components/navigation/Breadcrumb.tsx` | Reusable breadcrumb component |
|
||||
| `components/navigation/NextStepCTA.tsx` | Contextual next step button |
|
||||
| Possibly split page components | If current tabbed pages are single files, may need to split |
|
||||
|
||||
---
|
||||
|
||||
### Files to Modify
|
||||
|
||||
| File | Changes |
|
||||
|------|---------|
|
||||
| `layout/AppSidebar.tsx` | Complete restructure with dropdowns, remove inactive modules, reorder |
|
||||
| `Router/App.tsx` | Add sub-routes, remove inactive routes, add redirects |
|
||||
| `pages/Planner/*.tsx` | Remove tab navigation from header |
|
||||
| `pages/Writer/*.tsx` | Remove tab navigation from header |
|
||||
| `pages/account/AccountSettingsPage.tsx` | Split into separate route components OR remove tabs |
|
||||
| `pages/account/PlansAndBillingPage.tsx` | Split into separate route components OR remove tabs |
|
||||
| `pages/account/UsageAnalyticsPage.tsx` | Split into separate route components OR remove tabs |
|
||||
| `pages/account/ContentSettingsPage.tsx` | Split into separate route components OR remove tabs |
|
||||
| All page headers | Add Breadcrumb, reorganize layout, add NextStepCTA |
|
||||
|
||||
---
|
||||
|
||||
### Implementation Decision
|
||||
|
||||
**CONFIRMED: Implement sidebar-based navigation with dropdowns**
|
||||
|
||||
- Remove all tab/button navigation from page headers
|
||||
- All sub-navigation moves to sidebar as expandable dropdowns
|
||||
- Active dropdown stays expanded (same click count as current tabs)
|
||||
- Page headers gain space for breadcrumbs and "Next Step" CTAs
|
||||
- Clean, consistent navigation pattern across all modules
|
||||
|
||||
---
|
||||
406
to-do-s/part2/dashboard_mods.md
Normal file
406
to-do-s/part2/dashboard_mods.md
Normal file
@@ -0,0 +1,406 @@
|
||||
# Section 1: Dashboard - Audit & Action Plan
|
||||
|
||||
**Date:** December 27, 2025
|
||||
**Status:** Finalized for Implementation (To be done LAST after all other sections complete)
|
||||
**Scope:** Main dashboard page - metrics, workflow visualization, quick actions
|
||||
|
||||
---
|
||||
|
||||
## 1.1 Current Functionality
|
||||
|
||||
**Route:** `/`
|
||||
**Files:** `pages/Dashboard/Home.tsx`, `components/dashboard/*`
|
||||
|
||||
### What Dashboard Currently Shows
|
||||
|
||||
- **Workflow Progress:** 6-step pipeline visualization (Sites → Keywords → Clusters → Ideas → Content → Published)
|
||||
- **Quick Actions:** 5 navigation shortcuts
|
||||
- **Key Metrics:** 4 cards (Keywords, Articles, Images, Completion %)
|
||||
- **Credit Usage:** Monthly allowance and usage bar
|
||||
- **Workflow Modules Guide:** 8 info cards explaining modules
|
||||
- **Onboarding:** Site creation wizard for new users
|
||||
|
||||
---
|
||||
|
||||
## 1.2 Critical Gaps
|
||||
|
||||
| # | Issue | Impact | Priority |
|
||||
|---|-------|--------|----------|
|
||||
| 1 | No aggregated API endpoint | Performance - makes 6+ sequential API calls with 120ms delays | 🔴 Critical |
|
||||
| 2 | Published content count incorrect | Data accuracy - cannot distinguish published vs draft | 🔴 Critical |
|
||||
| 3 | Usage Summary is hardcoded | Misleading - shows fake "547 credits / $0.34" data | 🔴 Critical |
|
||||
| 4 | Recent Activity is hardcoded | Misleading - static mock activity that never updates | 🔴 Critical |
|
||||
| 5 | No real-time updates | Stale data - only refreshes on manual action | High |
|
||||
|
||||
---
|
||||
|
||||
## 1.3 Missing Professional Features
|
||||
|
||||
| # | Feature | Why Important | Priority |
|
||||
|---|---------|---------------|----------|
|
||||
| 6 | Needs Attention section | Users don't know what requires action | High |
|
||||
| 7 | Recent content activity | No real list of recently created/published content | High |
|
||||
| 8 | Error/warning alerts | No indication of failed syncs, low credits, config issues | High |
|
||||
| 9 | Pipeline queue depth | No visibility into items waiting at each stage | Medium |
|
||||
| 10 | Automation status | No run status, last run time, or items processed | Medium |
|
||||
| 11 | Site health/sync status | No WordPress sync health indicator | Medium |
|
||||
|
||||
---
|
||||
|
||||
## 1.4 Workflow Issues
|
||||
|
||||
| # | Issue | Priority |
|
||||
|---|-------|----------|
|
||||
| 12 | Quick Actions don't adapt to user state | Medium - shows same 5 actions regardless of workflow stage |
|
||||
| 13 | Workflow Completion % is misleading | Medium - formula doesn't reflect real content-from-keywords ratio |
|
||||
| 14 | Modules Guide not dismissible | Low - 8 large cards always shown, no way to hide |
|
||||
| 15 | Chart widget code exists but unused | Low - dead code, no trend visualization |
|
||||
|
||||
---
|
||||
|
||||
## 1.5 Issues to Address
|
||||
|
||||
### Critical (Must Fix)
|
||||
|
||||
| # | Issue | Action |
|
||||
|---|-------|--------|
|
||||
| 1 | No aggregated API endpoint | Create `/v1/dashboard/summary/` endpoint that returns all dashboard data in single call |
|
||||
| 2 | Published content count incorrect | Fix query to separate published vs draft status |
|
||||
| 3 | Usage Summary is hardcoded | Replace with real billing data from billingStore |
|
||||
| 4 | Recent Activity is hardcoded | Implement real activity log OR remove section entirely |
|
||||
|
||||
### High Priority
|
||||
|
||||
| # | Issue | Action |
|
||||
|---|-------|--------|
|
||||
| 5 | No real-time updates | Add polling or websocket for live updates |
|
||||
| 6 | No "Needs Attention" section | Add widget showing: pending reviews, failed syncs, low credits, incomplete setup |
|
||||
| 7 | No recent content activity | Show real list of recently created/updated content |
|
||||
| 8 | No error/warning alerts | Display alerts for: failed WordPress syncs, approaching limits, config issues |
|
||||
|
||||
### Medium Priority
|
||||
|
||||
| # | Issue | Action |
|
||||
|---|-------|--------|
|
||||
| 9 | No pipeline queue depth | Show count of items at each workflow stage |
|
||||
| 10 | No automation status | Display: last run time, items processed, next scheduled run |
|
||||
| 11 | No site health indicator | Show WordPress connection status per site |
|
||||
| 12 | Quick Actions don't adapt | Make contextual based on user's workflow state |
|
||||
| 13 | Completion % misleading | Revise formula to reflect actual workflow progress |
|
||||
|
||||
### Low Priority
|
||||
|
||||
| # | Issue | Action |
|
||||
|---|-------|--------|
|
||||
| 14 | Modules Guide not dismissible | Add dismiss/hide option, remember preference |
|
||||
| 15 | Dead chart widget code | Either implement trend visualization or remove dead code |
|
||||
|
||||
---
|
||||
|
||||
## 1.6 Dashboard Revamp Specification
|
||||
|
||||
### New Dashboard Layout
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||
│ DASHBOARD │
|
||||
├─────────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ NEEDS ATTENTION (if any) │ │
|
||||
│ │ ⚠ 3 content pieces pending review [View →] │ │
|
||||
│ │ ⚠ WordPress sync failed for Site A [Retry] [Fix] │ │
|
||||
│ │ ⚠ Credit usage at 85% [Upgrade →] │ │
|
||||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
||||
│ │ Keywords │ │ Articles │ │ Images │ │ Completion │ │
|
||||
│ │ 156 │ │ 43 │ │ 127 │ │ 68% │ │
|
||||
│ │ +12 this mo │ │ +8 this mo │ │ +24 this mo │ │ ↑ from 52% │ │
|
||||
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ WORKFLOW PIPELINE │ │
|
||||
│ │ Sites(2) → Keywords(156) → Clusters(23) → Ideas(67) → Content(43) → Published(38) │
|
||||
│ │ ✓ ✓ ✓ 12 pending 5 pending │ │
|
||||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌────────────────────────────┐ ┌────────────────────────────────────┐ │
|
||||
│ │ CONTENT USAGE │ │ QUICK ACTIONS │ │
|
||||
│ │ ████████████░░░░ 68/100 │ │ [+ Add Keywords] │ │
|
||||
│ │ 68 used this month │ │ [Generate Content] ← contextual │ │
|
||||
│ │ Resets in 12 days │ │ [Review Drafts] (5) │ │
|
||||
│ └────────────────────────────┘ │ [View Published] │ │
|
||||
│ └────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ RECENT ACTIVITY │ │
|
||||
│ │ • Generated 5 articles from "Product Reviews" cluster 2 hours ago │ │
|
||||
│ │ • Published "Best Running Shoes 2025" to Site A 3 hours ago │ │
|
||||
│ │ • Created 12 ideas from keyword clustering Yesterday │ │
|
||||
│ │ • Automation run completed: 8 articles generated Yesterday │ │
|
||||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ AUTOMATION STATUS │ │
|
||||
│ │ Status: ● Active Last run: 2 hours ago Next: Tomorrow 9:00 AM │ │
|
||||
│ │ Last run: Processed 15 keywords → 3 clusters → 12 ideas → 8 articles │ │
|
||||
│ └─────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Dashboard Components
|
||||
|
||||
| Component | Purpose | Data Source |
|
||||
|-----------|---------|-------------|
|
||||
| Needs Attention | Actionable alerts requiring user action | Aggregated from all modules |
|
||||
| Key Metrics | Overview counts | Aggregated API endpoint |
|
||||
| Workflow Pipeline | Visual progress through stages | Aggregated API endpoint |
|
||||
| Content Usage | Credit/content piece usage | billingStore (single source of truth) |
|
||||
| Quick Actions | Contextual navigation shortcuts | Based on workflow state |
|
||||
| Recent Activity | Real activity log | Activity tracking system |
|
||||
| Automation Status | Automation module summary | Automation service |
|
||||
|
||||
---
|
||||
|
||||
## 1.7 Aggregated API Endpoint
|
||||
|
||||
### Endpoint: `GET /v1/dashboard/summary/`
|
||||
|
||||
**Response Structure:**
|
||||
```json
|
||||
{
|
||||
"metrics": {
|
||||
"keywords_total": 156,
|
||||
"keywords_this_month": 12,
|
||||
"articles_total": 43,
|
||||
"articles_this_month": 8,
|
||||
"articles_draft": 5,
|
||||
"articles_published": 38,
|
||||
"images_total": 127,
|
||||
"images_this_month": 24,
|
||||
"completion_percentage": 68
|
||||
},
|
||||
"pipeline": {
|
||||
"sites": 2,
|
||||
"keywords": 156,
|
||||
"clusters": 23,
|
||||
"ideas": 67,
|
||||
"ideas_pending": 12,
|
||||
"content": 43,
|
||||
"content_pending": 5,
|
||||
"published": 38
|
||||
},
|
||||
"usage": {
|
||||
"credits_used": 68,
|
||||
"credits_total": 100,
|
||||
"reset_days": 12
|
||||
},
|
||||
"alerts": [
|
||||
{
|
||||
"type": "pending_review",
|
||||
"message": "3 content pieces pending review",
|
||||
"action_url": "/writer/review",
|
||||
"action_label": "View"
|
||||
},
|
||||
{
|
||||
"type": "sync_failed",
|
||||
"message": "WordPress sync failed for Site A",
|
||||
"action_url": "/sites/1/settings",
|
||||
"action_label": "Fix"
|
||||
}
|
||||
],
|
||||
"recent_activity": [
|
||||
{
|
||||
"type": "content_generated",
|
||||
"message": "Generated 5 articles from 'Product Reviews' cluster",
|
||||
"timestamp": "2025-12-27T10:30:00Z"
|
||||
}
|
||||
],
|
||||
"automation": {
|
||||
"status": "active",
|
||||
"last_run": "2025-12-27T08:00:00Z",
|
||||
"next_run": "2025-12-28T09:00:00Z",
|
||||
"last_run_summary": "15 keywords → 3 clusters → 12 ideas → 8 articles"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 1.8 "Needs Attention" Widget Specification
|
||||
|
||||
### Alert Types
|
||||
|
||||
| Type | Trigger | Message | Action |
|
||||
|------|---------|---------|--------|
|
||||
| `pending_review` | Content in review status > 0 | "X content pieces pending review" | Link to Writer > Review |
|
||||
| `sync_failed` | WordPress sync error | "WordPress sync failed for [Site]" | Link to Site Settings |
|
||||
| `low_credits` | Usage > 80% | "Credit usage at X%" | Link to Upgrade |
|
||||
| `credits_exhausted` | Usage = 100% | "Monthly content limit reached" | Link to Upgrade |
|
||||
| `setup_incomplete` | Setup checklist incomplete | "Complete your setup" | Link to incomplete item |
|
||||
| `automation_failed` | Last automation run had errors | "Automation encountered errors" | Link to Automation |
|
||||
|
||||
### Display Rules
|
||||
|
||||
- Show maximum 3-4 alerts at a time
|
||||
- Prioritize by severity: errors > warnings > info
|
||||
- Dismissible alerts (remember dismissal for session)
|
||||
- Empty state: Hide section entirely when no alerts
|
||||
|
||||
---
|
||||
|
||||
## 1.9 Quick Actions - Contextual Logic
|
||||
|
||||
### Logic for Displaying Actions
|
||||
|
||||
```
|
||||
IF no sites exist:
|
||||
→ "Create Your First Site"
|
||||
|
||||
ELSE IF no keywords:
|
||||
→ "Add Keywords"
|
||||
|
||||
ELSE IF keywords but no clusters:
|
||||
→ "Cluster Keywords"
|
||||
|
||||
ELSE IF clusters but no ideas:
|
||||
→ "Generate Ideas"
|
||||
|
||||
ELSE IF ideas but no content:
|
||||
→ "Generate Content"
|
||||
|
||||
ELSE IF content in draft:
|
||||
→ "Review Drafts (X)"
|
||||
|
||||
ELSE IF content in review:
|
||||
→ "Publish Content (X)"
|
||||
|
||||
ALWAYS show:
|
||||
→ "View Published" (if any published)
|
||||
→ "Run Automation" (if automation configured)
|
||||
```
|
||||
|
||||
### Default Actions (Always Available)
|
||||
|
||||
- Add Keywords
|
||||
- View Planner
|
||||
- View Writer
|
||||
- Settings
|
||||
|
||||
---
|
||||
|
||||
## 1.10 Implementation Notes
|
||||
|
||||
### Data Flow
|
||||
|
||||
1. **On Dashboard Load:**
|
||||
- Single API call to `/v1/dashboard/summary/`
|
||||
- Populate all widgets from response
|
||||
- No sequential calls, no delays
|
||||
|
||||
2. **Real-time Updates (Optional):**
|
||||
- Poll every 60 seconds for updates
|
||||
- OR use WebSocket for push updates
|
||||
- Update only changed data
|
||||
|
||||
3. **Credit Usage:**
|
||||
- Use billingStore as single source of truth
|
||||
- Dashboard reads from store, doesn't fetch separately
|
||||
|
||||
### Performance Requirements
|
||||
|
||||
- Dashboard should load in < 2 seconds
|
||||
- Single API call instead of 6+ sequential calls
|
||||
- Lazy load Modules Guide (below fold)
|
||||
- Cache dashboard data for 30 seconds
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
### Total Issues
|
||||
|
||||
| Category | Critical | High | Medium | Low | Total |
|
||||
|----------|----------|------|--------|-----|-------|
|
||||
| Data Issues | 4 | 0 | 0 | 0 | 4 |
|
||||
| Missing Features | 0 | 4 | 4 | 0 | 8 |
|
||||
| UX Issues | 0 | 0 | 2 | 2 | 4 |
|
||||
| **TOTAL** | **4** | **4** | **6** | **2** | **16** |
|
||||
|
||||
---
|
||||
|
||||
### Critical Items (Must Fix)
|
||||
|
||||
1. Create aggregated dashboard API endpoint
|
||||
2. Fix published content count (distinguish published vs draft)
|
||||
3. Replace hardcoded usage summary with real data
|
||||
4. Replace hardcoded recent activity with real data OR remove
|
||||
|
||||
---
|
||||
|
||||
### High Priority Items
|
||||
|
||||
1. Add "Needs Attention" widget
|
||||
2. Implement real recent activity log
|
||||
3. Add error/warning alerts display
|
||||
4. Add real-time or polling updates
|
||||
|
||||
---
|
||||
|
||||
### Medium Priority Items
|
||||
|
||||
1. Show pipeline queue depth (items at each stage)
|
||||
2. Add automation status display
|
||||
3. Add site health/sync indicator
|
||||
4. Make Quick Actions contextual
|
||||
5. Fix completion percentage formula
|
||||
6. Integrate Setup Completion Checklist
|
||||
|
||||
---
|
||||
|
||||
### Files to Create
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `components/dashboard/NeedsAttention.tsx` | Alerts widget |
|
||||
| `components/dashboard/AutomationStatus.tsx` | Automation summary widget |
|
||||
| `components/dashboard/RecentActivity.tsx` | Real activity log |
|
||||
| Backend: `api/views/dashboard.py` | Aggregated endpoint |
|
||||
|
||||
---
|
||||
|
||||
### Files to Modify
|
||||
|
||||
| File | Changes |
|
||||
|------|---------|
|
||||
| `pages/Dashboard/Home.tsx` | Complete revamp with new layout |
|
||||
| `components/dashboard/CreditBalanceWidget.tsx` | Connect to billingStore single source |
|
||||
| `components/dashboard/WorkflowProgress.tsx` | Add queue depth indicators |
|
||||
| `components/dashboard/QuickActions.tsx` | Add contextual logic |
|
||||
| `components/dashboard/KeyMetrics.tsx` | Connect to aggregated API |
|
||||
|
||||
---
|
||||
|
||||
### Backend Work Required
|
||||
|
||||
| Area | Work |
|
||||
|------|------|
|
||||
| Aggregated API | Create `/v1/dashboard/summary/` endpoint |
|
||||
| Activity Logging | Ensure all actions are logged for activity feed |
|
||||
| Alert Aggregation | Collect alerts from all modules |
|
||||
| Pipeline Counts | Query for items at each workflow stage |
|
||||
|
||||
---
|
||||
|
||||
### Dependencies
|
||||
|
||||
**Dashboard should be implemented LAST because it depends on:**
|
||||
|
||||
- Section 2 (SETUP): Setup Completion Checklist
|
||||
- Section 3 (WORKFLOW): Pipeline data, activity logging
|
||||
- Section 4 (ACCOUNT): Credit balance single source of truth
|
||||
- Section 6 (Navigation): Consistent navigation patterns
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user