preloader

OurSpots - Reiseplanung, die das Wohnmobil kennt

blog-image

Die Brücke war zu niedrig. Natürlich erst gemerkt, als wir davor standen. 😬

Wer mit dem Wohnmobil unterwegs ist, kennt das: Das Navi im Handy denkt, man fährt einen Golf. Es schickt einen durch Ortsdurchfahrten, unter Brücken durch und über Straßen, die für das Gewicht gesperrt sind. Und die Stellplätze, auf denen man stand, hat man ein Jahr später sowieso vergessen – der schöne am Deich hieß irgendwas mit H.

Daraus ist OurSpots geworden.

Oben alle gesammelten Stellplätze auf einer Karte – da kommt mit jeder Reise etwas dazu.

Routen, die die Maße kennen

Das war der eigentliche Auslöser. Eine Reise bekommt ein Fahrzeug zugeordnet – mit Höhe, Gewicht und Länge – und die Route wird über OpenRouteService damit berechnet. Keine zu niedrigen Brücken, keine gesperrten Straßen.

Eine Reise mit Start, Ziel, Zwischenzielen und dem zugeordneten Fahrzeug - hier ein Kastenwagen mit 6,4 m

Eine Reise mit Start, Ziel, Zwischenzielen und dem zugeordneten Fahrzeug - hier ein Kastenwagen mit 6,4 m

Längere Touren lassen sich in Etappen zerlegen, die Reihenfolge der Ziele kann man optimieren lassen (als Vorschlag, den man erst bestätigen muss – ich will nicht, dass mir eine Software ungefragt die Reise umsortiert), und am Ende fällt eine GPX- oder KML-Datei fürs Navi raus.

Berechnete Routen werden übrigens zwischengespeichert. Nicht aus Geschwindigkeitsgründen, sondern weil das API-Kontingent sonst für dasselbe Ergebnis dreimal draufgeht. 💰

Stellplätze sammeln

Der zweite Teil ist das Logbuch. Ein Stellplatz entsteht über die Karte oder unterwegs per „Hier bin ich" – Standort, Name, Bewertung, Fotos in einem Zug, während man noch davor steht.

Mit Bewertung, Preis und Ausstattung - und durchsuchbar, wenn man ihn wiederfinden will

Mit Bewertung, Preis und Ausstattung - und durchsuchbar, wenn man ihn wiederfinden will

Dazu Art, Preis, Nächte, 18 Ausstattungsmerkmale und Notizen. Einzelne Notizen lassen sich als privat markieren, die verlassen die App nie – nicht jede Anmerkung über die Nachbarn möchte man beim Teilen mitschicken. 😇

Später wird daraus ein Reisetagebuch mit Kilometerständen, Tankungen samt errechnetem Verbrauch und Ausgaben nach Kategorien. Am Ende einer Reise sieht man, was sie gekostet hat – pro Tag und pro Kilometer.

Der schwierige Teil: offline

Genau da, wo man die App am meisten braucht, ist das Netz am schlechtesten. OurSpots ist deshalb als PWA installierbar: Stellplätze und Fotos, die offline erfasst werden, warten lokal und gehen los, sobald wieder Empfang da ist. Die Oberfläche zeigt, wie viel noch aussteht. Kartenausschnitte kann man vorab laden.

Damit das gefahrlos funktioniert, steckt eine Entscheidung dahinter, die man der App nicht ansieht: IDs werden auf dem Client erzeugt und alle Schreibzugriffe laufen über PUT. Dadurch ist jede Zustellung wiederholbar – die Warteschlange darf nach einem Abbruch einfach nochmal senden, ohne dass derselbe Stellplatz dreimal in der Liste landet. Alles andere wird an einem Funkloch irgendwann sehr unschön.

Teilen

Reisen lassen sich für Mitreisende freigeben, wahlweise mit Schreibrechten. Und es gibt einen öffentlichen Link für Leute ohne Konto – wahlweise mit Fotos, jederzeit widerrufbar.

Technik

NestJS mit Prisma auf MariaDB im Backend, React mit Vite, Leaflet und Dexie im Frontend. Die Validierungs-Schemas liegen in einem gemeinsamen Paket: Das Frontend prüft damit seine Formulare, das Backend dieselben Daten nochmal.

Der Code ist offen: