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 # IGNY8 Change Log
**Current Version:** 1.1.8 **Current Version:** 1.2.0
**Last Updated:** December 27, 2025 **Last Updated:** December 27, 2025
--- ---
@@ -9,6 +9,8 @@
| Version | Date | Summary | | 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.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.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 | | 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 ## v1.1.8 - December 27, 2025
### Section 6 Sidebar & Navigation Restructure ### Section 6 Sidebar & Navigation Restructure

View File

@@ -1,6 +1,7 @@
# System Architecture # System Architecture
**Last Verified:** December 25, 2025 **Last Verified:** December 27, 2025
**Version:** 1.2.0
**Backend Path:** `backend/igny8_core/` **Backend Path:** `backend/igny8_core/`
**Frontend Path:** `frontend/src/` **Frontend Path:** `frontend/src/`
@@ -114,6 +115,7 @@ backend/igny8_core/
│ ├── content/ # Content generation orchestration │ ├── content/ # Content generation orchestration
│ ├── integration/ # Sync services │ ├── integration/ # Sync services
│ ├── linking/ # Link processing │ ├── linking/ # Link processing
│ ├── notifications/ # Notification system (v1.2.0)
│ ├── optimization/ # Content optimization │ ├── optimization/ # Content optimization
│ ├── planning/ # Clustering, idea generation │ ├── planning/ # Clustering, idea generation
│ └── publishing/ # Publishing orchestration │ └── publishing/ # Publishing orchestration
@@ -142,7 +144,8 @@ frontend/src/
│ └── ... │ └── ...
├── services/ ├── 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 ├── store/ # Zustand stores
│ ├── authStore.ts # Authentication state │ ├── authStore.ts # Authentication state
@@ -150,6 +153,7 @@ frontend/src/
│ ├── sectorStore.ts # Active sector │ ├── sectorStore.ts # Active sector
│ ├── billingStore.ts # Billing state │ ├── billingStore.ts # Billing state
│ ├── moduleStore.ts # Module enable/disable │ ├── moduleStore.ts # Module enable/disable
│ ├── notificationStore.ts # Notifications (v1.2.0)
│ └── ... │ └── ...
├── pages/ # Route pages ├── pages/ # Route pages
@@ -164,12 +168,27 @@ frontend/src/
│ └── Auth/ │ └── Auth/
├── components/ # Reusable components ├── components/ # Reusable components
│ ├── ProgressModal.tsx # AI progress display │ ├── common/
│ ├── ConfirmDialog.tsx │ ├── 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 ├── layout/ # Layout components
│ ├── AppLayout.tsx │ ├── AppLayout.tsx
│ ├── AppHeader.tsx
│ └── AppSidebar.tsx │ └── AppSidebar.tsx
├── hooks/ # Custom hooks ├── hooks/ # Custom hooks

View File

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

View File

@@ -1,6 +1,7 @@
# API Endpoints Reference # API Endpoints Reference
**Last Verified:** December 25, 2025 **Last Verified:** December 27, 2025
**Version:** 1.2.0
**Base URL:** `/api/v1/` **Base URL:** `/api/v1/`
**Documentation:** `/api/docs/` (Swagger) | `/api/redoc/` (ReDoc) **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/`) ## Automation Endpoints (`/api/v1/automation/`)
| Method | Path | Handler | Purpose | | Method | Path | Handler | Purpose |

View File

@@ -1,5 +1,8 @@
# Page Requirements - Site & Sector Selectors # 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. This document outlines all pages in the application and their requirements for site/sector selectors.
## Legend ## 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` | | 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` | | 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` | | 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` | | Review | `/writer/review` | ✅ Required | ✅ Required | Filter review items by site/sector | `{count} selected → Approve Selected` OR `{reviewed} reviewed → Approve All` |
| Published | `/writer/published` | ✅ Required | ✅ Required | Filter published items by site/sector | `{count} selected → Sync to WordPress` OR `View All Sites` | | 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) ## 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 Keywords Ideas Tasks Content Images Review Content WordPress
``` ```

View File

@@ -1,7 +1,7 @@
# Frontend Pages & Routes # Frontend Pages & Routes
**Last Verified:** December 27, 2025 **Last Verified:** December 27, 2025
**Version:** 1.1.7 **Version:** 1.2.0
**Framework:** React 19 + TypeScript + React Router 6 + Vite **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 | | `/` | `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 ## 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/content/:id` | `Writer/ContentView.tsx` | Content detail view (read-only) | - |
| `/writer/images` | `Writer/Images.tsx` | Image management by content | Images | | `/writer/images` | `Writer/Images.tsx` | Image management by content | Images |
| `/writer/review` | `Writer/Review.tsx` | Review queue (status=review) | Review | | `/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 ### Automation
@@ -248,10 +267,7 @@ frontend/src/pages/
├── Dashboard/ ├── Dashboard/
│ └── Home.tsx │ └── Home.tsx
├── Help/ ├── Help/
── HelpCenter.tsx ── Help.tsx # Main help page with docs, FAQ
│ ├── Documentation.tsx # Placeholder
│ ├── SystemTesting.tsx # Placeholder
│ └── FunctionTesting.tsx # Placeholder
├── Linker/ ├── Linker/
│ ├── Content.tsx │ ├── Content.tsx
│ └── Dashboard.tsx # Not exposed │ └── Dashboard.tsx # Not exposed
@@ -283,7 +299,7 @@ frontend/src/pages/
├── ContentView.tsx ├── ContentView.tsx
├── Images.tsx ├── Images.tsx
├── Review.tsx ├── Review.tsx
└── Published.tsx └── Approved.tsx # Renamed from Published.tsx (v1.2.0)
``` ```
--- ---
@@ -318,7 +334,7 @@ Dashboard
│ ├── Planner [if planner enabled] │ ├── Planner [if planner enabled]
│ │ └── In-page: Keywords → Clusters → Ideas │ │ └── In-page: Keywords → Clusters → Ideas
│ ├── Writer [if writer enabled] │ ├── Writer [if writer enabled]
│ │ └── In-page: Queue → Drafts → Images → Review → Published │ │ └── In-page: Queue → Drafts → Images → Review → Approved
│ ├── Automation [if automation enabled] │ ├── Automation [if automation enabled]
│ ├── Linker [if linker enabled] │ ├── Linker [if linker enabled]
│ └── Optimizer [if optimizer enabled] │ └── Optimizer [if optimizer enabled]

View File

@@ -1,6 +1,7 @@
# Zustand State Management # Zustand State Management
**Last Verified:** December 25, 2025 **Last Verified:** December 27, 2025
**Version:** 1.2.0
**Framework:** Zustand 4 with persist middleware **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 ## Store Dependencies
``` ```
@@ -329,6 +404,8 @@ authStore
├── automationStore (scoped to site) ├── automationStore (scoped to site)
└── integrationStore (scoped to site) └── integrationStore (scoped to site)
notificationStore (global, polls/syncs independently)
moduleStore (global, loads once per account) moduleStore (global, loads once per account)
billingStore (global, loads once per account) billingStore (global, loads once per account)
uiStore (local only, no API) uiStore (local only, no API)
@@ -345,6 +422,9 @@ frontend/src/store/
├── sectorStore.ts ├── sectorStore.ts
├── moduleStore.ts ├── moduleStore.ts
├── billingStore.ts ├── billingStore.ts
├── notificationStore.ts # v1.2.0
├── onboardingStore.ts
├── pageSizeStore.ts
├── plannerStore.ts ├── plannerStore.ts
├── writerStore.ts ├── writerStore.ts
├── automationStore.ts ├── automationStore.ts

View File

@@ -1,7 +1,7 @@
# IGNY8 Technical Documentation # IGNY8 Technical Documentation
**Version:** 1.1.0 **Version:** 1.2.0
**Last Updated:** December 25, 2025 **Last Updated:** December 27, 2025
**Purpose:** Complete technical reference for the IGNY8 AI content platform **Purpose:** Complete technical reference for the IGNY8 AI content platform
--- ---
@@ -60,14 +60,13 @@
| Document | Purpose | | Document | Purpose |
|----------|---------| |----------|---------|
| [PAGES.md](30-FRONTEND/PAGES.md) | All pages and routes | | [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 |
| [STORES.md](30-FRONTEND/STORES.md) | Zustand state management |
| [COMPONENTS.md](30-FRONTEND/COMPONENTS.md) | Key reusable components | | [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
│ /setup/add-keywords → Add Keywords (AddKeywords.tsx) │ /setup/add-keywords → Add Keywords (AddKeywords.tsx)
│ /account/content-settings → Content Settings (ContentSettingsPage.tsx) │ /account/content-settings → Content Settings (ContentSettingsPage.tsx)
@@ -83,7 +82,7 @@
│ /writer/drafts → Drafts (Drafts.tsx) │ /writer/drafts → Drafts (Drafts.tsx)
│ /writer/images → Images (Images.tsx) │ /writer/images → Images (Images.tsx)
│ /writer/review → Review (Review.tsx) │ /writer/review → Review (Review.tsx)
│ /writer/published → Published (Published.tsx) │ /writer/approved Approved (Approved.tsx)
│ /automation → Automation Dashboard (Dashboard.tsx) │ /automation → Automation Dashboard (Dashboard.tsx)
│ /linker/content → Linker [if enabled] │ /linker/content → Linker [if enabled]
│ /optimizer/content → Optimizer [if enabled] │ /optimizer/content → Optimizer [if enabled]