How sergiovela10/googleai-phoenix-ledger works
Phoenix Ledger is a client-side property brokerage ledger for managing Monterrey listings and mandates. Users browse, search, filter, sort, and review records in grid, table, pipeline, map, or analytics views; they can inspect a dossier, edit or add a property, track negotiation notes and status, and export portfolio data. The sampled code shows App coordinating state and child views, with seed records held in memory and preferences stored in localStorage; no backend persistence is evidenced. Map and analytics capabilities are documented by UI labels, but their implementation wiring was not sampled.
Main entry points: App.tsx App coordinator · formatters.ts Currency and expiry · translations.ts Translations and themes · PropertyDetailModal.tsx Property dossier
Components 21
Ledger experience
- React entry
src/main.tsx - App coordinator
src/App.tsx - Header controls
src/components/Header.tsx - Search and filters
src/components/ControlsBar.tsx - Portfolio stats
src/components/StatsBar.tsx - Property cards
src/components/PropertyCard.tsx - Ledger table
src/components/PropertyTableView.tsx - Deal pipeline
src/components/PropertyPipelineView.tsx - District map
src/components/PropertyMapView.tsx - Financial analytics
src/components/PropertyAnalyticsView.tsx
Property operations
- Property dossier
src/components/PropertyDetailModal.tsx - Property editor
src/components/AddEditPropertyModal.tsx - Executive teaser
src/components/ExecutiveTeaserModal.tsx - CSV download
src/App.tsx
Presentation services
- Draft banner
src/components/DraftBanner.tsx - Currency and expiry
src/utils/formatters.ts - Translations and themes
src/utils/translations.ts
Domain and seed data
- Property model
src/types.ts - Initial properties
src/data/mockProperties.ts - Browser preferences
Other components
- Broker
Connections 33
- Broker → React entry: opens app
- React entry → App coordinator: renders
- App coordinator → Initial properties: initializes records
- App coordinator → Browser preferences: reads and writes preferences
- App coordinator → Header controls: renders and handles actions
- App coordinator → Search and filters: renders and handles filters
- App coordinator → Portfolio stats: supplies portfolio data
- App coordinator → Property cards: renders selected view
- App coordinator → Ledger table: renders selected view
- App coordinator → Deal pipeline: renders selected view
- App coordinator → District map: renders selected view
- App coordinator → Financial analytics: renders selected view
- App coordinator → Property dossier: opens selected record
- App coordinator → Property editor: opens add or edit
- App coordinator → Executive teaser: opens selected teaser
- App coordinator → Draft banner: renders banner
- App coordinator → CSV download: builds export
- Header controls → App coordinator: dispatches view and action changes
- Search and filters → App coordinator: dispatches filter and sort changes
- Property cards → Currency and expiry: formats values
- Deal pipeline → Currency and expiry: formats values and expiry
- Property dossier → Currency and expiry: formats dossier values
- Property editor → App coordinator: submits property
- Property dossier → App coordinator: dispatches edit and delete
- App coordinator → Property model: uses property model
- Initial properties → Property model: provides typed records
- Header controls → Translations and themes: reads labels and themes
- Search and filters → Translations and themes: reads labels
- Deal pipeline → Translations and themes: reads labels and statuses
- Property dossier → Translations and themes: reads labels and statuses
- Property editor → Translations and themes: reads labels
- Portfolio stats → Currency and expiry: formats metrics
- Executive teaser → Currency and expiry: formats values