|
|
||
|---|---|---|
| public | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| QUICKSTART.md | ||
| README.md | ||
| docker-compose.yml | ||
| init.sql | ||
| package-lock.json | ||
| package.json | ||
| server.js | ||
| start.bat | ||
| start.sh | ||
README.md
Quote Management System - Bay Area Affiliates, Inc.
Ein vollständiges Quote-Management-System mit PostgreSQL-Datenbank, Node.js Backend und Tailwind CSS Frontend.
Features
- Kundenverwaltung: Erstellen, Bearbeiten und Löschen von Kunden mit vollständigen US-Adressen
- Quote-Erstellung: Generierung professioneller Angebote mit automatischer Nummerierung (YYYY-MM-XXXX)
- Flexible Preisgestaltung:
- Automatische Berechnung von Subtotal, Tax (8.25%) und Total
- Tax-Exempt Option für Churches und Non-Profits
- TBD-Support für noch nicht festgelegte Beträge mit flexiblen Fußnoten
- PDF-Export: Generierung druckfertiger PDFs basierend auf Ihrer HTML-Vorlage
- Responsive Design: Modernes UI mit Tailwind CSS
Installation & Start
Voraussetzungen
- Docker
- Docker Compose
Schnellstart
-
Repository klonen oder Dateien kopieren
cd quote-system -
Logo hochladen (optional)
- Legen Sie Ihr Logo als
logo_.pngin den Ordner/uploadsoder nutzen Sie die Upload-Funktion in der App
- Legen Sie Ihr Logo als
-
Anwendung starten
docker-compose up -d -
Anwendung öffnen
- Browser: http://localhost:3000
Erste Schritte
- Die Datenbank wird automatisch initialisiert mit einem Beispielkunden (Braselton Development)
- Navigieren Sie zu "Customers" um weitere Kunden anzulegen
- Erstellen Sie Ihr erstes Quote unter "Quotes" → "+ New Quote"
Verwendung
Kunden verwalten
- Neuen Kunden anlegen: Klicken Sie auf "+ New Customer"
- Kunde bearbeiten: Klicken Sie auf "Edit" neben dem Kunden
- Kunde löschen: Klicken Sie auf "Delete" (Achtung: Löscht auch alle zugehörigen Quotes!)
Quotes erstellen
- Klicken Sie auf "+ New Quote"
- Wählen Sie einen Kunden aus dem Dropdown
- Die Quote-Nummer wird automatisch generiert (Format: YYYY-MM-XXXX)
- Das Datum ist standardmäßig heute, kann aber geändert werden
- Fügen Sie Line Items hinzu:
- Quantity: Menge (z.B. "1", "2", "TBD")
- Description: Beschreibung des Artikels/Service
- Rate: Preis pro Einheit oder Stundensatz
- Amount: Gesamtbetrag (wird bei TBD automatisch auf "TBD" gesetzt)
- TBD Checkbox: Markiert Posten als "To Be Determined"
- Für Tax-Exempt Kunden (Churches, Non-Profits): Aktivieren Sie "Tax Exempt"
- Bei TBD-Posten: Geben Sie eine Fußnote ein (z.B. "Total excludes labor charges...")
PDF generieren
- Klicken Sie auf "PDF" neben dem gewünschten Quote
- Das PDF wird automatisch im originalen Design heruntergeladen
Technische Details
Architektur
- Backend: Node.js mit Express
- Datenbank: PostgreSQL 15
- Frontend: Vanilla JavaScript mit Tailwind CSS
- PDF Generation: Puppeteer
- Container: Docker & Docker Compose
Datenbank-Schema
Customers
- id, name, street, city, state, zip_code, account_number
- created_at, updated_at
Quotes
- id, quote_number, customer_id (FK), quote_date
- tax_exempt, tax_rate, subtotal, tax_amount, total
- has_tbd, tbd_note
- created_at, updated_at
Quote Items
- id, quote_id (FK), quantity, description, rate, amount
- is_tbd, item_order
- created_at
API Endpoints
Customers
GET /api/customers- Alle KundenGET /api/customers/:id- Einzelner KundePOST /api/customers- Neuer KundePUT /api/customers/:id- Kunde aktualisierenDELETE /api/customers/:id- Kunde löschen
Quotes
GET /api/quotes- Alle QuotesGET /api/quotes/:id- Einzelnes Quote mit ItemsPOST /api/quotes- Neues QuotePUT /api/quotes/:id- Quote aktualisierenDELETE /api/quotes/:id- Quote löschenGET /api/quotes/next-number- Nächste Quote-NummerPOST /api/quotes/:id/pdf- PDF generieren
Upload
POST /api/upload-logo- Logo hochladen
Konfiguration
Umgebungsvariablen
Die folgenden Umgebungsvariablen können in der docker-compose.yml angepasst werden:
DB_HOST: postgres
DB_PORT: 5432
DB_USER: quoteuser
DB_PASSWORD: quotepass123 # ÄNDERN SIE DIES FÜR PRODUKTION!
DB_NAME: quotedb
Ports
- Anwendung: 3000
- PostgreSQL: 5432 (extern erreichbar für Backups)
Backup & Restore
Backup erstellen
docker exec quote_postgres pg_dump -U quoteuser quotedb > backup.sql
Backup wiederherstellen
docker exec -i quote_postgres psql -U quoteuser quotedb < backup.sql
Wartung
Logs ansehen
docker-compose logs -f
Anwendung neu starten
docker-compose restart
Anwendung stoppen
docker-compose down
Datenbank zurücksetzen (VORSICHT!)
docker-compose down -v
docker-compose up -d
Anpassungen
Firmendaten ändern
Bearbeiten Sie die HTML-Vorlage in server.js in der Funktion generateQuoteHTML():
- Firmenname
- Adresse
- Telefonnummern
- Tagline
Tax Rate ändern
Standard ist 8.25% (Texas). Ändern Sie in:
server.js: Zeile mittax_rate: 8.25init.sql: Zeile mittax_rate DECIMAL(5,2) DEFAULT 8.25
Fehlerbehebung
Anwendung startet nicht
docker-compose logs app
Datenbankverbindung fehlgeschlagen
docker-compose logs postgres
Port bereits belegt
Ändern Sie in docker-compose.yml den Port:
ports:
- "3001:3000" # Statt 3000:3000
Support
Bei Problemen oder Fragen wenden Sie sich an Ihren Administrator.
Lizenz
Proprietär - Bay Area Affiliates, Inc.