2nd Brain

Bestandsaufnahme

/home/darth/Documents/Mardowns/10_Projekte/MultiApps/obsolent/Bestandsaufnahme.md

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) + tier und apps[] mit hasPaid/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ötigt GEMINI_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 und dist/; vermutlich lauffähige Einzelapp, keine Plattform-Integration dokumentiert.
  • shortener: Svelte SPA (Flowbite, Build in public/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.getSignedJwtToken importiert jwt nicht; mehrere Apps laufen auf eigenen Ports/Stacks ohne Deployment-Scripts.
Attachments
Noch keine.