Projekt 01 von 12 · Web-App

Marktplatz für den Bau

Eine zweiseitige Plattform: Der Auftraggeber veröffentlicht einen Bauauftrag, Unternehmen bieten Preis und Frist an, und der Deal läuft Schritt für Schritt bis zur Abnahme. Zwei Dashboards, Echtzeit-Updates, Dateien und Benachrichtigungen.

Ergebnis
Aufträge, Angebote und Abnahme auf einer Plattform
Dauer
4 Monate Entwicklung
Kosten
≈ 26.500 $
Technologien & Kanäle
  • Next.js
  • NestJS
  • PostgreSQL
  • WebSocket
Auf dieser Seite07

01Über das Projekt

Name und Projektdaten des Auftraggebers unterliegen einer Geheimhaltungsvereinbarung, deshalb beschreibt diese Seite, wie die Plattform funktioniert, nicht für wen. Eine öffentliche Demo mit Testdaten basiert auf demselben Code wie das Produktivsystem.

02Die Aufgabe

Vor der Plattform verhandelten Auftraggeber und Baufirma per Chat und Telefon. Konditionen gingen in Nachrichten verloren, Zeichnungen und Kostenvoranschläge verteilten sich auf verschiedene Unterhaltungen, und keine Seite konnte genau sagen, in welcher Phase die Arbeiten waren.

Gebraucht wurde ein System, in dem jeder Deal klare Schritte hat, jeder Schritt von beiden Seiten bestätigt wird und keiner übersprungen werden kann.

03Was wir gebaut haben

  • Zwei Dashboards in einer Anwendung: Der Auftraggeber verwaltet seine Aufträge, die Baufirma sieht den Feed verfügbarer Aufträge, ihre eigenen Angebote und ihre Übergaben.
  • Ein Auftragsformular mit Kategorie, Objektart, Fläche, Adresse, Budget, gewünschtem Starttermin und Dateien: Zeichnungen und Pläne werden gleich angehängt, damit die Firma nach Unterlagen kalkuliert statt nach einer mündlichen Beschreibung.
  • Angebote mit Preis und Frist: Der Auftraggeber sieht sie nebeneinander und wählt eines aus. Preis und Frist des Deals stammen aus dem angenommenen Angebot, alle übrigen wechseln automatisch auf „nicht ausgewählt“.
  • Übergabe der Arbeit mit Dateien und Pflichtkommentar, Abnahme durch den Auftraggeber und Rückgabe zur Nachbesserung mit neuer Übergaberunde. Die Historie aller Runden bleibt erhalten.
  • Echtzeit-Updates: Eine Aktion der einen Seite erscheint bei der anderen ohne Neuladen der Seite.
  • Benachrichtigungen zu jedem Ereignis im Deal, mit Zähler für ungelesene.
  • Ein Verzeichnis der Auftragnehmer mit der Zahl abgeschlossener Aufträge und ein Bereich „Dokumente“ mit allen Dateien aller Aufträge.
  • Privater Dateispeicher: Ein Download-Link gilt fünf Minuten und wird nur an berechtigte Nutzer ausgegeben.
  • Dunkles und helles Theme, responsiv vom Smartphone bis zum großen Bildschirm.

04Wie ein Deal abläuft

Der Status eines Auftrags lässt sich nicht von Hand setzen. Alle erlaubten Übergänge stehen in einer einzigen Tabelle, jede Aktion außerhalb davon wird mit einer verständlichen Erklärung abgelehnt. Status, Angebote und Benachrichtigungen ändern sich in einer Transaktion, sodass der Stand des Deals auf den Bildschirmen beider Seiten nie auseinanderläuft.

  1. Auftragnehmer gesucht — der Auftrag ist veröffentlicht, noch keine Angebote.
  2. Wartet auf Bestätigung — mindestens ein Angebot liegt vor, der Auftraggeber wählt.
  3. In Arbeit — ein Angebot ist angenommen, Preis und Frist stehen fest.
  4. Wartet auf Abnahme — die Firma hat die Arbeit mit Dateien und Kommentar übergeben.
  5. In Nachbesserung — der Auftraggeber hat die Arbeit zurückgegeben, die Firma bereitet die nächste Übergaberunde vor.
  6. Abgeschlossen — der Auftraggeber hat die Arbeit abgenommen.

05Was eine unbeteiligte Firma sieht

Datenschutz ist hier keine Fußnote, sondern eine Regel, die in der Datenausgabe selbst steckt. Eine Firma, die nicht am Deal beteiligt ist, sieht den Auftrag als „Auftragnehmer gesucht“ — egal, in welchem Zustand er tatsächlich ist. Sie sieht weder den Preis des Deals noch fremde Angebote noch die Kontaktdaten des Auftraggebers.

Dieselbe Regel gilt an drei Stellen zugleich: in der Serverantwort, bei der Zustellung der Echtzeit-Ereignisse und beim Dateizugriff.

06Technologie

Next.js und React im Frontend, NestJS und PostgreSQL im Backend, durchgehend TypeScript. Echtzeit-Updates laufen über WebSocket, Authentifizierung und Dateispeicher über Supabase.

Die gemeinsamen Regeln des Deals liegen in einem eigenen Paket, das beide Seiten nutzen: Der Button auf dem Bildschirm und die Prüfung auf dem Server werden von ein und derselben Funktion berechnet und können nicht voneinander abweichen.

07Zeitrahmen und Kosten

Vier Monate Entwicklung, danach Abnahmetests beim Auftraggeber. Projektkosten: rund 26.500 $.

Sie brauchen etwas Ähnliches?

Erzählen Sie uns von Ihrer Aufgabe — Kostenschätzung und Zeitplan gibt es nach einem 15‑minütigen Briefing.

Ähnliches Projekt besprechen