How dari0-cpu/preventivatorepwa works
This repository implements a quote-building application: a user enters issuer and client details, edits quote sections and terms, reviews a rendered document, then saves, exports, or prints it. The frontend also supports local drafts and a cloud-backed archive; the backend contains quote models and calculation logic. The README is empty, so product capabilities are inferred from sampled frontend source and the source index; backend routing details and some frontend internals were not sampled.
Main entry points: QuoteBuilder.jsx Quote builder · QuotePreview.jsx Quote preview · quoteModel.js Quote model and archive · useQuote.js Quote state
Components 23
Quote editing
- App shell
frontend/src/App.jsx - Quote builder
frontend/src/quote/QuoteBuilder.jsx - Quote state
frontend/src/quote/useQuote.js - Issuer details
frontend/src/quote/IssuerPanel.jsx - Client details
frontend/src/quote/ClientPanel.jsx - Quote metadata
frontend/src/quote/DocumentMeta.jsx - Section editor
frontend/src/quote/SectionEditor.jsx - Line editor
frontend/src/quote/LineRow.jsx - Terms and notes
frontend/src/quote/TermsPanel.jsx - Form controls
frontend/src/components/Field.jsx - Panel layout
frontend/src/components/Panel.jsx
Document output
- Quote preview
frontend/src/quote/QuotePreview.jsx - Quote totals
frontend/src/lib/totals.js - Formatting
frontend/src/lib/format.js - PDF export
frontend/src/quote/QuoteBuilder.jsx - JSON file export
frontend/src/quote/quoteModel.js
Quote persistence
- Quote model and archive
frontend/src/quote/quoteModel.js - Browser storage
frontend/src/lib/storage.js
Backend API
- Backend entry
backend/main.py - Quote request models
backend/models.py - Backend calculations
backend/calculations.py
Other components
- Quote author
- Supabase
Connections 27
- Quote author → App shell: uses
- App shell → Quote builder: renders
frontend/src/App.jsx - Quote builder → Quote state: uses state
frontend/src/quote/QuoteBuilder.jsx - Quote builder → Issuer details: renders
frontend/src/quote/QuoteBuilder.jsx - Quote builder → Client details: renders
frontend/src/quote/QuoteBuilder.jsx - Quote builder → Quote metadata: renders
frontend/src/quote/QuoteBuilder.jsx - Quote builder → Section editor: renders
frontend/src/quote/QuoteBuilder.jsx - Quote builder → Terms and notes: renders
frontend/src/quote/QuoteBuilder.jsx - Quote builder → Quote preview: renders
frontend/src/quote/QuoteBuilder.jsx - Quote builder → Quote model and archive: archives quotes
frontend/src/quote/QuoteBuilder.jsx - Quote builder → PDF export: generates PDF
frontend/src/quote/QuoteBuilder.jsx - Quote builder → JSON file export: exports JSON
frontend/src/quote/QuoteBuilder.jsx - Quote state → Quote model and archive: creates data
frontend/src/quote/useQuote.js - Quote state → Browser storage: loads and saves
frontend/src/quote/useQuote.js - Client details → Panel layout: uses layout
frontend/src/quote/ClientPanel.jsx - Client details → Form controls: uses fields
frontend/src/quote/ClientPanel.jsx - Section editor → Line editor: renders rows
- Section editor → Form controls: uses fields
frontend/src/quote/SectionEditor.jsx - Terms and notes → Form controls: uses fields
frontend/src/quote/TermsPanel.jsx - Quote preview → Quote totals: computes totals
frontend/src/quote/QuotePreview.jsx - Quote preview → Formatting: formats values
frontend/src/quote/QuotePreview.jsx - Quote preview → Quote model and archive: formats client
frontend/src/quote/QuotePreview.jsx - Quote totals → Formatting: parses amounts
frontend/src/lib/totals.js - Quote model and archive → Supabase: reads and writes archive
frontend/src/quote/quoteModel.js - Backend entry → Quote request models: uses models
backend/main.py - Backend entry → Backend calculations: uses calculations
backend/main.py - Backend calculations → Quote request models: uses models
backend/calculations.py