Statische Landing Page mit Lead-Formular, Impressum und Datenschutzerklärung, ausgeliefert von einem abhängigkeitsfreien Node-Server mit lokaler Lead-Erfassung. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
45 lines
1.6 KiB
Markdown
45 lines
1.6 KiB
Markdown
# ToolCTRL — Landing Page
|
|
|
|
Eine-Seiten-Website im Visitenkarten-Stil für den Messeauftritt: Landing Page
|
|
plus Lead-Formular zur Kontaktsammlung. Monochrom (weiß / schwarz), an die
|
|
ToolCTRL Brand Identity angelehnt, ohne externe Abhängigkeiten.
|
|
|
|
## Starten
|
|
|
|
```bash
|
|
node server.js
|
|
```
|
|
|
|
Der Server sucht automatisch einen freien Port (zuerst `4317`) und gibt die
|
|
URL aus, z. B. `http://127.0.0.1:4317`. Stoppen mit `Strg + C`.
|
|
|
|
Voraussetzung: Node.js (getestet mit v26). Keine Installation, keine `npm`-Pakete.
|
|
|
|
## Aufbau
|
|
|
|
```
|
|
public/ statische Website (HTML, CSS, JS, Assets)
|
|
index.html Landing Page + Kontaktformular
|
|
styles.css Designsystem
|
|
script.js Formular-Logik & Mobile-Navigation
|
|
assets/ Logos, Emblem, Favicon, Icon-Set
|
|
server.js abhängigkeitsfreier Node-HTTP-Server + Lead-Endpunkt
|
|
leads/ gesammelte Anfragen (wird automatisch angelegt)
|
|
leads.csv Anfragen als CSV — direkt in Excel öffenbar
|
|
leads.ndjson dieselben Anfragen als JSON pro Zeile
|
|
```
|
|
|
|
## Leads
|
|
|
|
Jede abgesendete Anfrage landet sofort lokal auf der Platte — in `leads.csv`
|
|
**und** `leads.ndjson`. So geht auf der Messe keine Anfrage verloren, auch
|
|
ohne Internet. Ein Honeypot-Feld fängt einfache Spam-Bots ab.
|
|
|
|
Endpunkt: `POST /api/lead` (JSON). Pflichtfelder: `name`, `email`, `nachricht`.
|
|
|
|
## Hinweis für die Messe
|
|
|
|
Für den QR-Code am Stand sollte der Rechner mit dem Server im selben WLAN
|
|
erreichbar sein. Soll die Seite öffentlich laufen, hinter einen Reverse-Proxy
|
|
mit HTTPS setzen oder bei einem Hoster bereitstellen — `tool-ctrl.de`.
|