Ironparts

Stand der Arbeiten

Marktplatz für gebrauchte Fahrzeugteile · Meilensteine 1–7 stehen · Stand 16. September 2026

Live ansehen

ironparts.ironparts.workers.dev
Die Anwendung selbst — auf Cloudflare Workers, Daten aus PostgreSQL bei Supabase über Hyperdrive.

Zum Ausprobieren ohne Registrierung. Zwei Demo-Konten sind angelegt, beide mit dem Passwort ironparts-demo:

Die Konten und ihre acht Inserate sind erfunden und jederzeit rückstandslos entfernbar (npx tsx scripts/demo-daten.mts --entfernen). Die Bilder sind bewusst als Platzhalter erkennbar — ohne freigeschaltetes R2 gibt es keinen Bildupload, und ein echtes Produktfoto würde vortäuschen, dass er läuft.

Was die Vorschau zeigt

Suche nach Fahrzeug

Fahrzeugtyp → Marke → Modell → Baujahr, auf jeder Seite ganz oben. Die Auswahl bleibt in der Sitzung. Probier Motorrad → Yamaha → MT-07 → 2018–2020.

Drei getrennte Trefferblöcke

„Passt zu deinem Fahrzeug“ (belegt), „Passt vermutlich“ (mit Prüfhinweis), „Weitere Treffer“ (Volltext, ohne Fahrzeugbezug). Kein Inserat steht in zwei Blöcken.

Keine Passung ohne Beleg

Auf der Inseratsseite steht „vom Verkäufer bestätigt“ oder „vermutet“ — nie eine Zusage, die kein Fitment-Eintrag deckt.

Konto, Inserate, Nachrichten

Registrierung mit E-Mail-Bestätigung, Anmeldung, Profil, eigene Inserate verwalten, Gespräche, Bewertungen, Meldefunktion.

Teilenummern

Unleserliche Stellen bleiben als ? stehen und werden nie ergänzt — siehe die Bremsscheibe mit 1WS-F581T-00 und den Scheinwerfer mit B4C-84?00-00.

Gesperrte Kategorien

Airbagmodule, Gurtstraffer, pyrotechnische Batterietrenner und die Airbagweste lassen sich nicht einstellen. 27 der 95 Kategorien sind als sicherheitsrelevant markiert, 5 sind gesperrt.

Infrastruktur

BausteinStandEinzelheiten
Workerläuft ironparts auf der Subdomain ironparts.workers.dev, per API angelegt
Datenbankläuft PostgreSQL 17.6 bei Supabase, Region eu-west-1 — 16 Tabellen, 12 CHECK-Bedingungen, 4 Migrationen
Stammdatengeladen 28 Fahrzeuge, 95 Kategorien, 8.298 Postleitzahlen mit Koordinaten
Hyperdriveläuft Verbindungs-Pool vor dem Supabase-Pooler (Session-Modus, Port 5432)
Datenbankrolleangelegt ironparts_app mit eigenem Passwort — das postgres-Passwort blieb unangetastet
Geheimnissegesetzt APP_GEHEIMNIS, S3_ZUGRIFFSSCHLUESSEL, S3_GEHEIMSCHLUESSEL
R2 (Bilder)blockiert Für das Konto nicht freigeschaltet — die API antwortet mit 10042. Nur im Dashboard lösbar, siehe unten.
E-Mail-VersandErsatz Kein Resend-Schlüssel vorhanden. Bestätigungsmails gehen ins Worker-Log statt in ein Postfach.
KI-Vorbefüllungaus KI_ANBIETER="aus" — ohne Schlüssel erscheint der Vorschlagsknopf gar nicht erst.

Geprüft, nicht behauptet

16 Prüfungen laufen gegen die deployte Instanz grün (npx tsx e2e/live-vorschau.mts): Startseite, Fahrzeugleiste, Anmeldung mit Demo-Konto, eigene Inserate, Inseratsseite mit Preis, Passung und Teilenummer, Profil, alle vier Rechtstexte, keine Schlüssel im ausgelieferten Browser-JavaScript, keine JavaScript-Laufzeitfehler.

Die drei Suchblöcke wurden einzeln gegen die Live-Instanz nachgemessen: Bei gewählter MT-07 2018–2020 stehen Bremsscheibe und Scheinwerfer in Block 1, das Kettenkit in Block 2, und Spiegelpaar, Stahlflex-Leitung und Auspuff landen in Block 3 — ohne Überschneidung.

Die 214 Prüfungen der sieben Meilenstein-Suiten brauchen dagegen eine direkte Postgres-Verbindung, um sich ihre Testdaten selbst einzurichten. Die gibt es in dieser Umgebung nicht; gelaufen sind sie zuletzt in der Entwicklungsumgebung.

Zwei Klicks, die nur du machen kannst

Beides hängt am Konto, nicht am Token — es gibt dafür keinen API-Weg.

Weiterhin offen