尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
De website van Lida Thiry Imago & Kledingadvies. De kern is een online kledingadviestest: een bezoeker bestelt en betaalt (Mollie), meet zichzelf op, beantwoordt een paar vragen en krijgt direct een persoonlijk advies over haar figuurtype als PDF. Daaromheen:檢視完整 README ↗
De website van Lida Thiry Imago & Kledingadvies. De kern is een online kledingadviestest: een bezoeker bestelt en betaalt (Mollie), meet zichzelf op, beantwoordt een paar vragen en krijgt direct een persoonlijk advies over haar figuurtype als PDF. Daaromheen:
/admin, alleen voor beheerders, met tweestapsverificatie): bestellingen,
adresboek, berichten, nieuwsbrieven (campagnes, automatische mails, A/B-tests),
blog (met AI-schrijfhulp), pagina's en homepage, beeldbank en mediabibliotheek,
adviesteksten per figuurtype, kortingscodes, statistieken, logboek, fouten,
versiegeschiedenis, back-ups en pushmeldingen (installeerbaar als app).src/-map, import-alias @/*). Let op: deze versie
wijkt af van oudere Next.js (bijv. src/proxy.ts in plaats van middleware); zie
AGENTS.md en node_modules/next/dist/docs/.@supabase/ssr en @supabase/supabase-jsengines in package.json)cp .env.example .env.local # en vul de geheimen in (zie hieronder)
npm install
npm run dev # http://localhost:3000
Een eerste beheerder maak je met node scripts/maak-beheerder.mjs <e-mailadres>
(gebruikt SUPABASE_SERVICE_ROLE_KEY en NEXT_PUBLIC_SUPABASE_URL uit .env.local);
inloggen gaat daarna via /admin/inloggen.
Alle variabelen staan met uitleg in .env.example. In het kort:
| Groep | Variabelen |
|---|---|
| Supabase | NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY |
| Site | NEXT_PUBLIC_SITE_URL, BEHEER_EMAIL |
| Betalen | MOLLIE_API_KEY, GRATIS_TEST (alleen 1 zet bestellen zonder betalen aan; nooit in productie) |
RESEND_API_KEY, RESEND_VAN, RESEND_WEBHOOK_SECRET | |
| Geheimen | CRON_SECRET, LINK_GEHEIM, NIEUWSBRIEF_GEHEIM |
| Blog | ANTHROPIC_API_KEY |
| Push | VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_SUBJECT (maak ze met node scripts/vapid-sleutels.mjs) |
| Testomgeving | PRODUCTIE_SUPABASE_REF (of PRODUCTIE_SUPABASE_URL) |
Beheer → Klaar voor livegang controleert of alles goed staat.
| Commando | Wat |
|---|---|
npm run dev | Ontwikkelserver op http://localhost:3000 |
npm run build / npm start | Productiebuild maken en starten |
npm run lint | ESLint |
npm test / npm run test:watch | Unittests (Vitest) |
npx next typegen && npx tsc --noEmit | Typecontrole (typegen maakt eerst de routetypes) |
npm run e2e:lokaal | Bouwt een testsite zonder database en draait alle Playwright-tests |
npm run e2e | Playwright tegen een andere omgeving (zie docs/testen.md) |
npm run snelheid | Laadtijden van de publieke pagina's meten |
npm run migraties:bundelen | Alle migraties in één bestand (supabase/alle-migraties.sql) voor een nieuw, leeg Supabase-project |
Losse scripts in scripts/: maak-beheerder.mjs, vapid-sleutels.mjs en
backup-terugzetten.mjs (een back-up terugzetten in de testdatabase).
In vercel.json; Vercel stuurt CRON_SECRET mee als Bearer-token.
| Pad | Wanneer (UTC) | Wat |
|---|---|---|
/api/onderhoud/opschonen | dagelijks 03:00 | Oude lichaamsmaten anonimiseren, vastgelopen betalingen en adviezen afronden, herinneringen (test, betaling, afspraak), reviewuitnodigingen, geplande cadeaubonnen, logboek opruimen |
/api/nb/verwerk | dagelijks 07:00 | Nieuwsbrieven: ingeplande campagnes starten, automatische mails inplannen, de wachtrij versturen, onbevestigde aanmeldingen opruimen |
docs/testen.md: unittests, e2e, toegankelijkheid, CI en laadtijd metendocs/testomgeving.md: een aparte testdatabase voor Vercel-previewsdocs/backup-en-herstel.md: back-ups maken en terugzettensrc/app/: pagina's en API-routes (src/app/admin/ is het beheer)src/lib/: logica, zonder imports uit src/app/. Pure regels (*regels.ts) zijn
los te testen; gedeelde hulpjes o.a. in datum.ts, prijs.ts, email.ts,
slug.ts, opslag.ts (bucketnamen) en uitkomst.tssrc/lib/supabase/: clients voor browser (client.ts), server (server.ts) en
service-role (admin.ts); sessie.ts ververst de sessie vanuit src/proxy.tssrc/components/: gedeelde componentensupabase/migrations/: databasemigraties (op volgorde van bestandsnaam)e2e/: Playwright-tests.github/workflows/ci.yml) draait lint, typecontrole,
unittests, build en e2e.supabase/migrations/ moet op de
productiedatabase (en de testdatabase) zijn toegepast vóórdat de code die erop
rekent live gaat, bijv. via de SQL Editor van Supabase. Maak eerst een back-up.LINK_GEHEIM en NIEUWSBRIEF_GEHEIM (eigen, lange
willekeurige geheimen). Zonder deze geheimen werken betaalherinneringslinks en
nieuwsbrieven niet. Wissel ze niet zonder reden: links in verstuurde mails worden
dan ongeldig.GRATIS_TEST, en gebruik de live-sleutel van Mollie.lida-thiry, ref hzuhkollroehnrsghyax, regio eu-central-1hylke-s-projects/lida-thiry, gekoppeld aan deze GitHub-repo