docs updated v1.2.0

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-27 23:27:07 +00:00
parent e0f3060df9
commit 28a60f8141
8 changed files with 380 additions and 29 deletions

View File

@@ -1,6 +1,6 @@
# IGNY8 Change Log
**Current Version:** 1.1.8
**Current Version:** 1.2.0
**Last Updated:** December 27, 2025
---
@@ -9,6 +9,8 @@
| Version | Date | Summary |
|---------|------|---------|
| 1.2.0 | Dec 27, 2025 | **Final Launch Release** - Notifications system, Dashboard widgets, ThreeWidgetFooter, UI polish |
| 1.1.9 | Dec 27, 2025 | UI improvements - PageContext, SearchModal, AppHeader/Layout updates |
| 1.1.8 | Dec 27, 2025 | Section 6 SIDEBAR restructure - Dropdowns, breadcrumbs, navigation cleanup |
| 1.1.7 | Dec 27, 2025 | Section 5 HELP module - Support links, Documentation, FAQ updates |
| 1.1.6 | Dec 27, 2025 | Section 4 ACCOUNT modules - Profile API, Password Change, Billing improvements |
@@ -27,6 +29,187 @@
---
## v1.2.0 - December 27, 2025
### Final Launch Release - Notifications, Dashboard, UI Polish
This release marks the final pre-launch state with comprehensive UI polish, real-time notifications, and dashboard overhaul.
**Backend: Notifications Module**
- **NEW MODULE**: `backend/igny8_core/business/notifications/`
- Models: `Notification`, `NotificationPreference`
- NotificationType choices: AI operations (cluster/ideas/content/images complete/failed), workflow events, WordPress sync, credits/billing, system
- Services: `NotificationService` for creating/managing notifications
- REST API: `/api/v1/notifications/` endpoints
- Registered in `settings.py` INSTALLED_APPS
- Added URL routing in `urls.py`
**Frontend: Notification System**
- **NEW STORE**: `notificationStore.ts` - Zustand store for notification management
- In-memory queue for optimistic UI
- API sync for persistent notifications
- Auto-dismissal with configurable timeout
- Read/unread state tracking
- Category-based filtering (ai_task, system, info)
- **NEW API SERVICE**: `notifications.api.ts`
- `fetchNotifications()`, `fetchUnreadCount()`
- `markNotificationRead()`, `markAllNotificationsRead()`
- `deleteNotification()`
- **UPDATED**: `NotificationDropdown.tsx` - Real notification integration
**Frontend: Dashboard Home Overhaul**
- **NEW WIDGETS** in `components/dashboard/`:
- `WorkflowPipelineWidget.tsx` - Visual flow: Sites → Keywords → Clusters → Ideas → Tasks → Drafts → Published
- `AIOperationsWidget.tsx` - Operation stats with time filter (7d/30d/90d)
- `RecentActivityWidget.tsx` - Activity feed with type icons
- `ContentVelocityWidget.tsx` - Week/Month/Total metrics table
- `AutomationStatusWidget.tsx` - Status, schedule, last/next run info
- `NeedsAttentionBar.tsx` - Alert bar for pending actions
- `QuickActionsWidget.tsx` - Quick action buttons
- `CreditAvailabilityWidget.tsx` - Credit balance display
- `OperationsCostsWidget.tsx` - Cost breakdown by operation type
- `SiteConfigWidget.tsx` - Site configuration status
- Updated `Home.tsx` to use new dashboard widgets with real data from APIs
**Frontend: ThreeWidgetFooter Component**
- **NEW COMPONENT**: `ThreeWidgetFooter.tsx` - 3-column footer for table pages
- Widget 1: Page Progress (metrics + progress bar)
- Widget 2: Module Stats (pipeline flow with arrows)
- Widget 3: Completion (tree structure for both modules)
- **NEW HOOK**: `useThreeWidgetFooter.ts` - Data preparation hook
- **IMPLEMENTED ON**: Keywords, Clusters, Ideas, Tasks, Content pages
**Frontend: Page Rename - Published → Approved**
- **RENAMED**: `Writer/Published.tsx``Writer/Approved.tsx`
- **RENAMED**: Config `published.config.tsx``approved.config.tsx`
- **ROUTE**: `/writer/approved` (legacy `/writer/published` redirects)
- Updated sidebar navigation label to "Approved"
**Frontend: Site Selectors**
- **NEW COMPONENTS**:
- `SingleSiteSelector.tsx` - Simple site dropdown
- `SiteWithAllSitesSelector.tsx` - Site selector with "All Sites" option
- Updated `SiteAndSectorSelector.tsx` for improved UX
- Enhanced `PageHeader.tsx` with badge props and breadcrumb support
**Backend: SiteSerializer Fixes**
- Fixed `has_integration` field to use `platform` field (not `integration_type`)
- Added missing serializer fields for frontend consumption
**Progress Modal Text Updates**
- Fixed placeholder "X" text in image prompt steps
- Improved step labels with actual counts when available
### Files Added
```
backend/igny8_core/business/notifications/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── serializers.py
├── services.py
├── urls.py
├── views.py
└── migrations/0001_initial.py
frontend/src/components/dashboard/
├── AIOperationsWidget.tsx
├── AutomationStatusWidget.tsx
├── ContentVelocityWidget.tsx
├── CreditAvailabilityWidget.tsx
├── NeedsAttentionBar.tsx
├── OperationsCostsWidget.tsx
├── QuickActionsWidget.tsx
├── RecentActivityWidget.tsx
├── SiteConfigWidget.tsx
├── ThreeWidgetFooter.tsx
└── WorkflowPipelineWidget.tsx
frontend/src/components/common/
├── SingleSiteSelector.tsx
└── SiteWithAllSitesSelector.tsx
frontend/src/hooks/useThreeWidgetFooter.ts
frontend/src/services/notifications.api.ts
frontend/src/store/notificationStore.ts
```
### Files Modified
- `backend/igny8_core/settings.py` - Added notifications to INSTALLED_APPS
- `backend/igny8_core/urls.py` - Added notifications URL routing
- `backend/igny8_core/auth/serializers.py` - Fixed SiteSerializer fields
- `backend/igny8_core/ai/engine.py` - Progress tracking updates
- `frontend/src/App.tsx` - Route updates for approved page
- `frontend/src/layout/AppHeader.tsx` - Dashboard context support
- `frontend/src/layout/AppLayout.tsx` - Layout improvements
- `frontend/src/layout/AppSidebar.tsx` - Navigation label updates
- `frontend/src/pages/Dashboard/Home.tsx` - Complete dashboard overhaul
- `frontend/src/pages/Writer/*.tsx` - ThreeWidgetFooter integration
- `frontend/src/pages/Planner/*.tsx` - ThreeWidgetFooter integration
- `frontend/src/components/common/ProgressModal.tsx` - Text fixes
- `frontend/src/components/common/SiteCard.tsx` - Setup checklist updates
- `frontend/src/config/pages/*.config.tsx` - Column/action updates
- `frontend/src/config/routes.config.ts` - Route updates
- `frontend/src/context/PageContext.tsx` - Enhanced page context
- `frontend/src/icons/index.ts` - New icon exports
---
## v1.1.9 - December 27, 2025
### UI Infrastructure & Polish
**PageContext System**
- **NEW**: `PageContext.tsx` - React context for page-level state management
- Provides site filter, sector filter state to nested components
- Enables AppHeader to access current page info
**Search Modal**
- **NEW**: `SearchModal.tsx` - Global search modal component
- Cmd+K / Ctrl+K keyboard shortcut
- Search across pages, content, keywords
**Header & Layout Updates**
- Enhanced `AppHeader.tsx`:
- Site filter integration
- Breadcrumb support
- Search modal trigger
- Improved responsive behavior
- Updated `AppLayout.tsx`:
- Better sidebar/content coordination
- Dark mode improvements
- Updated `AppSidebar.tsx`:
- Module dropdown improvements
- Active state indicators
**Table Template Improvements**
- Enhanced `TablePageTemplate.tsx`:
- Better filter UI
- Improved empty states
- Column configuration updates
- Updated page configs for consistency
**Style Updates**
- `igny8-colors.css` - Token refinements
- Dark mode consistency improvements
### Files Added
- `frontend/src/components/common/SearchModal.tsx`
- `frontend/src/context/PageContext.tsx`
- `docs/30-FRONTEND/PAGE-REQUIREMENTS.md`
### Files Modified
- `frontend/src/layout/AppHeader.tsx`
- `frontend/src/layout/AppLayout.tsx`
- `frontend/src/layout/AppSidebar.tsx`
- `frontend/src/templates/TablePageTemplate.tsx`
- `frontend/src/pages/Planner/*.tsx`
- `frontend/src/pages/Writer/*.tsx`
- `frontend/src/styles/igny8-colors.css`
---
## v1.1.8 - December 27, 2025
### Section 6 Sidebar & Navigation Restructure

View File

@@ -1,6 +1,7 @@
# System Architecture
**Last Verified:** December 25, 2025
**Last Verified:** December 27, 2025
**Version:** 1.2.0
**Backend Path:** `backend/igny8_core/`
**Frontend Path:** `frontend/src/`
@@ -114,6 +115,7 @@ backend/igny8_core/
│ ├── content/ # Content generation orchestration
│ ├── integration/ # Sync services
│ ├── linking/ # Link processing
│ ├── notifications/ # Notification system (v1.2.0)
│ ├── optimization/ # Content optimization
│ ├── planning/ # Clustering, idea generation
│ └── publishing/ # Publishing orchestration
@@ -142,7 +144,8 @@ frontend/src/
│ └── ...
├── services/
── api.ts # Main API service (2500+ lines)
── api.ts # Main API service (2500+ lines)
│ └── notifications.api.ts # Notification API (v1.2.0)
├── store/ # Zustand stores
│ ├── authStore.ts # Authentication state
@@ -150,6 +153,7 @@ frontend/src/
│ ├── sectorStore.ts # Active sector
│ ├── billingStore.ts # Billing state
│ ├── moduleStore.ts # Module enable/disable
│ ├── notificationStore.ts # Notifications (v1.2.0)
│ └── ...
├── pages/ # Route pages
@@ -164,12 +168,27 @@ frontend/src/
│ └── Auth/
├── components/ # Reusable components
│ ├── ProgressModal.tsx # AI progress display
│ ├── ConfirmDialog.tsx
└── ...
│ ├── common/
│ ├── ProgressModal.tsx # AI progress display
│ ├── SearchModal.tsx # Global search (v1.1.9)
│ │ └── ...
│ ├── dashboard/ # Dashboard widgets (v1.2.0)
│ │ ├── WorkflowPipelineWidget.tsx
│ │ ├── AIOperationsWidget.tsx
│ │ ├── RecentActivityWidget.tsx
│ │ ├── ContentVelocityWidget.tsx
│ │ ├── AutomationStatusWidget.tsx
│ │ ├── ThreeWidgetFooter.tsx
│ │ └── ...
│ └── header/
│ └── NotificationDropdown.tsx
├── context/ # React contexts (v1.1.9)
│ └── PageContext.tsx # Page-level state
├── layout/ # Layout components
│ ├── AppLayout.tsx
│ ├── AppHeader.tsx
│ └── AppSidebar.tsx
├── hooks/ # Custom hooks

View File

@@ -1,6 +1,7 @@
# Writer Module
**Last Verified:** December 25, 2025
**Last Verified:** December 27, 2025
**Version:** 1.2.0
**Status:** ✅ Active
**Backend Path:** `backend/igny8_core/modules/writer/`
**Frontend Path:** `frontend/src/pages/Writer/`
@@ -240,10 +241,11 @@ ContentIdeas → Tasks → Content → Images → Review → Publish
- Publish to WordPress
- Status management
### Draft/Review/Published Tabs
### Draft/Review/Approved Tabs
- Filtered views by status
- Different actions per status
- **v1.2.0**: "Published" tab renamed to "Approved"
---

View File

@@ -1,6 +1,7 @@
# API Endpoints Reference
**Last Verified:** December 25, 2025
**Last Verified:** December 27, 2025
**Version:** 1.2.0
**Base URL:** `/api/v1/`
**Documentation:** `/api/docs/` (Swagger) | `/api/redoc/` (ReDoc)
@@ -151,6 +152,54 @@ All endpoints require authentication unless noted.
---
## Notification Endpoints (`/api/v1/notifications/`) - v1.2.0
| Method | Path | Handler | Purpose |
|--------|------|---------|---------|
| GET | `/` | `NotificationViewSet.list` | List notifications (paginated) |
| GET | `/{id}/` | `NotificationViewSet.retrieve` | Get notification detail |
| DELETE | `/{id}/` | `NotificationViewSet.destroy` | Delete notification |
| POST | `/{id}/read/` | `NotificationViewSet.read` | Mark single notification as read |
| POST | `/read-all/` | `NotificationViewSet.read_all` | Mark all notifications as read |
| GET | `/unread-count/` | `NotificationViewSet.unread_count` | Get unread notification count |
**Query Parameters:**
- `?page=` - Page number for pagination
- `?page_size=` - Results per page (default 20)
- `?is_read=` - Filter by read status (true/false)
- `?notification_type=` - Filter by type (ai_task, system, credit, billing, integration, content, info)
**Notification Types:**
- `ai_cluster_complete`, `ai_cluster_failed` - Clustering operations
- `ai_ideas_complete`, `ai_ideas_failed` - Idea generation
- `ai_content_complete`, `ai_content_failed` - Content generation
- `ai_images_complete`, `ai_images_failed` - Image generation
- `ai_prompts_complete`, `ai_prompts_failed` - Image prompt generation
- `content_ready_review`, `content_published`, `content_publish_failed` - Workflow
- `wordpress_sync_success`, `wordpress_sync_failed` - WordPress sync
- `credits_low`, `credits_depleted` - Billing alerts
- `site_setup_complete`, `keywords_imported` - Setup
- `system_info` - System notifications
**Response Format:**
```json
{
"id": 1,
"notification_type": "ai_content_complete",
"severity": "success",
"title": "Content Generated",
"message": "Generated 5 articles successfully",
"is_read": false,
"created_at": "2025-12-27T12:00:00Z",
"read_at": null,
"action_label": "View Content",
"action_url": "/writer/content",
"metadata": {"count": 5, "credits": 250}
}
```
---
## Automation Endpoints (`/api/v1/automation/`)
| Method | Path | Handler | Purpose |

View File

@@ -1,5 +1,8 @@
# Page Requirements - Site & Sector Selectors
**Last Verified:** December 27, 2025
**Version:** 1.2.0
This document outlines all pages in the application and their requirements for site/sector selectors.
## Legend
@@ -28,8 +31,8 @@ This document outlines all pages in the application and their requirements for s
| Tasks | `/writer/tasks` | ✅ Required | ✅ Required | Filter tasks by site/sector | `{count} selected → Generate Content` OR `{ready} ready → Generate Content` |
| Content | `/writer/content` | ✅ Required | ✅ Required | Filter content by site/sector | `{count} selected → Generate Images` OR `{draft} drafts → Add Images` |
| Images | `/writer/images` | ✅ Required | ✅ Required | Filter images by site/sector | `{count} selected → Submit for Review` OR `{ready} ready → Submit for Review` |
| Review | `/writer/review` | ✅ Required | ✅ Required | Filter review items by site/sector | `{count} selected → Publish Selected` OR `{approved} approved → Publish All` |
| Published | `/writer/published` | ✅ Required | ✅ Required | Filter published items by site/sector | `{count} selected → Sync to WordPress` OR `View All Sites` |
| Review | `/writer/review` | ✅ Required | ✅ Required | Filter review items by site/sector | `{count} selected → Approve Selected` OR `{reviewed} reviewed → Approve All` |
| Approved | `/writer/approved` | ✅ Required | ✅ Required | Filter approved items by site/sector | `{count} selected → Sync to WordPress` OR `View All Sites` |
---
@@ -170,9 +173,9 @@ nextAction={selectedIds.length > 0 ? {
## Workflow Pipeline (Planner → Writer)
```
Keywords → Clusters → Ideas → Tasks → Content → Images → Review → Published
Keywords → Clusters → Ideas → Tasks → Content → Images → Review → Approved
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
Cluster Expand Create Generate Generate Submit Publish Sync to
Cluster Expand Create Generate Generate Submit Approve Sync to
Keywords Ideas Tasks Content Images Review Content WordPress
```

View File

@@ -1,7 +1,7 @@
# Frontend Pages & Routes
**Last Verified:** December 27, 2025
**Version:** 1.1.7
**Version:** 1.2.0
**Framework:** React 19 + TypeScript + React Router 6 + Vite
---
@@ -33,6 +33,20 @@ Routes defined in `/frontend/src/App.tsx`:
|-------|------|-------------|
| `/` | `Dashboard/Home.tsx` | Main dashboard with workflow pipeline, metrics, quick actions |
**v1.2.0 Dashboard Widgets:**
- `WorkflowPipelineWidget` - Visual flow: Sites → Keywords → Clusters → Ideas → Tasks → Drafts → Published
- `AIOperationsWidget` - Operation stats (clustering, ideas, content, images) with time filter (7d/30d/90d)
- `RecentActivityWidget` - Activity feed with type-specific icons
- `ContentVelocityWidget` - Week/Month/Total metrics table
- `AutomationStatusWidget` - Status, schedule, last/next run, run controls
- `NeedsAttentionBar` - Alert bar for pending actions requiring attention
- `QuickActionsWidget` - Quick action buttons for common tasks
**Data Sources:**
- Pipeline counts from actual API calls (keywords, clusters, ideas, tasks, content)
- AI operations derived from content creation totals
- Activity generated from real data with capped display values
---
## SETUP Routes
@@ -102,7 +116,12 @@ Routes defined in `/frontend/src/App.tsx`:
| `/writer/content/:id` | `Writer/ContentView.tsx` | Content detail view (read-only) | - |
| `/writer/images` | `Writer/Images.tsx` | Image management by content | Images |
| `/writer/review` | `Writer/Review.tsx` | Review queue (status=review) | Review |
| `/writer/published` | `Writer/Published.tsx` | Published content (status=published) | Published |
| `/writer/approved` | `Writer/Approved.tsx` | Approved content (status=approved/published) | Approved |
**v1.2.0 Changes:**
- Renamed "Published" to "Approved" page
- Legacy route `/writer/published` redirects to `/writer/approved`
- ThreeWidgetFooter added to Tasks, Content pages
### Automation
@@ -248,10 +267,7 @@ frontend/src/pages/
├── Dashboard/
│ └── Home.tsx
├── Help/
── HelpCenter.tsx
│ ├── Documentation.tsx # Placeholder
│ ├── SystemTesting.tsx # Placeholder
│ └── FunctionTesting.tsx # Placeholder
── Help.tsx # Main help page with docs, FAQ
├── Linker/
│ ├── Content.tsx
│ └── Dashboard.tsx # Not exposed
@@ -283,7 +299,7 @@ frontend/src/pages/
├── ContentView.tsx
├── Images.tsx
├── Review.tsx
└── Published.tsx
└── Approved.tsx # Renamed from Published.tsx (v1.2.0)
```
---
@@ -318,7 +334,7 @@ Dashboard
│ ├── Planner [if planner enabled]
│ │ └── In-page: Keywords → Clusters → Ideas
│ ├── Writer [if writer enabled]
│ │ └── In-page: Queue → Drafts → Images → Review → Published
│ │ └── In-page: Queue → Drafts → Images → Review → Approved
│ ├── Automation [if automation enabled]
│ ├── Linker [if linker enabled]
│ └── Optimizer [if optimizer enabled]

View File

@@ -1,6 +1,7 @@
# Zustand State Management
**Last Verified:** December 25, 2025
**Last Verified:** December 27, 2025
**Version:** 1.2.0
**Framework:** Zustand 4 with persist middleware
---
@@ -315,6 +316,80 @@ interface UIActions {
---
## Notification Store (`notificationStore.ts`) - v1.2.0
**Purpose:** In-app notifications for AI task completions and system events
```typescript
type NotificationType = 'success' | 'error' | 'warning' | 'info';
type NotificationCategory = 'ai_task' | 'system' | 'info';
interface Notification {
id: string;
apiId?: number; // Server ID for synced notifications
type: NotificationType;
category: NotificationCategory;
title: string;
message: string;
timestamp: Date;
read: boolean;
actionLabel?: string;
actionHref?: string;
metadata?: {
taskId?: string;
functionName?: string;
count?: number;
credits?: number;
};
}
interface NotificationStore {
notifications: Notification[];
unreadCount: number;
isLoading: boolean;
lastFetched: Date | null;
// Actions
addNotification(notification: Omit<Notification, 'id' | 'timestamp' | 'read'>): void;
markAsRead(id: string): void;
markAllAsRead(): void;
removeNotification(id: string): void;
clearAll(): void;
fetchFromAPI(): Promise<void>;
syncWithAPI(): Promise<void>;
}
```
**Features:**
- In-memory queue for optimistic UI updates
- API sync for persistent notifications
- Auto-dismissal with configurable timeout
- Read/unread state tracking
- Category-based filtering (ai_task, system, info)
**API Integration:** Uses `notifications.api.ts` service:
- `fetchNotifications()` - List with pagination
- `fetchUnreadCount()` - Unread count
- `markNotificationRead()` - Mark single as read
- `markAllNotificationsRead()` - Mark all as read
- `deleteNotification()` - Delete notification
**Usage:**
```typescript
const { notifications, unreadCount, addNotification, markAsRead } = useNotificationStore();
// Add AI task completion notification
addNotification({
type: 'success',
category: 'ai_task',
title: 'Content Generated',
message: 'Generated 5 articles successfully',
metadata: { count: 5, credits: 250 }
});
```
---
## Store Dependencies
```
@@ -329,6 +404,8 @@ authStore
├── automationStore (scoped to site)
└── integrationStore (scoped to site)
notificationStore (global, polls/syncs independently)
moduleStore (global, loads once per account)
billingStore (global, loads once per account)
uiStore (local only, no API)
@@ -345,6 +422,9 @@ frontend/src/store/
├── sectorStore.ts
├── moduleStore.ts
├── billingStore.ts
├── notificationStore.ts # v1.2.0
├── onboardingStore.ts
├── pageSizeStore.ts
├── plannerStore.ts
├── writerStore.ts
├── automationStore.ts

View File

@@ -1,7 +1,7 @@
# IGNY8 Technical Documentation
**Version:** 1.1.0
**Last Updated:** December 25, 2025
**Version:** 1.2.0
**Last Updated:** December 27, 2025
**Purpose:** Complete technical reference for the IGNY8 AI content platform
---
@@ -60,14 +60,13 @@
| Document | Purpose |
|----------|---------|
| [PAGES.md](30-FRONTEND/PAGES.md) | All pages and routes |
| [STORES.md](30-FRONTEND/STORES.md) | Zustand state management |
| [PAGES.md](30-FRONTEND/PAGES.md) | All pages and routes || [PAGE-REQUIREMENTS.md](30-FRONTEND/PAGE-REQUIREMENTS.md) | Site/sector selector requirements || [STORES.md](30-FRONTEND/STORES.md) | Zustand state management |
| [COMPONENTS.md](30-FRONTEND/COMPONENTS.md) | Key reusable components |
### Current Page Structure (v1.1.0)
### Current Page Structure (v1.2.0)
```
/ → Dashboard (Home.tsx)
/ → Dashboard (Home.tsx) - with new widgets
├── SETUP
│ /setup/add-keywords → Add Keywords (AddKeywords.tsx)
│ /account/content-settings → Content Settings (ContentSettingsPage.tsx)
@@ -83,7 +82,7 @@
│ /writer/drafts → Drafts (Drafts.tsx)
│ /writer/images → Images (Images.tsx)
│ /writer/review → Review (Review.tsx)
│ /writer/published → Published (Published.tsx)
│ /writer/approved Approved (Approved.tsx)
│ /automation → Automation Dashboard (Dashboard.tsx)
│ /linker/content → Linker [if enabled]
│ /optimizer/content → Optimizer [if enabled]