Files
policy-ui/docs/CODEBASE_BUNDLE.md
Jordan Weingarten 67482f6629 WIP jordan
2026-04-16 11:11:44 -05:00

7.4 KiB
Raw Blame History

policy-ui — codebase bundle (for LLMs / handoff)

Single-document summary of the policy-ui Nuxt app: stack, API wiring, layout, main routes, composables, and data. Paste this into Perplexity, ChatGPT, or another tool when you need context without the full repo.


Product intent (short)

Brokerage / agency management workstation UI (Central America / Colombiaoriented domain): quotes, sales pipeline, onboarding (solicitud, emissions), cartera (customers, policies, book), customer service (support, claims, collections, renewals), workstations, AI tools, settings. Admin-first structure; many areas use mock data until backends are connected.


Stack

Piece Notes
Nuxt ^4.3.1 (compatibilityDate: 2026-02-25)
Vue ^3.5.28
@nuxt/ui ^4.5.0 (Nuxt UI 4)
Tailwind ^4.2.1 (app/assets/css/main.css)
nuxt-open-fetch ^0.13.8 — typed API clients from OpenAPI
jspdf PDF generation
zod validation

Scripts: dev, build, generate, preview, postinstallnuxt prepare.

Dev server: port 3737, host localhost (nuxt.config.ts).


API clients (nuxt-open-fetch)

Client Base URL Schema URL
customer http://localhost:4000/api/v1 http://localhost:4000/api/openapi
policy http://localhost:4001/api/v1 http://localhost:4001/api/openapi
providers http://localhost:4002/api/v1 http://localhost:4002/api/openapi
tasks http://localhost:8080/api/v1 http://localhost:8080/openapi3.json

Usage: useNuxtApp().$customer, $policy, $providers, $tasks (generated from schemas when services run).


Entry & layout

  • app/app.vue: wraps app in UAppNuxtLayoutNuxtPage.
  • Default layout app/layouts/default.vue: top bar (LayoutAppTopBar), collapsible sidebar (Sales, Operations, optional Workstations/AI), main content area. Sidebar groups/feature flags via useSidebarFeatures (localStorage: workstations, AI tools, leads hub).

Directory map (app/)

Path Role
pages/ File-based routes (~73 Vue pages)
components/ UI including layout/, quotes/, etc.
composables/ Shared logic (~30 composables)
layouts/ default.vue shell
assets/css/ Global styles / Tailwind
types/ TS types (form catalog, quotes, branding, roles, …)
data/ JSON catalogs, mocks, seed data
utils/ Helpers (e.g. useLocalStorageRef)
middleware/ Route middleware if present
plugins/ Client/server plugins

Public: public/ including public/forms/ for static PDF assets referenced by the forms catalog.


Routes (by area)

Paths are under app/pages/ unless noted.

  • Home / shell: / (index.vue — large role-configurable dashboard), home2.vue, calendar.vue, account.vue
  • Quotes: /quotes (mission-control style hub), /quotes/mission-control, /quotes/new, /quotes/compare, line flows: /quotes/life, /quotes/health, /quotes/auto, /quotes/general-risk, /quotes/custom
  • Sales / onboarding: /onboarding (pipeline), /sales/quick-lead, /sales/leads, /registration/client, /registration/policy, /onboarding/solicitud, /onboarding/emissions, /onboarding/policy-upload/new, potential/active leads under onboarding/
  • Cartera: /customers, /customers/new, /customers/[id], /policies, /policies/new, /policies/[id], /policies/groups, /policies/book, /policies/app/[application_id]
  • Customer service: /support, /support/[id], /support/collectivos, /claims, /claims/[id], /claims/intake/[token] (standalone layout), /claims/settings, /collections, /renewals, /renewals/[id]
  • Workstation: /workstation/* (collectivos, collections, claims, renewals, customer-service, facturacion)
  • AI tools: /ai-tools/* (sales-factory, policy-comparator, email-writer, case-assistant)
  • Providers: /providers, /providers/new, /providers/[provider_id]
  • Tasks: /tasks, /tasks/[id]
  • Analysis: /analysis
  • Settings: /settings and children (organization, agents, providers, permissions, forms library, quote-requests, support-routing, customer-attention, profile-layouts, alerts, appearance, personalization, referral-channels)

Many pages set definePageMeta({ ssr: false }) where client-only state or APIs are assumed.


Composables (inventory)

Composable Purpose (brief)
useAppShellLayout Sidebar collapse / layout
useAppTheme Theme switching
useBrokerageBranding Tenant branding in chrome
useSidebarFeatures Toggle sidebar sections (workstations, AI, leads)
useSuperAdmin Superadmin gate for org settings
usePageTitle Document title
useFormsCatalog Filter form catalog JSON, field groups, indexes
useEmissionsQueue Local queue for emissions review
useQuoteSession Comparative quote view model / session
useSalesPipeline Deal pipeline stages for quote/onboarding flows
useCustomerProfileVault Local profile / KYC-oriented draft
usePdfFieldMappings PDF field mapping JSON
useProviderContactEmails Carrier outbound email roles
useClientRegistrationModel / usePolicyRegistrationModel Registration payloads
useLifeQuoteDraft / useHealthQuoteDraft / useAutoQuoteDraft Line-specific quote drafts
useDashboardHomeWidgets Home dashboard widgets + role presets
useWelcomeDashboard Welcome KPIs / home content
useSupportTickets Support ticket mock/state
useCustomerAttention Customer attention tiers
useProfileLayouts Profile section layouts
useReferralChannels Referral sources
useQuickLeads Quick lead capture
useClientFavorites Starred clients
useColectivos Collectivos data/helpers
useAnalytics Analytics helpers
useAlertConfig Alert configuration
useQuoteRequestEmailEnabled Quote-request email toggle

Data & catalogs

  • forms-catalog.json — PDF/form rows (insurer, sub-ramo, persona, paths).
  • form-field-groups.json — Field groups linked to catalog matching.
  • pdf-field-mappings.json — PDF field name mappings.
  • taxonomy.ts — Slugs / taxonomy for routing.
  • roles-seguros.ts — Seed roles for permissions UI.
  • Mocks: mock-customers, mock-claims, mock-support, mock-renewals, quotes-overview.mock, mock-analytics, etc.

Scripts (repo)


Conventions worth knowing

  • i18n: UI copy is largely English in chrome; Spanish appears in some flows and labels; full translation is planned.
  • Mock vs API: Several list views try API then fall back to mocks (e.g. policies); others are mock-only.
  • OpenAPI: Clients expect local services on the ports above; without them, calls fail unless mocked.

Files this bundle was generated from

Regenerate or extend this file when architecture changes significantly.