Bestandsaufnahme MultiApps (Stand: automatisch erhoben)
Plattform & Infrastruktur
- Backend unter
backend/server.js: Express + MongoDB (MONGO_URI), JWT-Auth (auth.js), Übersetzungen, dynamische App-Liste (/api/v1/home/init). Einheitliche Users-/Apps-/Translations-Collections vorgesehen. - User-Modell: Basisrollen (user/admin) +
tierundapps[]mithasPaid/paymentDate/expiresAt/isAdFree, aber keine Subscription-/Stripe-Logik implementiert. Keine Webhooks, keine Plan-Validierung, keine Feature-Gates. - Auth/Session: JWT ohne Gerätebindung; kein Mechanismus für „nur einmal eingeloggt“. Ein Fingerprint-basierter Rate-Limiter existiert (
backend/middleware/rateLimiter.js), schützt aber nur API-Calls und verhindert kein Account-Sharing. - Payments/Pläne: README beschreibt Free/Sponsor/Ultimate, aber im Code nicht umgesetzt. Keine zentrale Stripe-Integration, keine Billing-Routen, keine Abo-Status-Prüfung im Backend oder Frontend.
- Datenhaltung: Geplante gemeinsame Mongo-DB. Einige Apps nutzen/planen eigene Backends (z.B. Firebase/Supabase/Einzel-Mongo) und sind nicht in den gemeinsamen Stack eingebunden.
App-Status (je Ordner unter apps/)
auction: Vollständiger Stack (Svelte-Frontend, Express/Mongo-Backend, Stripe-Verzeichnis), aber laut DEVELOPMENT_PLAN Portkonflikt/Server startet nicht; nicht in Hauptplattform integriert.grammarAi: React/TS-Vite App (AI Studio, benötigtGEMINI_API_KEY). Läuft stand-alone, keine Plattform-/DB-Anbindung.URL_shorter: Kleines Express-API mit Mongo-Modell, kein Startserver, kein Frontend, nicht in Plattform verdrahtet.coffefinder: Svelte/Tailwind mit Firebase-Konfiguration unddist/; vermutlich lauffähige Einzelapp, keine Plattform-Integration dokumentiert.shortener: Svelte SPA (Flowbite, Build inpublic/build). Frontend vorhanden, kein gemeinsamer Backend-Hook erkennbar.wasserReminder: Eigenes Express/EJS-Setup mit Sprachdateien/Rate-Limiter, nutzt JSON-Dateien statt zentrale DB; autarke App.blood: Next.js/WebApp mit Netlify-Funktionen und Stripe-Checkout/Portal + Firebase. Fortgeschrittenes Einzelprojekt, aber getrennte User/Payments (nicht über zentrale DB).calculators: Statische HTML/CSS/JS Tools, ohne Backend.games(2048+, newRoyalMatch, wordle+): Kleine Spiele/Prototypen, statisch.WordClock: Statische HTML/JS/Uhr, funktionsfähig, aber ohne Plattform-Anbindung.MadeIn: Konzept-/Planungsdateien (SvelteKit/Supabase skizziert), keine implementierte App.MemeCoinToken: Whitepaper/Assets, kein App-Code.QrShortDoorBell: Nur Prompts/Recherche, kein Code.naviQuiz: Nur Markdown/Idee.platform: Sprachdateien, keine App.qrcode: Nur Beschreibung.taxiBayTreuhand: Boilerplate/Vertragsordner, kein laufender Code.
Bewertung zu den Fragen
- Gemeinsame DB: Ja, vorgesehen über
backend(MongoDB). Viele Einzel-Apps nutzen aktuell eigene Backends/Files und sind nicht angeschlossen. - Gemeinsamer Zahlungsprozessor & Pläne: Nein. Zentrale Payment-Logik fehlt komplett. Einzelne Apps (z.B.
blood, evtl.auction) haben eigene Stripe-Ansätze, aber nichts Vereinheitlichtes. Free-/Paid-/Ultimate-Plan nur als Idee im README/User-Modell, ohne Umsetzung oder Jahresabrechnung. - Anti-Account-Sharing (ein Login pro User): Nicht vorhanden. JWT erlaubt parallele Sessions, kein Device-Binding, kein Session-Store, kein Single-Login-Check; nur ein generischer Rate-Limiter existiert.
Offene Punkte / nächste Schritte (empfohlen)
- Gemeinsames Billing- und Plan-System spezifizieren und implementieren (Stripe + Webhooks + Plan-Gating im Backend/Frontend). User-Modell um echte Subscription-Objekte ergänzen.
- Single-Session/Anti-Sharing: z.B. Refresh-Token-Store pro Device, Session-Invalidierung bei neuem Login, Websocket/Redis-Backed Session Tracking.
- Plattform-Integration klären: Apps auf gemeinsamen Auth/DB/Payments umbauen oder Gateways/Proxys anlegen; je App Minimal-Healthcheck erstellen.
- Technische Schulden:
User.getSignedJwtTokenimportiertjwtnicht; mehrere Apps laufen auf eigenen Ports/Stacks ohne Deployment-Scripts.