ai-startup-skills
创业公司做 AI 产品的 7 步 Agent Skill 合集:验证 → BP → 政策 → 路演 → 获客 → 定价 → 注册。
Translation pending
Dit kort. Dine kunder. Din kanal.
Translation pending
OtherTypeScript · CSSGitHub @AliStair0550OnlineOwner 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
Alius stempel produkt
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Det digitale loyalitetskort i Apple Wallet: stempler, henvisninger, tilbud og beskeder. Live på kort.folka.dk.
Butikken styrer alt fra et dashboard på telefonen. Kunden scanner en QR-kode, skriver navn og e-mail og har kortet i Wallet. Kunder logger aldrig ind.
Installer afhængigheder:
npm install
Opret .env.local ud fra .env.example og udfyld:
cp .env.example .env.local
Som minimum for lokal udvikling skal du bruge:
DATABASE_URL og DIRECT_URL (Neon Postgres)AUTH_SECRET (lav en: openssl rand -base64 32)AUTH_RESEND_KEY og EMAIL_FROM (login-mails)UPSTASH_REDIS_REST_URL og UPSTASH_REDIS_REST_TOKEN (stempler kræver Redis)NEXT_PUBLIC_APP_URL (fx http://localhost:3000)WALLET_ENABLED kan blive false. Alt virker uden Apple Wallet via webkortet.
Opret databaseskema og seed demo-data:
npm run db:migrate # første gang: opretter tabeller
npm run db:seed # opretter "Demo Kaffebar" med liv i data
Seed laver en demo-butik med data og en personale-PIN 1234.
Start udviklingsserveren:
npm run dev
//start/login/app/k/demo-kaffebar/k/[slug]), får et CustomerCard med et unikt serial og en device-cookie, så samme telefon altid rammer samme kort. Webkortet ligger på /kort/[serial] og kan føjes til hjemmeskærmen (PWA)./app/kasse) viser en roterende QR med et signeret engangs-token (JWT, 60 sek.). Kundens kamera rammer /s/[token], som validerer, bruger jti een gang (replay umuligt via Redis), tjekker cooldown, lægger evt. kampagne-multiplier på og skriver stemplet.FLAGGED i audit-loggen og vises i dashboardet.Push repoet til GitHub og importer det i Vercel.
Sæt alle miljøvariabler fra .env.example i Vercel (Production + Preview). Husk at NEXT_PUBLIC_APP_URL skal være det rigtige domæne (https://kort.folka.dk).
Neon: brug den poolede connection string som DATABASE_URL og den direkte som DIRECT_URL.
Build-kommandoen er prisma generate && next build (allerede sat i package.json). Kør migrationer mod produktion:
npx prisma migrate deploy
Resend: verificer afsenderdomænet, så magic links kan sendes.
Alt Wallet-relateret er bygget, men gated bag WALLET_ENABLED. Når din Apple Developer-konto er klar:
Opret et Pass Type ID i Apple Developer (Certificates, Identifiers & Profiles -> Identifiers -> Pass Type IDs), fx pass.dk.alius.stemplet. Sæt det som APPLE_PASS_TYPE_ID.
Generer et pass-certifikat for det Pass Type ID og hent det. Eksporter certifikat + privat nøgle fra Nøglering som en .p12.
Lav en PEM af .p12 (indeholder både certifikat og nøgle):
openssl pkcs12 -in Certificates.p12 -out pass.pem -nodes
base64 -i pass.pem | tr -d '\n' > pass.pem.b64
Indholdet af pass.pem.b64 bliver APPLE_PASS_CERT. Hvis nøglen har adgangskode, sæt den i APPLE_PASS_CERT_PASSWORD.
Hent Apples WWDR-certifikat (Worldwide Developer Relations), konverter til PEM og base64:
openssl x509 -inform der -in AppleWWDRCAG4.cer -out wwdr.pem
base64 -i wwdr.pem | tr -d '\n' > wwdr.pem.b64
Indholdet bliver APPLE_WWDR_CERT.
Team ID: dit 10-tegns Apple Team ID -> APPLE_TEAM_ID.
APNs-nøgle til live pass-opdateringer: opret en Auth Key (.p8) med APNs aktiveret. Base64-encode den til APNS_KEY, og sæt APNS_KEY_ID (nøglens 10-tegns id):
base64 -i AuthKey_XXXXXX.p8 | tr -d '\n' > apns.p8.b64
Slå flaget til: sæt WALLET_ENABLED="true" og redeploy.
Når flaget er slået fra, viser kundens onboarding kun webkortet. Når det slås til, vises "Læg i Apple Wallet" som primær mulighed, og webkortet bliver et link. Ved hvert stempel og hver indløsning sender serveren en APNs-push, så passet opdaterer sig live i Wallet.
En side, der forklarer personalet præcis, hvordan stempling og indløsning virker:
/app/guide)./guide/<slug>, som ejeren kan sende eller lave en QR til, uden at give dashboard-login. Den viser aldrig følsomme data (ingen PIN, nøgler eller kundedata).@media print i globals.css).Én sandhedskilde. Guiden må aldrig indeholde hardcodede systemværdier. Alle faste tal (kodens levetid, standard-cooldown, PIN-låsning, min/max stempler) bor i src/lib/system-config.ts, som både stempel-motoren og guiden importerer fra. Butiksspecifikke værdier (cooldown, antal stempler, belønning, kampagner, Wallet til/fra) hentes live fra databasen via src/lib/guide.ts og renderes server-side.
Vedligehold: Når stempel-motorens adfærd ændres, skal src/lib/system-config.ts og guide-teksten i src/components/guide/GuideContent.tsx gennemgås i samme PR. npm test indeholder en test, der fejler, hvis guiden renderer uden værdierne fra system-config (fx at cooldown-teksten matcher den konfigurerede værdi).
| Kommando | Hvad |
|---|---|
npm run dev | Udviklingsserver |
npm run build | prisma generate + produktion-build |
npm test | Kør tests (sikkerhed + personale-guide) |
npm run db:migrate | Prisma-migration (dev) |
npm run db:seed | Seed demo-data |
npm run db:studio | Prisma Studio |
npm run lint | ESLint |
Et produkt fra Alius.