iamges udpae and swagger fixes
@@ -23,11 +23,11 @@ class SystemSettingsSerializer(serializers.ModelSerializer):
|
|||||||
class AccountSettingsSerializer(serializers.ModelSerializer):
|
class AccountSettingsSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = AccountSettings
|
model = AccountSettings
|
||||||
fields = ['id', 'key', 'config', 'is_active', 'created_at', 'updated_at']
|
fields = ['id', 'key', 'value', 'created_at', 'updated_at']
|
||||||
read_only_fields = ['created_at', 'updated_at', 'account']
|
read_only_fields = ['created_at', 'updated_at', 'account']
|
||||||
|
|
||||||
def validate_config(self, value):
|
def validate_value(self, value):
|
||||||
"""Validate config against schema if schema exists"""
|
"""Validate value against schema if schema exists"""
|
||||||
if self.instance:
|
if self.instance:
|
||||||
validate_settings_schema(self.instance.key, value)
|
validate_settings_schema(self.instance.key, value)
|
||||||
return value
|
return value
|
||||||
@@ -49,14 +49,8 @@ class UserSettingsSerializer(serializers.ModelSerializer):
|
|||||||
class ModuleSettingsSerializer(serializers.ModelSerializer):
|
class ModuleSettingsSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ModuleSettings
|
model = ModuleSettings
|
||||||
fields = ['id', 'module_name', 'key', 'config', 'is_active', 'created_at', 'updated_at']
|
fields = ['id', 'module_name', 'key', 'is_active', 'created_at', 'updated_at']
|
||||||
read_only_fields = ['created_at', 'updated_at', 'account']
|
read_only_fields = ['created_at', 'updated_at', 'account']
|
||||||
|
|
||||||
def validate_config(self, value):
|
|
||||||
"""Validate config against schema if schema exists"""
|
|
||||||
if self.instance:
|
|
||||||
validate_settings_schema(self.instance.key, value)
|
|
||||||
return value
|
|
||||||
|
|
||||||
|
|
||||||
# ModuleEnableSettingsSerializer is DEPRECATED - use GlobalModuleSettings instead
|
# ModuleEnableSettingsSerializer is DEPRECATED - use GlobalModuleSettings instead
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p style="text-align: center;">
|
<p style="text-align: center;">
|
||||||
<a href="{{ login_url }}" class="button">Go to Dashboard</a>
|
<a href="https://app.igny8.com/" class="button">Go to Dashboard</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>If you have any questions, our support team is here to help. {% if support_url %}<a href="{{ support_url }}">Visit our help center</a> or {% endif %}reply to this email.</p>
|
<p>If you have any questions, our support team is here to help. {% if support_url %}<a href="{{ support_url }}">Visit our help center</a> or {% endif %}reply to this email.</p>
|
||||||
|
|||||||
268
docs/00-SYSTEM/REPO-STRUCTURE.md
Normal file
@@ -0,0 +1,268 @@
|
|||||||
|
# Repository Structure (App Repo)
|
||||||
|
|
||||||
|
**Last Verified:** January 20, 2026
|
||||||
|
**Scope:** `/data/app/igny8` (app repo)
|
||||||
|
**Excluded from tree:** `.git/`, `node_modules/`, `dist/`, `staticfiles/`, `backups/`, `__pycache__/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Root
|
||||||
|
|
||||||
|
```
|
||||||
|
/data/app/igny8
|
||||||
|
├── backend/
|
||||||
|
├── docs/
|
||||||
|
├── frontend/
|
||||||
|
├── KW_DB/
|
||||||
|
├── plugins/
|
||||||
|
├── scripts/
|
||||||
|
├── .claude/
|
||||||
|
├── .gitignore
|
||||||
|
├── .rules
|
||||||
|
├── CHANGELOG.md
|
||||||
|
├── CLEANUP_SUMMARY_20260113.md
|
||||||
|
├── content_generation.md
|
||||||
|
├── docker-compose.app.yml
|
||||||
|
├── git-credential-helper.sh
|
||||||
|
├── idea_genration.md
|
||||||
|
├── last-session.md
|
||||||
|
├── README.md
|
||||||
|
└── test_routes.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Backend
|
||||||
|
|
||||||
|
```
|
||||||
|
backend/
|
||||||
|
├── igny8_core/
|
||||||
|
├── migrations/
|
||||||
|
├── logs/
|
||||||
|
├── scripts/
|
||||||
|
├── Dockerfile
|
||||||
|
├── container_startup.sh
|
||||||
|
├── create_groups.py
|
||||||
|
├── manage.py
|
||||||
|
├── requirements.txt
|
||||||
|
└── seed_keywords_import_template.csv
|
||||||
|
```
|
||||||
|
|
||||||
|
### Django App Core
|
||||||
|
|
||||||
|
```
|
||||||
|
backend/igny8_core/
|
||||||
|
├── admin/
|
||||||
|
├── ai/
|
||||||
|
├── api/
|
||||||
|
├── auth/
|
||||||
|
├── business/
|
||||||
|
├── common/
|
||||||
|
├── management/
|
||||||
|
├── middleware/
|
||||||
|
├── migrations/
|
||||||
|
├── modules/
|
||||||
|
├── plugins/
|
||||||
|
├── static/
|
||||||
|
├── tasks/
|
||||||
|
├── templates/
|
||||||
|
├── urls/
|
||||||
|
├── utils/
|
||||||
|
├── __init__.py
|
||||||
|
├── asgi.py
|
||||||
|
├── celery.py
|
||||||
|
├── settings.py
|
||||||
|
├── tasks.py
|
||||||
|
├── urls.py
|
||||||
|
└── wsgi.py
|
||||||
|
```
|
||||||
|
|
||||||
|
### Feature Modules
|
||||||
|
|
||||||
|
```
|
||||||
|
backend/igny8_core/modules/
|
||||||
|
├── billing/
|
||||||
|
├── integration/
|
||||||
|
├── linker/
|
||||||
|
├── optimizer/
|
||||||
|
├── planner/
|
||||||
|
├── publisher/
|
||||||
|
├── system/
|
||||||
|
└── writer/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Business Services
|
||||||
|
|
||||||
|
```
|
||||||
|
backend/igny8_core/business/
|
||||||
|
├── automation/
|
||||||
|
├── billing/
|
||||||
|
├── content/
|
||||||
|
├── integration/
|
||||||
|
├── linking/
|
||||||
|
├── notifications/
|
||||||
|
├── optimization/
|
||||||
|
├── planning/
|
||||||
|
└── publishing/
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Frontend
|
||||||
|
|
||||||
|
```
|
||||||
|
frontend/
|
||||||
|
├── public/
|
||||||
|
├── src/
|
||||||
|
├── audit-results/
|
||||||
|
├── eslint/
|
||||||
|
├── Caddyfile
|
||||||
|
├── Caddyfile.marketing
|
||||||
|
├── Dockerfile
|
||||||
|
├── Dockerfile.dev
|
||||||
|
├── Dockerfile.marketing
|
||||||
|
├── Dockerfile.marketing.dev
|
||||||
|
├── LICENSE.md
|
||||||
|
├── README.md
|
||||||
|
├── container_startup.sh
|
||||||
|
├── eslint.config.js
|
||||||
|
├── index.html
|
||||||
|
├── marketing.html
|
||||||
|
├── package.json
|
||||||
|
├── package-lock.json
|
||||||
|
├── postcss.config.js
|
||||||
|
├── tsconfig.app.json
|
||||||
|
├── tsconfig.json
|
||||||
|
├── tsconfig.node.json
|
||||||
|
├── vite.config.ts
|
||||||
|
└── vitest.config.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
### Frontend Source
|
||||||
|
|
||||||
|
```
|
||||||
|
frontend/src/
|
||||||
|
├── api/
|
||||||
|
├── components/
|
||||||
|
├── config/
|
||||||
|
├── constants/
|
||||||
|
├── context/
|
||||||
|
├── hooks/
|
||||||
|
├── icons/
|
||||||
|
├── layout/
|
||||||
|
├── marketing/
|
||||||
|
├── modules/
|
||||||
|
├── pages/
|
||||||
|
├── services/
|
||||||
|
├── store/
|
||||||
|
├── styles/
|
||||||
|
├── templates/
|
||||||
|
├── types/
|
||||||
|
├── utils/
|
||||||
|
├── App.tsx
|
||||||
|
├── main.tsx
|
||||||
|
├── svg.d.ts
|
||||||
|
└── vite-env.d.ts
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
```
|
||||||
|
docs/
|
||||||
|
├── 00-SYSTEM/
|
||||||
|
├── 10-MODULES/
|
||||||
|
├── 20-API/
|
||||||
|
├── 30-FRONTEND/
|
||||||
|
├── 40-WORKFLOWS/
|
||||||
|
├── 50-DEPLOYMENT/
|
||||||
|
├── 60-PLUGINS/
|
||||||
|
├── 90-REFERENCE/
|
||||||
|
├── audits/
|
||||||
|
├── plans/
|
||||||
|
├── FILTER_GUIDELINES.md
|
||||||
|
└── INDEX.md
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Plugins
|
||||||
|
|
||||||
|
```
|
||||||
|
plugins/
|
||||||
|
└── wordpress/
|
||||||
|
├── dist/
|
||||||
|
├── source/
|
||||||
|
│ └── igny8-wp-bridge/
|
||||||
|
│ ├── admin/
|
||||||
|
│ ├── data/
|
||||||
|
│ ├── docs/
|
||||||
|
│ ├── includes/
|
||||||
|
│ ├── languages/
|
||||||
|
│ ├── sync/
|
||||||
|
│ ├── templates/
|
||||||
|
│ ├── tests/
|
||||||
|
│ ├── igny8-bridge.php
|
||||||
|
│ └── uninstall.php
|
||||||
|
└── UI-REDESIGN-v1.2.0.md
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## KW_DB (Seed Keyword CSV Library)
|
||||||
|
|
||||||
|
Top-level categories and subcategories (CSV files omitted for brevity):
|
||||||
|
|
||||||
|
```
|
||||||
|
KW_DB/
|
||||||
|
├── Advertising_&_Media/
|
||||||
|
│ └── Printing_Services/
|
||||||
|
├── Apparel_&_Fashion/
|
||||||
|
│ ├── Jewelery/
|
||||||
|
│ ├── Menswear/
|
||||||
|
│ └── Womens_Wear/
|
||||||
|
├── Automotive/
|
||||||
|
│ ├── Car_Accessories/
|
||||||
|
│ ├── Cars_General/
|
||||||
|
│ └── Tyres_&_Wheels/
|
||||||
|
├── Beauty_&_Personal_Care/
|
||||||
|
│ ├── Haircare/
|
||||||
|
│ ├── Makeup_&_Cosmetics/
|
||||||
|
│ └── Skincare/
|
||||||
|
├── Finance_&_Insurance/
|
||||||
|
│ ├── Insurance/
|
||||||
|
│ ├── Investment_&_Weallth_Management/
|
||||||
|
│ └── Loans_&_Lending/
|
||||||
|
├── Food_&_Beverage/
|
||||||
|
│ ├── Food Delivery/
|
||||||
|
│ └── Restaurants/
|
||||||
|
├── HealthCare_Medical/
|
||||||
|
│ ├── Health_Practitioners/
|
||||||
|
│ ├── Massage_&_Therapy/
|
||||||
|
│ ├── Physiotherapy_Rehabilitation/
|
||||||
|
│ ├── Relaxation_Devices/
|
||||||
|
│ └── Wellness_&_Fitness/
|
||||||
|
├── Home_&_Garden/
|
||||||
|
│ ├── Bedding_&_Mattress/
|
||||||
|
│ ├── Furniture/
|
||||||
|
│ ├── Home_Decor/
|
||||||
|
│ └── Storage_&_Organization/
|
||||||
|
├── management/
|
||||||
|
├── Real_Estate_&_Construction/
|
||||||
|
└── Technology_&_IT_Services/
|
||||||
|
├── AI/
|
||||||
|
├── cloud_services/
|
||||||
|
├── DIgital_Marketing_&_SEO/
|
||||||
|
├── SAAS/
|
||||||
|
└── Web_Development_&_Design/
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Scripts
|
||||||
|
|
||||||
|
```
|
||||||
|
scripts/
|
||||||
|
└── package_app.sh
|
||||||
|
```
|
||||||
101
docs/30-FRONTEND/PAGE-AUDIT.md
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
# Frontend Page Audit (In Progress)
|
||||||
|
|
||||||
|
**Last Updated:** January 20, 2026
|
||||||
|
**Goal:** Verify each page’s functions, API usage, and flow consistency.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Audit Scope (Current Batch)
|
||||||
|
|
||||||
|
- Auth pages: Sign In, Sign Up, Forgot Password, Reset Password, Verify Email, Unsubscribe
|
||||||
|
- Payment page
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Auth Pages
|
||||||
|
|
||||||
|
### Sign In
|
||||||
|
|
||||||
|
- **Route:** `/signin`
|
||||||
|
- **File:** `frontend/src/pages/AuthPages/SignIn.tsx`
|
||||||
|
- **Components:** `PageMeta`, `AuthLayout`, `SignInForm`
|
||||||
|
- **API usage:** none in page (handled by `SignInForm`)
|
||||||
|
- **Notes:** Page is a wrapper; all auth logic is inside `SignInForm`.
|
||||||
|
|
||||||
|
### Sign Up
|
||||||
|
|
||||||
|
- **Route:** `/signup`
|
||||||
|
- **File:** `frontend/src/pages/AuthPages/SignUp.tsx`
|
||||||
|
- **Components:** `PageMeta`, `SignUpFormUnified`, `GridShape`
|
||||||
|
- **API usage:** `GET /v1/auth/plans/` (public) for plan list
|
||||||
|
- **Behavior:**
|
||||||
|
- Reads `plan` query param to preselect plan
|
||||||
|
- Defaults to first active plan if no match
|
||||||
|
- Sorts plans by price ascending
|
||||||
|
- **Notes:**
|
||||||
|
- Geo detection removed; country selected in form
|
||||||
|
- Payment selection deferred to `/account/plans`
|
||||||
|
|
||||||
|
### Forgot Password
|
||||||
|
|
||||||
|
- **Route:** `/forgot-password`
|
||||||
|
- **File:** `frontend/src/pages/AuthPages/ForgotPassword.tsx`
|
||||||
|
- **Components:** `PageMeta`, icons, local form
|
||||||
|
- **API usage:** `POST /v1/auth/password-reset/` with `{ email }`
|
||||||
|
- **Behavior:**
|
||||||
|
- Always shows success state to prevent email enumeration
|
||||||
|
|
||||||
|
### Reset Password
|
||||||
|
|
||||||
|
- **Route:** `/reset-password?token=...`
|
||||||
|
- **File:** `frontend/src/pages/AuthPages/ResetPassword.tsx`
|
||||||
|
- **Components:** `PageMeta`, icons, form
|
||||||
|
- **API usage:** `POST /v1/auth/password-reset/confirm/` with `{ token, new_password, new_password_confirm }`
|
||||||
|
- **Behavior:**
|
||||||
|
- If no `token`, redirects to `/forgot-password`
|
||||||
|
- Validates password strength client-side
|
||||||
|
- Handles expired/invalid token states
|
||||||
|
|
||||||
|
### Verify Email
|
||||||
|
|
||||||
|
- **Route:** `/verify-email?token=...`
|
||||||
|
- **File:** `frontend/src/pages/AuthPages/VerifyEmail.tsx`
|
||||||
|
- **Components:** `PageMeta`, icons
|
||||||
|
- **API usage:** `POST /v1/auth/users/verify_email/` with `{ token }`
|
||||||
|
- **Behavior:**
|
||||||
|
- Requires query param `token`
|
||||||
|
- Handles expired/invalid token state
|
||||||
|
|
||||||
|
### Unsubscribe
|
||||||
|
|
||||||
|
- **Route:** `/unsubscribe`
|
||||||
|
- **File:** `frontend/src/pages/AuthPages/Unsubscribe.tsx`
|
||||||
|
- **Components:** `PageMeta`, icons
|
||||||
|
- **Behavior:**
|
||||||
|
- Displays guidance and redirects to `/account/settings?tab=notifications` after 5 seconds
|
||||||
|
- Notes that transactional emails are not unsubscribable
|
||||||
|
- **Potential issue:** redirect requires auth; unauthenticated users will be sent to sign-in flow.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Payment Page
|
||||||
|
|
||||||
|
### Payment
|
||||||
|
|
||||||
|
- **Route:** `/payment`
|
||||||
|
- **File:** `frontend/src/pages/Payment.tsx`
|
||||||
|
- **Components:** `InputField`, `TextArea`, `Button`
|
||||||
|
- **Store usage:** `useAuthStore` for user/account plan
|
||||||
|
- **Behavior:**
|
||||||
|
- Reads `plan` from query string or current account plan
|
||||||
|
- Generates mailto for offline payment confirmation
|
||||||
|
- Redirects to `/pricing` if plan or user missing
|
||||||
|
- **Potential issue:** `/pricing` is not defined in `App.tsx` routes (may exist in marketing app).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Next Audit Batch
|
||||||
|
|
||||||
|
- Dashboard and core workflow pages
|
||||||
|
- Sites pages (dashboard, settings, sync, deployment)
|
||||||
|
- Planner and Writer pages
|
||||||
@@ -1,5 +1,357 @@
|
|||||||
# Frontend Pages & Routes
|
# Frontend Pages & Routes
|
||||||
|
|
||||||
|
**Last Verified:** January 20, 2026
|
||||||
|
**Version:** 1.8.3
|
||||||
|
**Framework:** React 19 + TypeScript + React Router 6 + Vite
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Route Configuration
|
||||||
|
|
||||||
|
Routes defined in `/frontend/src/App.tsx`:
|
||||||
|
- `ProtectedRoute` - requires authentication
|
||||||
|
- `AdminRoute` - requires staff/admin
|
||||||
|
- `AppLayout` - shared layout (sidebar + header)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Public Routes (No Auth Required)
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/signin` | `AuthPages/SignIn.tsx` | User login |
|
||||||
|
| `/signup` | `AuthPages/SignUp.tsx` | Account registration |
|
||||||
|
| `/signup/pk` | `AuthPages/SignUp.tsx` | Legacy route → main signup |
|
||||||
|
| `/payment` | `Payment.tsx` | Payment page |
|
||||||
|
| `/forgot-password` | `AuthPages/ForgotPassword.tsx` | Request password reset |
|
||||||
|
| `/reset-password` | `AuthPages/ResetPassword.tsx` | Set new password |
|
||||||
|
| `/verify-email` | `AuthPages/VerifyEmail.tsx` | Verify email |
|
||||||
|
| `/unsubscribe` | `AuthPages/Unsubscribe.tsx` | Email unsubscribe |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Legal Pages
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/privacy` | `legal/Privacy.tsx` | Privacy Policy |
|
||||||
|
| `/terms` | `legal/Terms.tsx` | Terms of Service |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dashboard
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/` | `Dashboard/Home.tsx` | Main dashboard with workflow widgets |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Setup & Keywords Library
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/setup/wizard` | `Setup/SetupWizard.tsx` | Onboarding wizard |
|
||||||
|
| `/keywords-library` | `Setup/IndustriesSectorsKeywords.tsx` | Keywords library (primary route) |
|
||||||
|
|
||||||
|
**Legacy redirects:**
|
||||||
|
- `/setup/add-keywords` → `/keywords-library`
|
||||||
|
- `/setup/industries-sectors-keywords` → `/keywords-library`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sites Management
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/sites` | `Sites/List.tsx` | Sites list |
|
||||||
|
| `/sites/:id` | `Sites/Dashboard.tsx` | Site dashboard |
|
||||||
|
| `/sites/:id/pages` | `Sites/PageManager.tsx` | Page manager |
|
||||||
|
| `/sites/:id/pages/new` | `Sites/PageManager.tsx` | New page (same manager) |
|
||||||
|
| `/sites/:id/pages/:pageId/edit` | `Sites/PageManager.tsx` | Edit page (same manager) |
|
||||||
|
| `/sites/:id/content` | `Sites/Content.tsx` | Site content overview |
|
||||||
|
| `/sites/:id/content/structure` | `Sites/ContentStructure.tsx` | Content structure |
|
||||||
|
| `/sites/:id/settings` | `Sites/Settings.tsx` | Site settings (tabs) |
|
||||||
|
| `/sites/:id/sync` | `Sites/SyncDashboard.tsx` | Sync dashboard |
|
||||||
|
| `/sites/:id/deploy` | `Sites/DeploymentPanel.tsx` | Deployment panel |
|
||||||
|
| `/sites/:id/posts/:postId` | `Sites/PostEditor.tsx` | Post editor |
|
||||||
|
| `/sites/:id/posts/:postId/edit` | `Sites/PostEditor.tsx` | Post editor (same view) |
|
||||||
|
|
||||||
|
**Legacy redirect:**
|
||||||
|
- `/sites/:id/publishing-queue` → `/publisher/content-calendar`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Planner
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/planner` | → `/planner/keywords` | Redirect |
|
||||||
|
| `/planner/keywords` | `Planner/Keywords.tsx` | Keyword management |
|
||||||
|
| `/planner/clusters` | `Planner/Clusters.tsx` | Cluster listing |
|
||||||
|
| `/planner/clusters/:id` | `Planner/ClusterDetail.tsx` | Cluster detail |
|
||||||
|
| `/planner/ideas` | `Planner/Ideas.tsx` | Content ideas |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Writer
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/writer` | → `/writer/tasks` | Redirect |
|
||||||
|
| `/writer/tasks` | `Writer/Tasks.tsx` | Task queue |
|
||||||
|
| `/writer/content` | `Writer/Content.tsx` | Content list |
|
||||||
|
| `/writer/content/:id` | `Writer/ContentView.tsx` | Content detail |
|
||||||
|
| `/writer/drafts` | → `/writer/content` | Legacy redirect |
|
||||||
|
| `/writer/images` | `Writer/Images.tsx` | Images by content |
|
||||||
|
| `/writer/review` | `Writer/Review.tsx` | Review queue |
|
||||||
|
| `/writer/approved` | `Writer/Approved.tsx` | Approved/published list |
|
||||||
|
| `/writer/published` | → `/writer/approved` | Legacy redirect |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Automation
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/automation` | → `/automation/overview` | Redirect |
|
||||||
|
| `/automation/overview` | `Automation/AutomationOverview.tsx` | Run history |
|
||||||
|
| `/automation/runs/:runId` | `Automation/AutomationRunDetail.tsx` | Run detail |
|
||||||
|
| `/automation/run` | `Automation/AutomationPage.tsx` | Run execution |
|
||||||
|
|
||||||
|
**Legacy redirect:**
|
||||||
|
- `/automation/settings` → `/sites/settings?tab=automation`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Publisher
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/publisher` | → `/publisher/content-calendar` | Redirect |
|
||||||
|
| `/publisher/content-calendar` | `Publisher/ContentCalendar.tsx` | Content calendar |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Linker (Optional)
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/linker` | → `/linker/content` | Redirect |
|
||||||
|
| `/linker/content` | `Linker/ContentList.tsx` | Linker content list |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Optimizer (Optional)
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/optimizer` | → `/optimizer/content` | Redirect |
|
||||||
|
| `/optimizer/content` | `Optimizer/ContentSelector.tsx` | Content selector |
|
||||||
|
| `/optimizer/analyze/:id` | `Optimizer/AnalysisPreview.tsx` | Analysis preview |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Thinker (Admin Only)
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/thinker` | → `/thinker/prompts` | Redirect |
|
||||||
|
| `/thinker/prompts` | `Thinker/Prompts.tsx` | Prompt management |
|
||||||
|
| `/thinker/author-profiles` | `Thinker/AuthorProfiles.tsx` | Author profiles |
|
||||||
|
| `/thinker/profile` | `Thinker/Profile.tsx` | Profile settings |
|
||||||
|
| `/thinker/strategies` | `Thinker/Strategies.tsx` | Strategies (placeholder) |
|
||||||
|
| `/thinker/image-testing` | `Thinker/ImageTesting.tsx` | Image testing (placeholder) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Billing
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/billing` | → `/billing/overview` | Redirect |
|
||||||
|
| `/billing/overview` | `Settings/CreditsAndBilling.tsx` | Billing overview |
|
||||||
|
| `/billing/credits` | `Billing/Credits.tsx` | Credits listing |
|
||||||
|
| `/billing/transactions` | `Billing/Transactions.tsx` | Transactions |
|
||||||
|
| `/billing/usage` | `Billing/Usage.tsx` | Usage |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Account
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/account/notifications` | `account/NotificationsPage.tsx` | Notifications |
|
||||||
|
| `/account/settings` | `account/AccountSettingsPage.tsx` | Account settings (tabs) |
|
||||||
|
| `/account/settings/profile` | `account/AccountSettingsPage.tsx` | Profile tab |
|
||||||
|
| `/account/settings/team` | `account/AccountSettingsPage.tsx` | Team tab |
|
||||||
|
| `/account/team` | → `/account/settings/team` | Legacy redirect |
|
||||||
|
| `/account/plans` | `account/PlansAndBillingPage.tsx` | Plans & billing |
|
||||||
|
| `/account/plans/upgrade` | `account/PlansAndBillingPage.tsx` | Upgrade tab |
|
||||||
|
| `/account/plans/history` | `account/PlansAndBillingPage.tsx` | History tab |
|
||||||
|
| `/account/purchase-credits` | → `/account/plans` | Legacy redirect |
|
||||||
|
| `/account/usage` | `account/UsageDashboardPage.tsx` | Usage dashboard |
|
||||||
|
| `/account/usage/logs` | → `/account/usage` | Legacy redirect |
|
||||||
|
| `/account/usage/credits` | → `/account/usage` | Legacy redirect |
|
||||||
|
| `/account/usage/insights` | → `/account/usage` | Legacy redirect |
|
||||||
|
| `/account/usage/activity` | → `/account/usage` | Legacy redirect |
|
||||||
|
| `/account/content-settings` | `account/ContentSettingsPage.tsx` | Content settings |
|
||||||
|
| `/account/content-settings/publishing` | `account/ContentSettingsPage.tsx` | Publishing tab |
|
||||||
|
| `/account/content-settings/images` | `account/ContentSettingsPage.tsx` | Images tab |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Reference Data
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/reference/seed-keywords` | `Reference/SeedKeywords.tsx` | Seed keywords |
|
||||||
|
| `/reference/industries` | `Reference/Industries.tsx` | Industries |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/settings` | `Settings/General.tsx` | General settings |
|
||||||
|
| `/settings/users` | `Settings/Users.tsx` | Users |
|
||||||
|
| `/settings/subscriptions` | `Settings/Subscriptions.tsx` | Subscriptions |
|
||||||
|
| `/settings/system` | `Settings/System.tsx` | System settings |
|
||||||
|
| `/settings/account` | `Settings/Account.tsx` | Account settings |
|
||||||
|
| `/settings/plans` | `Settings/Plans.tsx` | Plans |
|
||||||
|
| `/settings/industries` | `Settings/Industries.tsx` | Industries |
|
||||||
|
| `/settings/integration` | `Settings/Integration.tsx` | Integrations (admin only) |
|
||||||
|
| `/settings/publishing` | `Settings/Publishing.tsx` | Publishing settings |
|
||||||
|
| `/settings/sites` | `Settings/Sites.tsx` | Sites settings |
|
||||||
|
| `/settings/profile` | → `/account/settings` | Legacy redirect |
|
||||||
|
| `/settings/import-export` | → `/` | Legacy redirect |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Help
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/help` | `Help/Help.tsx` | Help center |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Internal Pages (Non-Indexed)
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `/components` | `Components.tsx` | Component showcase |
|
||||||
|
| `/ui-elements` | `UIElements.tsx` | Design system reference |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Fallback Route
|
||||||
|
|
||||||
|
| Route | File | Description |
|
||||||
|
|-------|------|-------------|
|
||||||
|
| `*` | `OtherPage/NotFound.tsx` | 404 page |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Page File Locations (Source of Truth)
|
||||||
|
|
||||||
|
```
|
||||||
|
frontend/src/pages/
|
||||||
|
├── account/
|
||||||
|
│ ├── AccountSettingsPage.tsx
|
||||||
|
│ ├── ContentSettingsPage.tsx
|
||||||
|
│ ├── NotificationsPage.tsx
|
||||||
|
│ ├── PlansAndBillingPage.tsx
|
||||||
|
│ ├── PurchaseCreditsPage.tsx
|
||||||
|
│ ├── UsageAnalyticsPage.tsx
|
||||||
|
│ └── UsageDashboardPage.tsx
|
||||||
|
├── AuthPages/
|
||||||
|
│ ├── AuthPageLayout.tsx
|
||||||
|
│ ├── ForgotPassword.tsx
|
||||||
|
│ ├── ResetPassword.tsx
|
||||||
|
│ ├── SignIn.tsx
|
||||||
|
│ ├── SignUp.tsx
|
||||||
|
│ ├── Unsubscribe.tsx
|
||||||
|
│ └── VerifyEmail.tsx
|
||||||
|
├── Automation/
|
||||||
|
│ ├── AutomationOverview.tsx
|
||||||
|
│ ├── AutomationPage.tsx
|
||||||
|
│ ├── AutomationRunDetail.tsx
|
||||||
|
│ └── PipelineSettings.tsx
|
||||||
|
├── Billing/
|
||||||
|
│ ├── Credits.tsx
|
||||||
|
│ ├── Transactions.tsx
|
||||||
|
│ └── Usage.tsx
|
||||||
|
├── Dashboard/
|
||||||
|
│ └── Home.tsx
|
||||||
|
├── Help/
|
||||||
|
│ └── Help.tsx
|
||||||
|
├── legal/
|
||||||
|
│ ├── Privacy.tsx
|
||||||
|
│ └── Terms.tsx
|
||||||
|
├── Linker/
|
||||||
|
│ └── ContentList.tsx
|
||||||
|
├── Optimizer/
|
||||||
|
│ ├── AnalysisPreview.tsx
|
||||||
|
│ └── ContentSelector.tsx
|
||||||
|
├── OtherPage/
|
||||||
|
│ └── NotFound.tsx
|
||||||
|
├── Planner/
|
||||||
|
│ ├── ClusterDetail.tsx
|
||||||
|
│ ├── Clusters.tsx
|
||||||
|
│ ├── Ideas.tsx
|
||||||
|
│ └── Keywords.tsx
|
||||||
|
├── Publisher/
|
||||||
|
│ └── ContentCalendar.tsx
|
||||||
|
├── Reference/
|
||||||
|
│ ├── Industries.tsx
|
||||||
|
│ └── SeedKeywords.tsx
|
||||||
|
├── Settings/
|
||||||
|
│ ├── Account.tsx
|
||||||
|
│ ├── CreditsAndBilling.tsx
|
||||||
|
│ ├── General.tsx
|
||||||
|
│ ├── Industries.tsx
|
||||||
|
│ ├── Integration.tsx
|
||||||
|
│ ├── Plans.tsx
|
||||||
|
│ ├── Publishing.tsx
|
||||||
|
│ ├── Sites.tsx
|
||||||
|
│ ├── Subscriptions.tsx
|
||||||
|
│ ├── System.tsx
|
||||||
|
│ └── Users.tsx
|
||||||
|
├── Setup/
|
||||||
|
│ ├── IndustriesSectorsKeywords.tsx
|
||||||
|
│ └── SetupWizard.tsx
|
||||||
|
├── Sites/
|
||||||
|
│ ├── AIAutomationSettings.tsx
|
||||||
|
│ ├── Content.tsx
|
||||||
|
│ ├── ContentStructure.tsx
|
||||||
|
│ ├── Dashboard.tsx
|
||||||
|
│ ├── DeploymentPanel.tsx
|
||||||
|
│ ├── List.tsx
|
||||||
|
│ ├── PageManager.tsx
|
||||||
|
│ ├── PostEditor.tsx
|
||||||
|
│ ├── PublishingQueue.tsx
|
||||||
|
│ ├── Settings.tsx
|
||||||
|
│ └── SyncDashboard.tsx
|
||||||
|
├── Thinker/
|
||||||
|
│ ├── AuthorProfiles.tsx
|
||||||
|
│ ├── ImageTesting.tsx
|
||||||
|
│ ├── Profile.tsx
|
||||||
|
│ ├── Prompts.tsx
|
||||||
|
│ └── Strategies.tsx
|
||||||
|
├── Writer/
|
||||||
|
│ ├── Approved.tsx
|
||||||
|
│ ├── Content.tsx
|
||||||
|
│ ├── ContentView.tsx
|
||||||
|
│ ├── Images.tsx
|
||||||
|
│ ├── Review.tsx
|
||||||
|
│ └── Tasks.tsx
|
||||||
|
├── Components.tsx
|
||||||
|
├── Payment.tsx
|
||||||
|
└── UIElements.tsx
|
||||||
|
```# Frontend Pages & Routes
|
||||||
|
|
||||||
**Last Verified:** January 17, 2026
|
**Last Verified:** January 17, 2026
|
||||||
**Version:** 1.8.0
|
**Version:** 1.8.0
|
||||||
**Framework:** React 19 + TypeScript + React Router 6 + Vite
|
**Framework:** React 19 + TypeScript + React Router 6 + Vite
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
| I want to... | Go to |
|
| I want to... | Go to |
|
||||||
|--------------|-------|
|
|--------------|-------|
|
||||||
| Understand system architecture | [00-SYSTEM/ARCHITECTURE.md](00-SYSTEM/ARCHITECTURE.md) |
|
| Understand system architecture | [00-SYSTEM/ARCHITECTURE.md](00-SYSTEM/ARCHITECTURE.md) |
|
||||||
|
| See repository structure | [00-SYSTEM/REPO-STRUCTURE.md](00-SYSTEM/REPO-STRUCTURE.md) |
|
||||||
| Read executive summary | [00-SYSTEM/IGNY8-APP.md](00-SYSTEM/IGNY8-APP.md) |
|
| Read executive summary | [00-SYSTEM/IGNY8-APP.md](00-SYSTEM/IGNY8-APP.md) |
|
||||||
| Work with a specific module | [10-MODULES/](#modules) |
|
| Work with a specific module | [10-MODULES/](#modules) |
|
||||||
| Find an API endpoint | [20-API/ENDPOINTS.md](20-API/ENDPOINTS.md) |
|
| Find an API endpoint | [20-API/ENDPOINTS.md](20-API/ENDPOINTS.md) |
|
||||||
@@ -36,6 +37,7 @@
|
|||||||
| Document | Purpose |
|
| Document | Purpose |
|
||||||
|----------|---------|
|
|----------|---------|
|
||||||
| [ARCHITECTURE.md](00-SYSTEM/ARCHITECTURE.md) | Tech stack, deployment, system design |
|
| [ARCHITECTURE.md](00-SYSTEM/ARCHITECTURE.md) | Tech stack, deployment, system design |
|
||||||
|
| [REPO-STRUCTURE.md](00-SYSTEM/REPO-STRUCTURE.md) | Repository layout and directory trees |
|
||||||
| [AUTH-FLOWS.md](00-SYSTEM/AUTH-FLOWS.md) | Authentication, JWT, sessions, roles |
|
| [AUTH-FLOWS.md](00-SYSTEM/AUTH-FLOWS.md) | Authentication, JWT, sessions, roles |
|
||||||
| [TENANCY.md](00-SYSTEM/TENANCY.md) | Multi-tenant architecture, Account/Site/Sector |
|
| [TENANCY.md](00-SYSTEM/TENANCY.md) | Multi-tenant architecture, Account/Site/Sector |
|
||||||
| [IGNY8-APP.md](00-SYSTEM/IGNY8-APP.md) | Executive summary (non-technical) |
|
| [IGNY8-APP.md](00-SYSTEM/IGNY8-APP.md) | Executive summary (non-technical) |
|
||||||
@@ -75,54 +77,95 @@
|
|||||||
| [COMPONENT-SYSTEM.md](30-FRONTEND/COMPONENT-SYSTEM.md) | **UI components reference** (Button, InputField, etc.) |
|
| [COMPONENT-SYSTEM.md](30-FRONTEND/COMPONENT-SYSTEM.md) | **UI components reference** (Button, InputField, etc.) |
|
||||||
| [DESIGN-GUIDE.md](30-FRONTEND/DESIGN-GUIDE.md) | **Design system guide** (colors, rules) |
|
| [DESIGN-GUIDE.md](30-FRONTEND/DESIGN-GUIDE.md) | **Design system guide** (colors, rules) |
|
||||||
| [DESIGN-TOKENS.md](30-FRONTEND/DESIGN-TOKENS.md) | **Design tokens** (CSS variables, color scales) |
|
| [DESIGN-TOKENS.md](30-FRONTEND/DESIGN-TOKENS.md) | **Design tokens** (CSS variables, color scales) |
|
||||||
|
| [PAGE-AUDIT.md](30-FRONTEND/PAGE-AUDIT.md) | Page-by-page function audit (in progress) |
|
||||||
| [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 |
|
| [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 |
|
||||||
|
|
||||||
### Current Page Structure (v1.8.2)
|
### Current Page Structure (v1.8.3)
|
||||||
|
|
||||||
```
|
```
|
||||||
/ → Dashboard (Home.tsx) - with workflow widgets
|
/ → Dashboard (Home.tsx)
|
||||||
|
├── AUTH
|
||||||
|
│ /signin → Sign In (SignIn.tsx)
|
||||||
|
│ /signup → Sign Up (SignUp.tsx)
|
||||||
|
│ /signup/pk → Legacy redirect to Sign Up
|
||||||
|
│ /forgot-password → Forgot Password (ForgotPassword.tsx)
|
||||||
|
│ /reset-password → Reset Password (ResetPassword.tsx)
|
||||||
|
│ /verify-email → Verify Email (VerifyEmail.tsx)
|
||||||
|
│ /unsubscribe → Unsubscribe (Unsubscribe.tsx)
|
||||||
|
│ /payment → Payment (Payment.tsx)
|
||||||
|
├── LEGAL
|
||||||
|
│ /terms → Terms (Terms.tsx)
|
||||||
|
│ /privacy → Privacy (Privacy.tsx)
|
||||||
├── SETUP
|
├── SETUP
|
||||||
│ /setup/wizard → Onboarding Wizard (SetupWizard.tsx)
|
│ /setup/wizard → Onboarding Wizard (SetupWizard.tsx)
|
||||||
│ /keywords-library → Keywords Library (IndustriesSectorsKeywords.tsx) [v1.8.2 renamed]
|
│ /keywords-library → Keywords Library (IndustriesSectorsKeywords.tsx)
|
||||||
│ /account/content-settings → Content Settings (ContentSettingsPage.tsx)
|
├── SITES
|
||||||
│ /sites → Sites List (List.tsx)
|
│ /sites → Sites List (List.tsx)
|
||||||
│ /sites/:id → Site Dashboard (Dashboard.tsx)
|
│ /sites/:id → Site Dashboard (Dashboard.tsx)
|
||||||
|
│ /sites/:id/pages → Page Manager (PageManager.tsx)
|
||||||
|
│ /sites/:id/content → Site Content (Content.tsx)
|
||||||
|
│ /sites/:id/content/structure → Content Structure (ContentStructure.tsx)
|
||||||
│ /sites/:id/settings → Site Settings (Settings.tsx)
|
│ /sites/:id/settings → Site Settings (Settings.tsx)
|
||||||
│ - Tabs: General, Automation (v1.8.0), Integrations
|
│ /sites/:id/sync → Sync Dashboard (SyncDashboard.tsx)
|
||||||
│ /thinker/prompts → Thinker Prompts (Prompts.tsx) [Admin]
|
│ /sites/:id/deploy → Deployment Panel (DeploymentPanel.tsx)
|
||||||
│ /thinker/author-profiles → Author Profiles (AuthorProfiles.tsx) [Admin]
|
│ /sites/:id/posts/:postId → Post Editor (PostEditor.tsx)
|
||||||
├── WORKFLOW
|
├── WORKFLOW
|
||||||
│ /planner/keywords → Planner Keywords (Keywords.tsx)
|
│ /planner/keywords → Planner Keywords (Keywords.tsx)
|
||||||
│ /planner/clusters → Clusters (Clusters.tsx)
|
│ /planner/clusters → Planner Clusters (Clusters.tsx)
|
||||||
│ /planner/ideas → Ideas (Ideas.tsx)
|
│ /planner/clusters/:id → Cluster Detail (ClusterDetail.tsx)
|
||||||
│ /writer/tasks → Writer Queue (Tasks.tsx)
|
│ /planner/ideas → Planner Ideas (Ideas.tsx)
|
||||||
│ /writer/drafts → Drafts (Drafts.tsx)
|
│ /writer/tasks → Writer Tasks (Tasks.tsx)
|
||||||
│ /writer/images → Images (Images.tsx)
|
│ /writer/content → Writer Content (Content.tsx)
|
||||||
│ /writer/review → Review (Review.tsx)
|
│ /writer/content/:id → Content View (ContentView.tsx)
|
||||||
|
│ /writer/images → Writer Images (Images.tsx)
|
||||||
|
│ /writer/review → Review Queue (Review.tsx)
|
||||||
│ /writer/approved → Approved (Approved.tsx)
|
│ /writer/approved → Approved (Approved.tsx)
|
||||||
│ /automation → Automation Dashboard (AutomationPage.tsx)
|
│ /automation/overview → Automation Runs (AutomationOverview.tsx)
|
||||||
│ /automation/overview → Run History (AutomationOverview.tsx) [v1.7.0]
|
│ /automation/runs/:runId → Run Detail (AutomationRunDetail.tsx)
|
||||||
│ /automation/runs/:id → Run Detail (AutomationRunDetail.tsx) [v1.7.0]
|
│ /automation/run → Automation Run (AutomationPage.tsx)
|
||||||
├── PUBLISHER
|
├── PUBLISHER
|
||||||
│ /publisher/content-calendar → Content Calendar (ContentCalendar.tsx)
|
│ /publisher/content-calendar → Content Calendar (ContentCalendar.tsx)
|
||||||
├── OPTIONAL MODULES
|
├── OPTIONAL MODULES
|
||||||
│ /linker/content → Linker [if enabled]
|
│ /linker/content → Linker Content (ContentList.tsx)
|
||||||
│ /optimizer/content → Optimizer [if enabled]
|
│ /optimizer/content → Optimizer Content (ContentSelector.tsx)
|
||||||
|
│ /optimizer/analyze/:id → Optimization Preview (AnalysisPreview.tsx)
|
||||||
|
├── THINKER (ADMIN)
|
||||||
|
│ /thinker/prompts → Prompts (Prompts.tsx)
|
||||||
|
│ /thinker/author-profiles → Author Profiles (AuthorProfiles.tsx)
|
||||||
|
│ /thinker/profile → Thinker Profile (Profile.tsx)
|
||||||
|
│ /thinker/strategies → Strategies (Strategies.tsx)
|
||||||
|
│ /thinker/image-testing → Image Testing (ImageTesting.tsx)
|
||||||
├── ACCOUNT
|
├── ACCOUNT
|
||||||
│ /account/notifications → Notifications (NotificationsPage.tsx)
|
│ /account/notifications → Notifications (NotificationsPage.tsx)
|
||||||
│ /account/settings → Account Settings (AccountSettingsPage.tsx)
|
│ /account/settings → Account Settings (AccountSettingsPage.tsx)
|
||||||
│ - Tabs: Account, Profile, Team
|
│ /account/settings/profile → Profile Tab
|
||||||
|
│ /account/settings/team → Team Tab
|
||||||
│ /account/plans → Plans & Billing (PlansAndBillingPage.tsx)
|
│ /account/plans → Plans & Billing (PlansAndBillingPage.tsx)
|
||||||
│ - Tabs: Plan, Upgrade, History
|
│ /account/plans/upgrade → Upgrade Tab
|
||||||
│ /account/usage → Usage Analytics (UsageAnalyticsPage.tsx)
|
│ /account/plans/history → History Tab
|
||||||
│ - Tabs: Limits, Credit History, API Activity
|
│ /account/usage → Usage Dashboard (UsageDashboardPage.tsx)
|
||||||
│ /settings/integration → Integration Settings (IntegrationPage.tsx) [Admin]
|
│ /account/content-settings → Content Settings (ContentSettingsPage.tsx)
|
||||||
|
├── SETTINGS
|
||||||
|
│ /settings → General Settings (General.tsx)
|
||||||
|
│ /settings/users → Users (Users.tsx)
|
||||||
|
│ /settings/subscriptions → Subscriptions (Subscriptions.tsx)
|
||||||
|
│ /settings/system → System Settings (System.tsx)
|
||||||
|
│ /settings/account → Account Settings (Account.tsx)
|
||||||
|
│ /settings/plans → Plans (Plans.tsx)
|
||||||
|
│ /settings/industries → Industries (Industries.tsx)
|
||||||
|
│ /settings/integration → Integration (Integration.tsx) [Admin]
|
||||||
|
│ /settings/publishing → Publishing (Publishing.tsx)
|
||||||
|
│ /settings/sites → Sites Settings (Sites.tsx)
|
||||||
|
├── REFERENCE
|
||||||
|
│ /reference/seed-keywords → Seed Keywords (SeedKeywords.tsx)
|
||||||
|
│ /reference/industries → Industries (Industries.tsx)
|
||||||
├── HELP
|
├── HELP
|
||||||
│ /help → Help Center (HelpCenter.tsx)
|
│ /help → Help Center (Help.tsx)
|
||||||
└── INTERNAL
|
└── INTERNAL
|
||||||
/ui-elements → UI Elements (UIElements.tsx) [Design System Ref]
|
/ui-elements → UI Elements (UIElements.tsx)
|
||||||
|
/components → Components (Components.tsx)
|
||||||
```
|
```
|
||||||
|
|
||||||
**Removed in v1.8.0:**
|
**Removed in v1.8.0:**
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 109 KiB |
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 133 KiB |
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 248 KiB |
BIN
frontend/public/marketing/images/publisher-dashboard.png
Normal file
|
After Width: | Height: | Size: 168 KiB |
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 935 KiB |