2nd Brain

Projekt

/home/darth/Documents/Mardowns/10_Projekte/MultiApps/apps/MadeIn/Projekt.md

Projekt: "Made in ..."

1. Projektübersicht

Eine mehrsprachige Webseite, auf der Nutzer unbegrenzt Werbung ansehen können, gegen Spende werbefrei sind und Anbieter ihre Produkte/Dienstleistungen gegen Gebühr listen können. Hauptslogan: made in ... (Browser-Sprache erkennbar, manuell wechselbar).

Technologie-Stack:

  • Frontend: SvelteKit
  • Backend / DB: Supabase (PostgreSQL)
  • Zahlungsintegration: Stripe oder Revolut
  • Werbeeinblendung: Ad-Server / Ad Networks
  • Übersetzung: DB-basiert oder maschinell

Design: minimalistisch, responsive, fokus auf Content.


2. Datenbankstruktur (Supabase / PostgreSQL)

Users

FeldTypBemerkung
idUUIDPK
emailtextunique
password_hashtext(Supabase Auth)
is_ad_freebooleannach Spende
preferred_languagetextz. B. "de", "fr"
created_attimestampauto

Providers / Anbieter

FeldTypBemerkung
idUUIDPK
user_idUUIDFK Users
nametextName der Firma/Person
descriptiontextKurzbeschreibung
pricenumericListing-Gebühr
languagetextHauptsprache
categorytextz. B. Dienstleistungen
created_attimestampauto

Services / Artikel

FeldTypBemerkung
idUUIDPK
provider_idUUIDFK Providers
titletextTitel
descriptiontextBeschreibung
pricenumericoptional
languagetextÜbersetzungssprache
created_attimestampauto

Payments

FeldTypBemerkung
idUUIDPK
user_idUUIDFK Users
amountnumericin EUR
typetext"donation" / "listing_fee"
statustext"pending"/"completed"
created_attimestampauto

Ads / Werbung

FeldTypBemerkung
idUUIDPK
provider_idUUIDoptional
contenttextHTML/JS-Code
impressionsintoptional
created_attimestampauto

3. Dynamischer Slogan

import { browser } from "$app/environment";

let userLang = "en"; // default
if (browser) {
  userLang = navigator.language.split("-")[0];
}
$: slogan = `made in ${userLang}`;
  • Sprache manuell wechselbar über UI

4. Zahlungsintegration

  • Stripe: einmalige Spenden, wiederkehrende Zahlungen, Anbieter-Listings
  • Revolut: alternative für europäische Nutzer, ähnlich wie Stripe
  • Webhooks zum Aktualisieren von Users.is_ad_free und Payments.status

5. Werbeeinblendung

  • Externe Netzwerke: Google AdSense, AdButler
  • Eigene Ads: Datenbankbasiert, Impressionen zählen
  • Werbefrei für Spender im Frontend:
{#if !user.is_ad_free}
  <AdComponent ads={ads} />
{/if}

6. Frontend-Struktur (SvelteKit)

src/routes/
├─ +layout.svelte        # global layout, Header/Footer, Ads, Slogan
├─ +page.svelte          # Homepage
├─ /providers/
│   ├─ +page.svelte      # Liste aller Anbieter
│   └─ [id]/+page.svelte # Detailseite Anbieter
├─ /services/
│   └─ [id]/+page.svelte # Detailseite Artikel/Dienstleistung
├─ /auth/
│   └─ login/+page.svelte
├─ /donate/+page.svelte  # Spendenformular
├─ /admin/
│   └─ +page.svelte      # Anbieterverwaltung, Ads-Upload

7. Grundlegende Features

  1. Multilingual: Browser-Sprache erkennen, manuell wechselbar, Übersetzungen in DB
  2. Werbung & Spenden: Ads anzeigen, Spender werbefrei, Spendenformular mit Stripe/Revolut
  3. Anbieter-Listings: Anbieter zahlen Gebühr → Listing freigeschaltet, filterbar nach Kategorie/Sprachen
  4. Minimalistisches Design: Klarer Header mit Slogan, Grid für Anbieter & Services, Footer mit Impressum & Datenschutz

Nächster Schritt

  • Konkrete SvelteKit-Projektstruktur
  • Supabase-Setup inkl. Tabellen
  • Beispiel-Routen für Providers, Services, Donate, Auth, Ads
Attachments
Noch keine.