final docs for final audit implemenation
This commit is contained in:
380
.cursorrules
380
.cursorrules
@@ -1,380 +0,0 @@
|
|||||||
# IGNY8 Development Rules & Standards
|
|
||||||
|
|
||||||
**Project:** IGNY8 - AI-Powered Content Platform
|
|
||||||
**Version:** v1.0.0
|
|
||||||
**Last Updated:** December 12, 2025
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📋 General Development Principles
|
|
||||||
|
|
||||||
### 1. **Always Read Documentation First**
|
|
||||||
Before making changes, consult these critical docs:
|
|
||||||
- `ARCHITECTURE-KNOWLEDGE-BASE.md` - System architecture and design patterns
|
|
||||||
- `CHANGELOG.md` - Recent changes and version history
|
|
||||||
- `IGNY8-COMPLETE-FEATURES-GUIDE.md` - Complete feature set and capabilities
|
|
||||||
- `docs/00-SYSTEM/` - Core system architecture
|
|
||||||
- `docs/10-BACKEND/` - Backend models, services, APIs
|
|
||||||
- `docs/20-API/` - API endpoint documentation
|
|
||||||
- `docs/30-FRONTEND/` - Frontend components and architecture
|
|
||||||
- `docs/40-WORKFLOWS/` - Business workflows and processes
|
|
||||||
|
|
||||||
### 2. **Maintain Consistency**
|
|
||||||
- **API Design:** Follow existing RESTful patterns in `backend/igny8_core/*/views.py`
|
|
||||||
- **Models:** Use existing base classes (`SoftDeletableModel`, `AccountBaseModel`, `SiteSectorBaseModel`)
|
|
||||||
- **Services:** Follow service pattern in `backend/igny8_core/business/*/services/`
|
|
||||||
- **AI Functions:** Use AI framework in `backend/igny8_core/ai/` (not legacy `utils/ai_processor.py`)
|
|
||||||
- **Frontend Components:** Use existing component library in `frontend/src/components/`
|
|
||||||
- **Styling:** Use TailwindCSS classes, follow existing design system in `frontend/DESIGN_SYSTEM.md`
|
|
||||||
- **State Management:** Use Zustand stores in `frontend/src/store/`
|
|
||||||
|
|
||||||
### 3. **Multi-Tenancy Rules**
|
|
||||||
- **ALWAYS scope by account:** Every query must filter by account
|
|
||||||
- **Site/Sector scoping:** Use `SiteSectorBaseModel` for site-specific data
|
|
||||||
- **Permissions:** Check permissions via `IsAuthenticatedAndActive`, `HasTenantAccess`, role-based permissions
|
|
||||||
- **No cross-tenant access:** Validate account ownership before operations
|
|
||||||
|
|
||||||
### 4. **API Endpoint Rules**
|
|
||||||
- **Use existing API structure:** All user-facing endpoints under `/api/v1/<module>/`, admin endpoints under `/api/v1/<module>/admin/`
|
|
||||||
- **No parallel API systems:** Register all endpoints in module's `urls.py`, test via Swagger at `/api/docs/` before documenting
|
|
||||||
- **Document in Swagger:** Ensure drf-spectacular auto-generates docs; verify endpoint appears at `/api/docs/` and `/api/schema/`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📝 Change Management & Versioning
|
|
||||||
|
|
||||||
alwys udpated changelog with incremental updates, as fixed aded or modified for each version update, dotn remove or modify teh exsitng version changes
|
|
||||||
### Versioning Scheme: `v<MAJOR>.<MINOR>.<PATCH>`
|
|
||||||
|
|
||||||
**Example:** v1.2.5
|
|
||||||
- `MAJOR when asked` (1.x.x): Breaking changes, major features, architecture changes
|
|
||||||
- `MAJOR` (x.2.x): New features, modules, significant enhancements
|
|
||||||
- `MINOR/PATCH` (x.x.5): Bug fixes, small improvements, refactors
|
|
||||||
|
|
||||||
### Changelog Update Rules
|
|
||||||
|
|
||||||
#### **For EVERY Change:**
|
|
||||||
1. **Update version number** in `CHANGELOG.md`
|
|
||||||
2. **Increment PATCH** (v1.0.x → v1.0.1) for:
|
|
||||||
- Bug fixes
|
|
||||||
- Small improvements
|
|
||||||
- Code refactors
|
|
||||||
- Documentation updates
|
|
||||||
- UI/UX tweaks
|
|
||||||
|
|
||||||
3. **Increment MINOR** (v1.x.0 → v1.1.0) for:
|
|
||||||
- New features
|
|
||||||
- New API endpoints
|
|
||||||
- New components
|
|
||||||
- New services
|
|
||||||
- Significant enhancements
|
|
||||||
|
|
||||||
4. **Increment MAJOR** (vx.0.0 → v2.0.0) for:
|
|
||||||
- Breaking API changes
|
|
||||||
- Database schema breaking changes
|
|
||||||
- Architecture overhauls
|
|
||||||
- Major refactors affecting multiple modules
|
|
||||||
|
|
||||||
#### **Changelog Entry Format:**
|
|
||||||
```markdown
|
|
||||||
## v1.2.5 - December 12, 2025
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- User logout issue when switching accounts
|
|
||||||
- Payment confirmation modal amount display
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Updated session storage from database to Redis
|
|
||||||
- Enhanced credit balance widget UI
|
|
||||||
|
|
||||||
### Added
|
|
||||||
- Plan limits enforcement system
|
|
||||||
- Monthly reset task for usage tracking
|
|
||||||
```
|
|
||||||
|
|
||||||
### **For Major Refactors:**
|
|
||||||
1. **Create detailed TODO list** before starting
|
|
||||||
2. **Document current state** in CHANGELOG
|
|
||||||
3. **Create implementation checklist** (markdown file in root or docs/)
|
|
||||||
4. **Track progress** with checklist updates
|
|
||||||
5. **Test thoroughly** before committing
|
|
||||||
6. **Update CHANGELOG** with all changes made
|
|
||||||
7. **Update version** to next MINOR or MAJOR
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🏗️ Code Organization Standards
|
|
||||||
|
|
||||||
### Backend Structure
|
|
||||||
```
|
|
||||||
backend/igny8_core/
|
|
||||||
├── auth/ # Authentication, users, accounts, plans
|
|
||||||
├── business/ # Business logic services
|
|
||||||
│ ├── automation/ # Automation pipeline
|
|
||||||
│ ├── billing/ # Billing, credits, invoices
|
|
||||||
│ ├── content/ # Content generation
|
|
||||||
│ ├── integration/ # External integrations
|
|
||||||
│ ├── linking/ # Internal linking
|
|
||||||
│ ├── optimization/ # Content optimization
|
|
||||||
│ ├── planning/ # Keywords, clusters, ideas
|
|
||||||
│ └── publishing/ # WordPress publishing
|
|
||||||
├── ai/ # AI framework (NEW - use this)
|
|
||||||
├── utils/ # Utility functions
|
|
||||||
├── tasks/ # Celery tasks
|
|
||||||
└── modules/ # Legacy modules (being phased out)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Frontend Structure
|
|
||||||
```
|
|
||||||
frontend/src/
|
|
||||||
├── components/ # Reusable components
|
|
||||||
├── pages/ # Page components
|
|
||||||
├── store/ # Zustand state stores
|
|
||||||
├── services/ # API service layer
|
|
||||||
├── hooks/ # Custom React hooks
|
|
||||||
├── utils/ # Utility functions
|
|
||||||
├── types/ # TypeScript types
|
|
||||||
└── marketing/ # Marketing site
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔧 Development Workflow
|
|
||||||
|
|
||||||
### 1. **Planning Phase**
|
|
||||||
- [ ] Read relevant documentation
|
|
||||||
- [ ] Understand existing patterns
|
|
||||||
- [ ] Create TODO list for complex changes
|
|
||||||
- [ ] Identify affected components/modules
|
|
||||||
- [ ] Plan database changes (if any)
|
|
||||||
|
|
||||||
### 2. **Implementation Phase**
|
|
||||||
- [ ] Follow existing code patterns
|
|
||||||
- [ ] Use proper base classes and mixins
|
|
||||||
- [ ] Add proper error handling
|
|
||||||
- [ ] Validate input data
|
|
||||||
- [ ] Check permissions and scope
|
|
||||||
- [ ] Write clean, documented code
|
|
||||||
- [ ] Use type hints (Python) and TypeScript types
|
|
||||||
|
|
||||||
### 3. **Testing Phase**
|
|
||||||
- [ ] Test locally with development data
|
|
||||||
- [ ] Test multi-tenancy isolation
|
|
||||||
- [ ] Test permissions and access control
|
|
||||||
- [ ] Test error cases
|
|
||||||
- [ ] Verify no breaking changes
|
|
||||||
- [ ] Check frontend-backend integration
|
|
||||||
|
|
||||||
### 4. **Documentation Phase**
|
|
||||||
- [ ] Update CHANGELOG.md
|
|
||||||
- [ ] Update version number
|
|
||||||
- [ ] Update relevant docs (if architecture/API changes)
|
|
||||||
- [ ] Add code comments for complex logic
|
|
||||||
- [ ] Update API documentation (if endpoints changed)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🎯 Specific Development Rules
|
|
||||||
|
|
||||||
### Backend Development
|
|
||||||
|
|
||||||
#### **Models:**
|
|
||||||
```python
|
|
||||||
# ALWAYS inherit from proper base classes
|
|
||||||
from igny8_core.auth.models import SiteSectorBaseModel
|
|
||||||
|
|
||||||
class MyModel(SoftDeletableModel, SiteSectorBaseModel):
|
|
||||||
# Your fields here
|
|
||||||
pass
|
|
||||||
```
|
|
||||||
|
|
||||||
#### **Services:**
|
|
||||||
```python
|
|
||||||
# Follow service pattern
|
|
||||||
class MyService:
|
|
||||||
def __init__(self):
|
|
||||||
self.credit_service = CreditService()
|
|
||||||
self.limit_service = LimitService()
|
|
||||||
|
|
||||||
def my_operation(self, account, site, **kwargs):
|
|
||||||
# 1. Validate permissions
|
|
||||||
# 2. Check limits/credits
|
|
||||||
# 3. Perform operation
|
|
||||||
# 4. Track usage
|
|
||||||
# 5. Return result
|
|
||||||
pass
|
|
||||||
```
|
|
||||||
|
|
||||||
#### **API Views:**
|
|
||||||
```python
|
|
||||||
# Use proper permission classes
|
|
||||||
class MyViewSet(viewsets.ModelViewSet):
|
|
||||||
permission_classes = [IsAuthenticatedAndActive, HasTenantAccess]
|
|
||||||
|
|
||||||
def get_queryset(self):
|
|
||||||
# ALWAYS scope by account
|
|
||||||
return MyModel.objects.filter(
|
|
||||||
site__account=self.request.user.account
|
|
||||||
)
|
|
||||||
```
|
|
||||||
|
|
||||||
#### **Migrations:**
|
|
||||||
- Run `python manage.py makemigrations` after model changes
|
|
||||||
- Test migrations: `python manage.py migrate --plan`
|
|
||||||
- Never edit existing migrations
|
|
||||||
- Use data migrations for complex data changes
|
|
||||||
|
|
||||||
### Frontend Development
|
|
||||||
|
|
||||||
#### **Components:**
|
|
||||||
```typescript
|
|
||||||
// Use existing component library
|
|
||||||
import { Card } from '@/components/ui/card';
|
|
||||||
import Button from '@/components/ui/button/Button';
|
|
||||||
|
|
||||||
// Follow naming conventions
|
|
||||||
export default function MyComponent() {
|
|
||||||
// Component logic
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### **State Management:**
|
|
||||||
```typescript
|
|
||||||
// Use Zustand stores
|
|
||||||
import { useAuthStore } from '@/store/authStore';
|
|
||||||
|
|
||||||
const { user, account } = useAuthStore();
|
|
||||||
```
|
|
||||||
|
|
||||||
#### **API Calls:**
|
|
||||||
```typescript
|
|
||||||
// Use fetchAPI from services/api.ts
|
|
||||||
import { fetchAPI } from '@/services/api';
|
|
||||||
|
|
||||||
const data = await fetchAPI('/v1/my-endpoint/');
|
|
||||||
```
|
|
||||||
|
|
||||||
#### **Styling:**
|
|
||||||
```typescript
|
|
||||||
// Use TailwindCSS classes
|
|
||||||
<div className="p-6 bg-white dark:bg-gray-800 rounded-lg shadow">
|
|
||||||
<h1 className="text-2xl font-bold text-gray-900 dark:text-white">
|
|
||||||
My Heading
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🚫 Common Pitfalls to Avoid
|
|
||||||
|
|
||||||
### **DON'T:**
|
|
||||||
- ❌ Skip account scoping in queries
|
|
||||||
- ❌ Use legacy AI processor (`utils/ai_processor.py`) - use `ai/` framework
|
|
||||||
- ❌ Hardcode values - use settings or constants
|
|
||||||
- ❌ Forget error handling
|
|
||||||
- ❌ Skip permission checks
|
|
||||||
- ❌ Create duplicate components - reuse existing
|
|
||||||
- ❌ Use inline styles - use TailwindCSS
|
|
||||||
- ❌ Forget to update CHANGELOG
|
|
||||||
- ❌ Use workarounds - fix the root cause
|
|
||||||
- ❌ Skip migrations after model changes
|
|
||||||
|
|
||||||
### **DO:**
|
|
||||||
- ✅ Read documentation before coding
|
|
||||||
- ✅ Follow existing patterns
|
|
||||||
- ✅ Use proper base classes
|
|
||||||
- ✅ Check permissions and limits
|
|
||||||
- ✅ Handle errors gracefully
|
|
||||||
- ✅ Return valid errors, not fallbacks
|
|
||||||
- ✅ Update CHANGELOG for every change
|
|
||||||
- ✅ Test multi-tenancy isolation
|
|
||||||
- ✅ Use TypeScript types
|
|
||||||
- ✅ Write clean, documented code
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔍 Code Review Checklist
|
|
||||||
|
|
||||||
Before committing code, verify:
|
|
||||||
- [ ] Follows existing code patterns
|
|
||||||
- [ ] Properly scoped by account/site
|
|
||||||
- [ ] Permissions checked
|
|
||||||
- [ ] Error handling implemented
|
|
||||||
- [ ] No breaking changes
|
|
||||||
- [ ] CHANGELOG.md updated
|
|
||||||
- [ ] Version number incremented
|
|
||||||
- [ ] Documentation updated (if needed)
|
|
||||||
- [ ] Tested locally
|
|
||||||
- [ ] No console errors or warnings
|
|
||||||
- [ ] TypeScript types added/updated
|
|
||||||
- [ ] Migrations created (if model changes)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📚 Key Architecture Concepts
|
|
||||||
|
|
||||||
### **Credit System:**
|
|
||||||
- All AI operations cost credits
|
|
||||||
- Check credits before operation: `CreditService.check_credits()`
|
|
||||||
- Deduct after operation: `CreditService.deduct_credits()`
|
|
||||||
- Track in `CreditUsageLog` table
|
|
||||||
|
|
||||||
### **Limit System:**
|
|
||||||
- Hard limits: Persistent (sites, users, keywords, clusters)
|
|
||||||
- Monthly limits: Reset on billing cycle (ideas, words, images)
|
|
||||||
- Track in `PlanLimitUsage` table
|
|
||||||
- Check before operation: `LimitService.check_limit()`
|
|
||||||
|
|
||||||
### **AI Framework:**
|
|
||||||
- Use `ai/engine.py` for AI operations
|
|
||||||
- Use `ai/functions/` for specific AI tasks
|
|
||||||
- Use `ai/models.py` for tracking
|
|
||||||
- Don't use legacy `utils/ai_processor.py`
|
|
||||||
|
|
||||||
### **Multi-Tenancy:**
|
|
||||||
- Every request has `request.user.account`
|
|
||||||
- All models scope by account directly or via site
|
|
||||||
- Use `AccountBaseModel` or `SiteSectorBaseModel`
|
|
||||||
- Validate ownership before mutations
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🎨 Design System
|
|
||||||
|
|
||||||
### **Colors:**
|
|
||||||
- Primary: Blue (#0693e3)
|
|
||||||
- Success: Green (#0bbf87)
|
|
||||||
- Error: Red (#ef4444)
|
|
||||||
- Warning: Yellow (#f59e0b)
|
|
||||||
- Info: Blue (#3b82f6)
|
|
||||||
|
|
||||||
### **Typography:**
|
|
||||||
- Headings: font-bold
|
|
||||||
- Body: font-normal
|
|
||||||
- Small text: text-sm
|
|
||||||
- Large text: text-lg, text-xl, text-2xl
|
|
||||||
|
|
||||||
### **Spacing:**
|
|
||||||
- Padding: p-4, p-6 (standard)
|
|
||||||
- Margin: mt-4, mb-6 (standard)
|
|
||||||
- Gap: gap-4, gap-6 (standard)
|
|
||||||
|
|
||||||
### **Components:**
|
|
||||||
- Card: `<Card>` with padding and shadow
|
|
||||||
- Button: `<Button>` with variants (primary, secondary, danger)
|
|
||||||
- Input: `<Input>` with proper validation
|
|
||||||
- Badge: `<Badge>` with color variants
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📞 Support & Questions
|
|
||||||
|
|
||||||
- Architecture questions → Check `ARCHITECTURE-KNOWLEDGE-BASE.md`
|
|
||||||
- Feature questions → Check `IGNY8-COMPLETE-FEATURES-GUIDE.md`
|
|
||||||
- API questions → Check `docs/20-API/`
|
|
||||||
- Recent changes → Check `CHANGELOG.md`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Remember:** Quality over speed. Take time to understand existing patterns before implementing new features.
|
|
||||||
151
.rules
Normal file
151
.rules
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
# IGNY8 AI Agent Rules
|
||||||
|
|
||||||
|
**Version:** 1.1.0 | **Updated:** December 27, 2025
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Quick Start for AI Agents
|
||||||
|
|
||||||
|
**BEFORE any change, read these docs in order:**
|
||||||
|
1. [docs/INDEX.md](docs/INDEX.md) - Quick navigation to any module/feature
|
||||||
|
2. Module doc for the feature you're modifying (see INDEX.md for paths)
|
||||||
|
3. [CHANGELOG.md](CHANGELOG.md) - Recent changes and version history
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📁 Project Structure
|
||||||
|
|
||||||
|
| Layer | Path | Purpose |
|
||||||
|
|-------|------|---------|
|
||||||
|
| Backend | `backend/igny8_core/` | Django REST API |
|
||||||
|
| Frontend | `frontend/src/` | React + TypeScript SPA |
|
||||||
|
| Docs | `docs/` | Technical documentation |
|
||||||
|
| AI Engine | `backend/igny8_core/ai/` | AI functions (use this, NOT `utils/ai_processor.py`) |
|
||||||
|
|
||||||
|
**Module → File Quick Reference:** See [docs/INDEX.md](docs/INDEX.md#module--file-quick-reference)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐳 Docker Commands (IMPORTANT!)
|
||||||
|
|
||||||
|
**Container Names:**
|
||||||
|
| Container | Name | Purpose |
|
||||||
|
|-----------|------|---------|
|
||||||
|
| Backend | `igny8_backend` | Django API server |
|
||||||
|
| Frontend | `igny8_frontend` | React dev server |
|
||||||
|
| Celery Worker | `igny8_celery_worker` | Background tasks |
|
||||||
|
| Celery Beat | `igny8_celery_beat` | Scheduled tasks |
|
||||||
|
|
||||||
|
**Run commands INSIDE containers:**
|
||||||
|
```bash
|
||||||
|
# ✅ CORRECT - Run Django management commands
|
||||||
|
docker exec -it igny8_backend python manage.py migrate
|
||||||
|
docker exec -it igny8_backend python manage.py makemigrations
|
||||||
|
docker exec -it igny8_backend python manage.py shell
|
||||||
|
|
||||||
|
# ✅ CORRECT - Run npm commands
|
||||||
|
docker exec -it igny8_frontend npm install
|
||||||
|
docker exec -it igny8_frontend npm run build
|
||||||
|
|
||||||
|
# ✅ CORRECT - View logs
|
||||||
|
docker logs igny8_backend -f
|
||||||
|
docker logs igny8_celery_worker -f
|
||||||
|
|
||||||
|
# ❌ WRONG - Don't use docker-compose for commands
|
||||||
|
# docker-compose exec backend python manage.py migrate
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ Rules (One Line Each)
|
||||||
|
|
||||||
|
### Before Coding
|
||||||
|
1. **Read docs first** - Always read the relevant module doc from `docs/10-MODULES/` before changing code
|
||||||
|
2. **Check existing patterns** - Search codebase for similar implementations before creating new ones
|
||||||
|
3. **Use existing components** - Never duplicate; reuse components from `frontend/src/components/`
|
||||||
|
|
||||||
|
### During Coding
|
||||||
|
4. **Scope by account** - Every query must filter by `account` (use `AccountBaseModel` or `SiteSectorBaseModel`)
|
||||||
|
5. **Use AI framework** - Use `backend/igny8_core/ai/` for AI operations, NOT legacy `utils/ai_processor.py`
|
||||||
|
6. **Follow service pattern** - Business logic in `backend/igny8_core/business/*/services/`
|
||||||
|
7. **Check permissions** - Use `IsAuthenticatedAndActive`, `HasTenantAccess` in views
|
||||||
|
8. **Use TypeScript types** - All frontend code must be typed
|
||||||
|
9. **Use TailwindCSS** - No inline styles; follow `frontend/DESIGN_SYSTEM.md`
|
||||||
|
|
||||||
|
### After Coding
|
||||||
|
10. **Update CHANGELOG.md** - Every commit needs a changelog entry with git reference
|
||||||
|
11. **Increment version** - PATCH for fixes, MINOR for features, MAJOR for breaking changes
|
||||||
|
12. **Update docs** - If you changed APIs or architecture, update relevant docs in `docs/`
|
||||||
|
13. **Run migrations** - After model changes: `docker exec -it igny8_backend python manage.py makemigrations`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 Changelog Format
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
## v1.1.1 - December 27, 2025
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Description here (git: abc1234)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Description here (git: def5678)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Description here (git: ghi9012)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 Key Documentation
|
||||||
|
|
||||||
|
| I want to... | Go to |
|
||||||
|
|--------------|-------|
|
||||||
|
| Find any module | [docs/INDEX.md](docs/INDEX.md) |
|
||||||
|
| Understand architecture | [docs/00-SYSTEM/ARCHITECTURE.md](docs/00-SYSTEM/ARCHITECTURE.md) |
|
||||||
|
| Find an API endpoint | [docs/20-API/ENDPOINTS.md](docs/20-API/ENDPOINTS.md) |
|
||||||
|
| See all models | [docs/90-REFERENCE/MODELS.md](docs/90-REFERENCE/MODELS.md) |
|
||||||
|
| Understand AI functions | [docs/90-REFERENCE/AI-FUNCTIONS.md](docs/90-REFERENCE/AI-FUNCTIONS.md) |
|
||||||
|
| See frontend pages | [docs/30-FRONTEND/PAGES.md](docs/30-FRONTEND/PAGES.md) |
|
||||||
|
| See recent changes | [CHANGELOG.md](CHANGELOG.md) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚫 Don't Do
|
||||||
|
|
||||||
|
- ❌ Skip reading docs before coding
|
||||||
|
- ❌ Create duplicate components
|
||||||
|
- ❌ Use `docker-compose` for exec commands (use `docker exec`)
|
||||||
|
- ❌ Use legacy `utils/ai_processor.py`
|
||||||
|
- ❌ Skip account scoping in queries
|
||||||
|
- ❌ Forget to update CHANGELOG
|
||||||
|
- ❌ Use inline styles (use TailwindCSS)
|
||||||
|
- ❌ Hardcode values (use settings/constants)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📊 API Base URLs
|
||||||
|
|
||||||
|
| Module | Base URL |
|
||||||
|
|--------|----------|
|
||||||
|
| Auth | `/api/v1/auth/` |
|
||||||
|
| Planner | `/api/v1/planner/` |
|
||||||
|
| Writer | `/api/v1/writer/` |
|
||||||
|
| Billing | `/api/v1/billing/` |
|
||||||
|
| Integration | `/api/v1/integration/` |
|
||||||
|
| System | `/api/v1/system/` |
|
||||||
|
| Publisher | `/api/v1/publisher/` |
|
||||||
|
|
||||||
|
**API Docs:** http://localhost:8000/api/docs/
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 Quick Checklist Before Commit
|
||||||
|
|
||||||
|
- [ ] Read relevant module docs
|
||||||
|
- [ ] Used existing components/patterns
|
||||||
|
- [ ] Account scoped all queries
|
||||||
|
- [ ] Updated CHANGELOG.md with git reference
|
||||||
|
- [ ] Updated version number
|
||||||
|
- [ ] Ran migrations if model changed
|
||||||
|
- [ ] Tested locally
|
||||||
18
CHANGELOG.md
18
CHANGELOG.md
@@ -1,7 +1,7 @@
|
|||||||
# IGNY8 Change Log
|
# IGNY8 Change Log
|
||||||
|
|
||||||
**Current Version:** 1.1.0
|
**Current Version:** 1.1.1
|
||||||
**Last Updated:** December 25, 2025
|
**Last Updated:** December 27, 2025
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
| Version | Date | Summary |
|
| Version | Date | Summary |
|
||||||
|---------|------|---------|
|
|---------|------|---------|
|
||||||
|
| 1.1.1 | Dec 27, 2025 | Simplified AI agent rules file |
|
||||||
| 1.1.0 | Dec 25, 2025 | UX overhaul, page consolidation, pre-launch audit |
|
| 1.1.0 | Dec 25, 2025 | UX overhaul, page consolidation, pre-launch audit |
|
||||||
| 1.0.5 | Dec 12, 2025 | Purchase Credits tab, UI reorganization |
|
| 1.0.5 | Dec 12, 2025 | Purchase Credits tab, UI reorganization |
|
||||||
| 1.0.4 | Dec 12, 2025 | Credit Activity tab, Cost Reference panel |
|
| 1.0.4 | Dec 12, 2025 | Credit Activity tab, Cost Reference panel |
|
||||||
@@ -19,6 +20,19 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## v1.1.1 - December 27, 2025
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- **Rules File Overhaul**: Simplified `.rules` file for AI agents
|
||||||
|
- Reduced from 300+ lines to ~120 lines
|
||||||
|
- Added clear Docker container names and correct exec commands
|
||||||
|
- Added one-line rules format for quick reading
|
||||||
|
- Added quick reference table pointing to INDEX.md
|
||||||
|
- Removed verbose code examples (agents should read actual codebase)
|
||||||
|
- Added changelog format with git reference requirement
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## v1.1.0 - December 25, 2025
|
## v1.1.0 - December 25, 2025
|
||||||
|
|
||||||
### Major Changes
|
### Major Changes
|
||||||
|
|||||||
@@ -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