Live App →

Sentinel Frontend — Screen Catalog

Complete reference for all routes, navigation paths, CTAs, and data dependencies.


Route Summary

# Route Page Title Service Auth
1 / Sentinel Public
2 /login Welcome Back Auth Guest only
3 /register Create Account Auth Guest only
4 /dashboard Dashboard | Sentinel Platform Required
5 /nexus Dashboard | Nexus | Sentinel Nexus Required
6 /nexus?tab=analytics Analytics | Nexus | Sentinel Nexus Required
7 /nexus/upload Upload Documents | Nexus | Sentinel Nexus Required
8 /nexus/history Document History | Nexus | Sentinel Nexus Required
9 /nexus/insights/[jobId] {filename} | Nexus | Sentinel Nexus Required
10 /nexus/dashboard — (redirect) Nexus Required
11 /zen Zen | Sentinel Zen Required
12 /zen/chat/[sessionId] Zen | Sentinel Zen Required
13 /zen/agents Zen | Sentinel Zen Required
14 /zen/documents Zen | Sentinel Zen Required
15 /zen/search Zen | Sentinel Zen Required
16 /zen/settings Zen | Sentinel Zen Required

1. Landing Page (/)

File: app/src/app/page.tsx (Client)

Sections:

  • Hero with Sentinel branding and tagline
  • Two service launch cards (Nexus / Zen)
  • Auto-redirect to /login if unauthenticated

CTAs: | Action | Destination | |——–|————-| | Launch Nexus | /nexus | | Launch Zen | /zen |


2. Login (/login)

File: app/src/app/(auth)/login/page.tsx (Client)

Sections:

  • Split layout: branded panel (left) + form (right)
  • Email + password inputs with visibility toggle
  • Remember me checkbox
  • Session expired banner (?expired=true)

CTAs: | Action | Destination | |——–|————-| | Sign In | POST → /dashboard | | Sign Up link | /register |

API: loginAction() server action


3. Register (/register)

File: app/src/app/(auth)/register/page.tsx (Client)

Sections:

  • Full name, email, password, confirm password
  • Role selector (Admin / Analyst / Viewer) with icons
  • Team selector (Internal / External)

CTAs: | Action | Destination | |——–|————-| | Create Account | POST → /login | | Sign In link | /login |

API: registerAction() server action


4. Dashboard (/dashboard)

File: app/src/app/(dashboard)/page.tsx (Client)

Sections:

  • Greeting with time-of-day
  • Platform metrics (documents, conversations, success rate, tokens)
  • Document processing pipeline status
  • Service launcher cards (Nexus / Zen)
  • Intelligence capabilities grid (6 cards)
  • AI services platform health
  • Service map with live health indicators
  • 3D hologram (Three.js, canvas)

CTAs: | Action | Destination | Service | |——–|————-|———| | Launch Nexus | /nexus | Nexus | | Launch Zen | /zen | Zen | | Portfolio Intelligence | /nexus | Nexus | | Document Pipeline | /nexus/upload | Nexus | | Financial AI Chat | /zen | Zen | | AI Agent Config | /zen/agents | Zen | | Knowledge Search | /zen/search | Zen | | Client Reporting | /nexus/history | Nexus | | Nexus (service map) | /nexus | Nexus | | Zen (service map) | /zen | Zen | | Agents (service map) | /zen/agents | Zen | | Knowledge (service map) | /zen/documents | Zen |

API: getHealth(), getStatistics(), getAgents(), Discovery service


5. Nexus Dashboard (/nexus)

File: app/src/app/(dashboard)/nexus/page.tsx (Client + Suspense)

Tab: Documents (default)

  • Greeting with pipeline description
  • Command search bar (⌘K)
  • Dashboard stats bar (documents, extractions, processing)
  • Recent documents table (sortable, expandable)
  • Activity feed sidebar
  • Upload queue integration

Tab: Analytics (?tab=analytics)

  • Sub-tabs: Overview / Pipeline / Costs
  • Metrics cards (Total Documents, Success Rate, Confidence, Tokens)
  • Pipeline stage visualization (11 stages)
  • Quick action cards (View Documents, Needs Review, Failed Jobs)
  • Upload Documents CTA

CTAs: | Action | Destination | |——–|————-| | Upload Documents | /nexus/upload | | Document row click | /nexus/insights/{jobId} | | View All (documents) | /nexus/history | | Analytics tab | /nexus?tab=analytics | | Documents tab | /nexus | | View Documents (analytics) | /nexus/history |

API: getJobs(), getDocuments(), getStatistics(), getJobDetailedStatus()


6. Nexus Upload (/nexus/upload)

File: app/src/app/(dashboard)/nexus/upload/page.tsx (Client)

Sections:

  • Document type selector (PMS / AIF / MF radio buttons)
  • File dropzone (drag-and-drop, PDF only, 50MB max)
  • Upload queue with per-file status
  • Optional password field for encrypted PDFs
  • Confirmation dialog before processing

CTAs: | Action | Destination | |——–|————-| | Process Documents | Confirmation → upload → /nexus/insights/{jobId} | | Cancel | /nexus | | File upload | Local file picker |

API: uploadDocument(), processDocument(), validateDocument()


7. Nexus History (/nexus/history)

File: app/src/app/(dashboard)/nexus/history/page.tsx (Client + Suspense)

Sections:

  • Search bar with debounce (300ms)
  • Status filter chips (all / pending / in_progress / success / failed / needs_review)
  • Date range presets
  • Documents table with sorting, pagination
  • Batch action bar (delete / export / reprocess)

CTAs: | Action | Destination | |——–|————-| | Document row click | /nexus/insights/{jobId} | | Download Excel | Blob download | | Reprocess | API call + refetch | | Batch delete | API call + refetch | | Batch export | Multiple blob downloads |

API: getJobs(), getJobDetailedStatus(), downloadExcel(), reprocessDocument(), deleteDocuments()

Polling: 5s interval when tab visible and docs processing.


8. Nexus Insights (/nexus/insights/[jobId])

File: app/src/app/(dashboard)/nexus/insights/[jobId]/page.tsx (Client, 1600+ lines)

Tab: Overview

  • Document header with status badge + confidence meter
  • Summary metrics (Market Value, Invested Value, P&L, XIRR)
  • AI summary card
  • Compact processing timeline
  • Asset allocation pie chart
  • Token usage breakdown

Tab: Extraction

  • Securities data grid (expandable rows)
  • Transactions data grid
  • Low confidence alert banner
  • PDF source annotations

Tab: Processing Stages

  • Detailed pipeline timeline (11 stages)
  • Per-stage token usage
  • Audit log entries

PDF Panel (right sheet):

  • Authenticated PDF viewer
  • Annotation overlays
  • Bidirectional linking (table row ↔ PDF region)

CTAs: | Action | Destination | |——–|————-| | Export to Excel | Blob download | | View PDF | Opens right panel | | Back | Previous page | | Reprocess (failed) | API call + refetch | | Row click | Highlights in PDF |

API: getJobDetailedStatus(), getExtraction(), getJobStages(), downloadExcel(), getDocumentFile()

Polling: 3s interval while status is pending or in_progress.


9. Nexus Dashboard Redirect (/nexus/dashboard)

File: app/src/app/(dashboard)/nexus/dashboard/page.tsx (Server)

Server-side redirect('/nexus?tab=analytics'). No UI rendered.


10. Zen Landing (/zen)

File: app/src/app/(dashboard)/zen/page.tsx (Client)

Sections:

  • Hero with Financial AI Intelligence branding
  • “Start New Conversation” button
  • 6 suggested query cards (Portfolio, Holdings, Performance, Transactions, Compliance, Search)
  • 3 AI agent cards (Portfolio Analyst, Risk Analyst, Wealth Classifier)
  • 4 platform capability cards

CTAs: | Action | Destination | |——–|————-| | Start New Conversation | Creates session → /zen/chat/{sessionId} | | Suggested query click | Creates session with prompt → /zen/chat/{sessionId} |

API: createChatSession(), getAgents()


11. Zen Chat (/zen/chat/[sessionId])

File: app/src/app/(dashboard)/zen/chat/[sessionId]/page.tsx (Client)

Sections:

  • Message thread (user/assistant with Markdown)
  • Chat input with file upload and web search toggle
  • Thinking indicator during AI response
  • Sidebar toggle + context panel toggle

CTAs: | Action | Destination | |——–|————-| | Send message | API call (streamed response) | | Upload file | File picker → context document | | Web search toggle | Enables/disables web search mode | | Sidebar toggle | Shows/hides chat sidebar |

API: sendMessage(), getChatSession(), getSessionContext(), addDocumentToContext()


12. Zen Agents (/zen/agents)

File: app/src/app/(dashboard)/zen/agents/page.tsx (Client)

Sections:

  • Agent card grid (responsive 1-2-3 columns)
  • Configuration dialog (model, temperature, system prompt)
  • Empty state with capability showcase

CTAs: | Action | Destination | |——–|————-| | Configure agent | Opens config dialog | | Save config | API call + refetch | | Refresh | Refetch agents |

API: getAgents(), updateAgent()


13. Zen Documents (/zen/documents)

File: app/src/app/(dashboard)/zen/documents/page.tsx (Client)

Sections:

  • Storage usage indicator
  • Document upload area (drag-drop)
  • Document card grid with search
  • Delete confirmation dialog

CTAs: | Action | Destination | |——–|————-| | Upload document | File picker | | Add to Chat | Creates/uses session → /zen/chat/{sessionId} | | Delete document | Confirmation → API call |

API: getUploads(), uploadFile(), deleteUpload(), getStorageStats(), createChatSession()


14. Zen Search (/zen/search)

File: app/src/app/(dashboard)/zen/search/page.tsx (Client + Suspense, 900+ lines)

Sections:

  • Search bar with suggestions
  • Filter sidebar: date range, file type, source, entities
  • Result cards with match percentage and snippets
  • Highlighted search terms
  • Pagination (load more)

CTAs: | Action | Destination | |——–|————-| | Search | Debounced query | | Filter toggle | Shows/hides sidebar | | View Source | External link | | Load more | Next page of results | | Quick tag | Pre-fills search |

API: search(), getSearchSuggestions(), searchDocuments()

URL State: q, sort, dateFrom, dateTo, fileTypes, sources, entities synced to query params.


15. Zen Settings (/zen/settings)

File: app/src/app/(dashboard)/zen/settings/page.tsx (Client)

Sections:

  • Avatar with initials
  • Editable name fields (first/last)
  • Profile info: email, username, role, team
  • Theme switcher card
  • Action buttons

CTAs: | Action | Destination | |——–|————-| | Edit profile | Inline edit mode | | Save | API call | | Theme switch | Updates theme | | Switch Service | /dashboard | | Sign Out | Logout → /login |

API: getCurrentUser(), updateUser()


CTA Flow Map

/login ──── Sign In ────→ /dashboard
                           │
              ┌────────────┼────────────┐
              │            │            │
              ▼            ▼            ▼
         /nexus         /zen       /zen/agents
           │              │
     ┌─────┼─────┐        │
     │     │     │        ▼
     ▼     ▼     ▼    /zen/chat/{id}
  /nexus  /nexus  /nexus
  /upload /history ?tab=analytics
     │     │
     ▼     ▼
  /nexus/insights/{jobId}

Layout Hierarchy

RootLayout (fonts, metadata, providers)
├── (auth)/layout.tsx
│   ├── /login
│   └── /register
└── (dashboard)/layout.tsx (session verification, user hydration, offline banner)
    ├── /dashboard
    ├── nexus/layout.tsx (NexusSidebar, processing indicator)
    │   ├── /nexus
    │   ├── /nexus/upload
    │   ├── /nexus/history
    │   └── /nexus/insights/[jobId]
    └── zen/layout.tsx (ZenHeader, ChatSidebar, ContextPanel)
        ├── /zen
        ├── /zen/chat/[sessionId]
        ├── /zen/agents
        ├── /zen/documents
        ├── /zen/search
        └── /zen/settings

Last updated: 2026-02-03