WΓ€rmepumpen-Lead-Generierung Web-App
| React | v17.0.2 - UI Framework |
| React Router | v5.2.0 - Client-side Routing |
| React Scripts | v5.0.1 - Build Tooling |
| Material-UI (MUI) | v4.12.3 + v5.2.2 - Komponenten-Bibliothek |
| @emotion | CSS-in-JS Styling |
| Styled Components | v5.3.0 - Komponenten-Styling |
| MUI Markdown | v0.5.3 - Markdown Rendering |
| AWS Amplify | v4.2.3 - Backend-as-a-Service |
| @aws-amplify/ui-react | v1.2.26 - Auth UI Components |
| AWS SDK | v2.1032.0 - AWS Services |
| Amazon Location | amazon-location-helpers - Karten-Service |
| MapLibre GL | v1.15.2 - Open Source Kartendarstellung |
| maplibre-gl-js-amplify | v4.0.0 - Amplify Karten-Integration |
| react-map-gl | v5.3.16 - React Karten-Komponenten |
| @math.gl/web-mercator | Koordinaten-Transformationen |
| CRACO | @craco/craco v7.1.0 - Webpack Konfiguration |
| DevContainer | Docker-basierte Entwicklungsumgebung |
| Storybook | Komponenten-Dokumentation |
| React GA4 | v1.0.6 - Google Analytics 4 |
| React GTM Module | v2.0.11 - Google Tag Manager |
| React Hotjar | v4.0.0 - Heatmaps & Feedback |
| React Cookiebot | v1.0.10 - Cookie Consent |
| React Google Charts | v3.0.15 - Datenvisualisierung |
wpguru-frontend-main/
βββ .devcontainer/ # Docker Dev Environment
β βββ devcontainer.json
β βββ Dockerfile
β βββ init.sh
βββ .storybook/ # Storybook Konfiguration
βββ .vscode/ # VSCode Settings
βββ amplify/ # AWS Amplify Backend
β βββ backend/
β β βββ api/wpgurufrontend/ # GraphQL API
β β βββ auth/wpgurufrontend/ # Cognito Auth
β β βββ function/ # Lambda Functions
β β β βββ buyLead/
β β β βββ enrichResults/
β β β βββ exploreOpenLeads/
β β β βββ leadChangeEmailSend/
β β β βββ locationService/
β β β βββ newRequestEmailSend/
β β β βββ sendEmailToNewCustomer/
β β β βββ wpgurufrontendPreTokenGeneration/
β β βββ geo/wpguruDisplayMap/ # Location Service
β βββ team-provider-info.json
βββ public/ # Statische Assets
βββ src/
β βββ components/ # React Komponenten
β β βββ ConfiguratorForm/
β β βββ CostCalculator/
β β βββ RequestInfo/
β β βββ AddressForm.js
β β βββ AmplifyAuth.js
β β βββ Analytics.js
β β βββ BuyButton.js
β β βββ ContactForm.js
β β βββ Footer.js
β β βββ HeroSection.js
β β βββ LeadCard.js
β β βββ LeadMap.js
β β βββ Navbar.js
β β βββ Section.js
β βββ graphql/ # GraphQL Queries/Mutations
β βββ media/ # Bilder & Assets
β βββ models/ # Amplify Modelle
β βββ pages/ # Page Komponenten
β β βββ admin.js
β β βββ costcalculator.js
β β βββ details.js
β β βββ forms.js
β β βββ result.js
β β βββ partner/
β β βββ dashboard.js
β β βββ explore.js
β βββ stories/ # Storybook Stories
β βββ ui-components/ # Generierte UI Komponenten
β βββ util/ # Utility Funktionen
β βββ _app.js # Haupt App Komponente
β βββ index.js # Entry Point
βββ craco.config.js # Webpack Override
βββ package.json
βββ customHttp.yml # CloudFront Config
AWS Cognito-basierte Benutzeranmeldung mit Amplify Auth. UnterstΓΌtzt Partner-Login fΓΌr Installateure.
MapLibre GL-basierte Kartendarstellung fΓΌr Lead-Visualisierung mit Geo-Suche.
Dynamischer Kostenrechner fΓΌr WΓ€rmepumpen mit individuellen Parametern.
Formular-basierte Lead-Erfassung mit Validierung und E-Mail-Workflows.
Installateur-Portal zur Verwaltung und Annahme von Leads.
Mobile-first Ansatz mit Material-UI Komponenten.
# Entwicklungsserver starten
npm start # craco start
# Produktionsbuild
npm run build # craco build
# Tests ausfΓΌhren
npm test # craco react-scripts test
# Eject (nicht empfohlen)
npm run eject # craco react-scripts eject
Mapbox wird durch MapLibre ersetzt (Lizenz-Optimierung):
module.exports = {
webpack: {
alias: {
"mapbox-gl": "maplibre-gl"
}
}
}
| Function | Zweck |
|---|---|
| buyLead | Lead-Kauf Prozessierung |
| enrichResults | Daten-Anreicherung |
| exploreOpenLeads | VerfΓΌgbare Leads anzeigen |
| leadChangeEmailSend | Status-Γnderungs-Benachrichtigungen |
| locationService | Geocoding & Standort |
| newRequestEmailSend | Neue Anfrage Benachrichtigung |
| sendEmailToNewCustomer | Kunden-E-Mail Versand |
| PreTokenGeneration | JWT Token Anpassung |
Das Projekt ist fΓΌr AWS Amplify Hosting konfiguriert: