Fallstudie
WebXRFlow
Eine frühe Browser-CMS für WebXR-Szenen. Konten und Projektdaten sind vorhanden. Der 3D-Editor und immersive Sitzungen sind in diesem Repository nicht enthalten.
- Vue 3
- TypeScript
- Pinia
- Firebase
- GitHub Pages
Overview
Ein Projekt-Dashboard vor einem künftigen Editor.
Geplant ist ein Bereich nach Anmeldung, in dem Nutzer Projekte erstellen, 3D-Szenen bearbeiten, als JSON speichern und im Browser, in AR oder VR öffnen. Läuft derzeit der Konten- und Projekt-Teil: Anmeldung per E-Mail und Google, Dashboard zum Erstellen, Auflisten und Löschen von Projektdokumenten sowie Routen für Editor, Galerie und Viewer.
Die Marketing-Startseite beschreibt die Produktrichtung für AR- und VR-Szenen im Web. Planungsnotizen skizzieren ein MVP für einen Entwickler. Die laufende Version ist eine frühe Browser-CMS mit Authentifizierung, Projektverwaltung und Firebase — keine live Creator-Plattform und kein fertiger visueller Editor.
My role
Architektur, Vue-App und Firebase.
Ich habe die Anwendungsstruktur definiert, die Bildschirme gebaut und Firebase Authentication sowie Firestore angebunden. Jeder Commit auf main stammt von mir. Die Commits vom Oktober 2026 veröffentlichen die Demo auf GitHub Pages.
Kernimplementierung
Anmelden, dann ein Projektdokument.
-
01
Registrierung oder Anmeldung per E-Mail und Passwort oder Google-Popup. Beim ersten Login wird ein Profil unter
users/{uid}angelegt. -
02
Das Dashboard listet die Projekte dieser Person, erstellt eines über einen Dialog und löscht es nach Bestätigung.
-
03
Ein neues Dokument speichert Titel, Beschreibung,
isPublished: falseundsceneDatamit Version1.0und leeremobjects-Array. -
04
Von dort öffnen sich Editor-, Galerie- und Viewer-Routen. Sie laden das Dokument nicht und rendern keine Szene.
Architecture
Vue und Pinia vor Firebase.
Vue-App
Router, Pinia und die Bildschirme. Route Guards lesen den Auth-Store und rufen Firebase nicht direkt auf.
Auth-Store
Pinia kommuniziert mit Firebase Authentication und schreibt das Profil users/{uid} in Firestore.
Projekte-Store
Pinia nutzt die Collection projects. Das Dashboard ist der Bildschirm, der sie verwendet.
Entwicklungsherausforderungen
Unterpfad-Deploy, Projektabfrage und Auth-Guard.
-
01
Die Demo läuft unter
/webxrflow/auf einer bestehenden Site, lokale Entwicklung unter/. Die Vite-Basis ist/webxrflow/nur wennGITHUB_PAGESgesetzt ist; der Router nutzt diese Basis. GitHub Pages schreibt unbekannte Pfade nicht um, daher kopiert der Workflowindex.htmlnach404.html. Deep Links liefern HTTP 404 mit App-Shell, Vue startet trotzdem. -
02
Die Projektliste filtert nach
userIdund sortiert nachupdatedAtim Browser — ohne zusammengesetzten Firestore-Index. Die Abfrage veröffentlichter Projekte nutzt weiterhinorderBy, kein Bildschirm ruft sie auf. -
03
Firebase stellt den Nutzer asynchron wieder her. Der Route Guard wertet einen leeren Nutzer als abgemeldet und wartet nicht — ein Dashboard-Refresh kann auf der Login-Seite landen. Diese Lücke ist offen.
Project status
Funktionierende Datensätze, Prototyp-Bildschirme.
In diesem Repository
- Registrierung per E-Mail und Passwort, Google-Anmeldung und Abmeldung.
- Projektdokumente erstellen, auflisten und löschen.
- Leeres Szenen-JSON-Feld in jedem neuen Projekt.
- Client-Routen und GitHub-Pages-Deploy.
- WebXR-Unterstützungsprüfung im Viewer.
Für eine spätere Phase
- 3D-Renderer, Szeneneditor und Objekttransformationen.
- AR- und VR-Sitzungen.
- Veröffentlichung und Galerie aus Firestore-Daten.
- Asset-Upload aus der Oberfläche.
Links
Demo und Quellcode.
-
Live-Demo
Marketing-Seite, Anmeldung und Viewer-Shell aus diesem Repository.
-
Repository
github.com/saveniukoleh/webxrflow
Vue-3-App, Firebase-Clientmodule und GitHub-Pages-Workflow.
Interesse an Zusammenarbeit? Kontakt aufnehmen.