Regionale Lebensmittel direkt vom Bauern bestellen und abholen. Pilotbetrieb mit ausgewählten Höfen.
Translation pending
CommerceTypeScript · JavaScriptGitHub @UttorangerOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Regionale Lebensmittel direkt vom Bauern — eine digitale Vermittlungsplattform im Pilotbetrieb. • Framework: Next.js 16 (App Router, Turbopack) • Datenbank: PostgreSQL via Supabase + Prisma 7 (PrismaPg Adapter) • Auth: Better Auth 1.6 • Zahlungen: Stripe Connect Express + Webhooks • E-Mail: Resend + react-email • Styling: Tailwind CSS 4 • Upload: Vercel Blob • Deployment: Vercel Voraussetzungen • Node.js 20+ • pnpm (npm install -g pnpm) • Stripe CLI (für lokales Webhook-Testing) • Supabase-Konto mit PostgreSQL-Datenbank Fülle alle Felder in .env.local aus (Supabase, Stripe, Resend, etc.).Read the full README ↗
Regionale Lebensmittel direkt vom Bauern — eine digitale Vermittlungsplattform im Pilotbetrieb.
| Bereich | Feature |
|---|---|
| Öffentliche Hof-Seite | Produkte anzeigen, Warenkorb, Abholzeit wählen, Online- oder Vor-Ort-Zahlung |
| Bestellabwicklung | Stripe-Zahlung, E-Mail-Bestätigungen (Kunde + Bauer), Abholbestätigung |
| Farmer-Dashboard | Bestellübersicht, Produkt- und Bestandsverwaltung, Direktverkauf eintragen |
| Auswertung | Umsatz nach Zeitraum, Verkaufskanal-Vergleich |
| Einstellungen | Hof-Profil, Abholzeiten, Stripe Connect, Pause/Urlaub |
corepack enable oder npm install -g pnpm) — nie npm oder yarn im Projektgit clone <repo-url>
cd bauern-plattform
pnpm install
cp .env.example .env.local
Fülle alle Felder in .env.local aus (Supabase, Stripe, Resend, etc.).
# Alle Migrationen einspielen (nie `prisma db push` — siehe DEVELOPMENT.md, „Schema-Änderungen")
pnpm exec dotenv -e .env.local -- prisma migrate deploy
# Testdaten laden: 37 erfundene Höfe im Innviertel, Produkte in allen Kategorien,
# Bestellungen, Kostenposten, Meldungen. Der Seed nennt am Ende alle Zugänge
# (Passwort überall test1234) und je Hof einen Satz, was dort zu testen ist.
pnpm db:seed
Der Seed läuft nur gegen die Dev-Datenbank (farmerzone-dev), nie gegen Produktion.
pnpm dev
App läuft auf http://localhost:3000.
# In separatem Terminal:
stripe listen --forward-to localhost:3000/api/stripe/webhook
Den ausgegebenen whsec_...-Secret als STRIPE_WEBHOOK_SECRET in .env.local eintragen.
vercel
Oder über vercel.com importieren.
Alle Variablen aus .env.example im Vercel Dashboard unter Settings → Environment Variables eintragen.
Wichtig für Produktion:
BETTER_AUTH_URL = https://deine-domain.atNEXT_PUBLIC_APP_URL = https://deine-domain.atSTRIPE_SECRET_KEY = Live-Key (sk_live_...) — nur für Production; ein Live-Schlüssel (sk_live_/rk_live_) startet Stripe nur bei VERCEL_ENV=production (Modus-Wache, Register Z2): nicht in Vorschau, Tests und lokal mit next dev. Lokal mit next start startet er, sobald VERCEL_ENV=production gesetzt ist (etwa nach vercel env pull --environment=production)VERCEL_ENV zur Laufzeit sperrt die Modus-Wache Stripe mit Live-Schlüssel auch in der ProduktionNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY = Live-Key (pk_live_...), ebenfalls nur für ProductionEMAIL_FROM = Adresse von verifizierter Resend-DomainDie Umstellung von Test auf Live Schritt für Schritt: docs/betrieb/stripe-live.md.
Die Testumgebung (Branch staging unter einer eigenen Adresse, Entwicklungsdatenbank, Stripe-Test) mit ihren Branch-Variablen NEXT_PUBLIC_APP_URL, BETTER_AUTH_URL, STRIPE_WEBHOOK_SECRET und TEST_EMPFAENGER sowie NEXT_PUBLIC_TESTUMGEBUNG_URL für Production: docs/betrieb/testumgebung.md.
Im Stripe Dashboard einen neuen Webhook anlegen:
https://deine-domain.at/api/stripe/webhookpayment_intent.succeeded, payment_intent.payment_failed, payment_intent.canceled, refund.failed, charge.refund.updated, account.updated — ohne canceled wird eine abgebrochene Zahlung nie storniert und ihre Ware bleibt reserviert; ohne die beiden Erstattungs-Ereignisse bleibt eine später gescheiterte Erstattung unbemerkt.STRIPE_WEBHOOK_SECRET in Vercel eintragen.Dazu einen zweiten Endpunkt für die verbundenen Höfe („Events von verbundenen Konten“ / Connect):
https://deine-domain.at/api/stripe/webhookaccount.updated — hält „Online-Zahlung bereit“ aktuell, wenn Stripe ein Hof-Konto sperrt oder wieder freigibt.STRIPE_CONNECT_WEBHOOK_SECRET in Vercel eintragen — das Live-Secret nur für Production, ein Test-Secret für Preview. Die Route prüft gegen beide Secrets.vercel.json enthält bereits die Cron-Jobs (einmal täglich, mehr erlaubt der Hobby-Tarif nicht):
Reservierungs-Bereinigung, Freigabe verwaister Bestellungen (/api/cron/verwaiste-bestellungen)
und den Wochenlauf des Briefkastens. CRON_SECRET muss in Vercel gesetzt sein — ohne bleiben
alle Cron-Routen gesperrt.
prisma migrate deploy)sk_live_..., pk_live_...)resend.com/domains)EMAIL_FROM auf verifizierte Domain-Adresse gesetzt (z.B. [email protected])/api/test-email)/impressum)/[slug])/account) dient nur der Verwaltung von Benachrichtigungen/admin freigeschaltetProprietär — Pilotprojekt, nicht für die Öffentlichkeit freigegeben.