Ecommerce Template
Next.js·React 등으로 만든 최신 전자상거래 템플릿
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기ProcureAI — one-sentence bulk buying; Kora verifies vendors, holds the money, pays in two stages.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Buy in bulk with one sentence. The AI chooses; Kora makes the choice safe.
Try it live → procureai-six.vercel.app/buy (runs on Kora's sandbox, so every naira is test money)
"300 branded T-shirts, under ₦1.5m, delivered by 23 October."
That one sentence is the whole interface. ProcureAI searches its vendor market for the suppliers that sell what was asked,
reads their messy replies into one comparable table, checks every vendor with Kora, recommends one, takes the payment, holds the money, and pays the vendor only as the
goods arrive. It ends in a record anyone can verify.README 전문 보기 ↗Buy from any vendor, safely, with one sentence. The AI chooses; Kora makes the choice safe.
Try it live → procureai-six.vercel.app/buy (runs on Kora's sandbox, so every naira is test money)
"300 branded T-shirts, under ₦1.5m, delivered by 23 October."
That one sentence is the whole interface. ProcureAI searches its vendor market for the suppliers that sell what was asked, reads their messy replies into one comparable table, checks every vendor with Kora, recommends one, takes the payment, holds the money, and pays the vendor only as the goods arrive. It ends in a record anyone can verify.
Buying from a vendor you don't know yet in Nigeria runs on WhatsApp voice notes, "send half now", and trust. A buyer compares prices that arrive in different shapes, pays a stranger up front, and has no proof afterwards. The cheapest quote is often the one that isn't real.
| Step | What the buyer sees | |
|---|---|---|
| 1 | Ask | One sentence. ProcureAI shortlists up to eight vendors that sell that item and asks them all. They reply in their own words, at their own pace (some decline, some never answer); ProcureAI turns "boss good evening, 300 pcs i go do am 3900 per one" into a clean row. Totals are computed in code, never by the model. |
| 2 | Check | Kora confirms each vendor is a registered business and that the payout account belongs to that business or one of its directors. A vendor that fails is struck through with Kora's reason, and cannot be approved or paid. |
| 3 | Approve | One click. Kora opens a one-time bank account for this purchase only. |
| 4 | Pay | The buyer transfers from any bank app. ProcureAI re-asks Kora how much actually arrived before crediting a single kobo. Kora caps one account at ₦1,000,000, so a ₦1.26m order is paid as two honest transfers. |
| 5 | Hold | The money sits held. 30% goes to the vendor now, so they can start work. |
| 6 | Deliver | The buyer gets a 6-digit code. The vendor types it on delivery and the remaining 70% is released. If the buyer never hands it over, the vendor proves delivery with a photo, and the 70% is released after 72 hours unless the buyer reports a problem. |
| 7 | Record | A shareable page lists every naira in and out with its Kora reference, and ends on Left unaccounted: ₦0. It saves as an image. |
Along the way, buyer and vendor can message each other on the order. If something goes wrong, the buyer presses
Something's wrong: payouts freeze, both sides add a note and a photo, and ProcureAI either pays the vendor or refunds
what is still held through Kora. Vendors register once (/vendors/join), after which a quote is one message; a
vendor who hasn't registered can still reply through a one-off link.
Take Kora out and ProcureAI stops existing: Kora gates the recommendation (identity), holds the money (one-time bank-transfer accounts) and releases it (payouts). Every state change is confirmed against Kora twice, by signed webhook and by asking Kora directly.
| Kora capability | Used for |
|---|---|
| CAC business verification | Is this vendor a real, active registered company? |
| Bank account verification | Does the payout account belong to the company or a director? (name matching rule below) |
| Bank-transfer charges + charge query | The one-time pay-in account, and the truth about what was paid |
| Payouts + payout query | Stage 1 (30%) and Stage 2 (70%) to the vendor, each with its own reference |
| Balances and balance history | Pre-flight funds check, and a reconciliation screen that matches Kora's ledger to ours |
| Webhooks | Signed events, verified over the raw bytes, stored first, processed after |
| Refunds + refund query | Disputes ruled for the buyer: what is still held goes back through Kora |
286 automated tests (unit, integration against a real Postgres, and Playwright end to end), plus a suite that runs the full purchase against the real Kora sandbox.
The click-by-click script, with every failure state you can trigger on demand, is in docs/DEMO.md.
Next.js (App Router, TypeScript strict) · Postgres + Prisma · Zod on every boundary · server-sent events for live
screens · deployed on Vercel. One module, lib/kora/, is the only code that talks to Kora.
docs/ARCHITECTURE.md covers the state machine, the webhook path and the concurrency rules.
Needs Node 20+ and Docker. No keys required: the offline mode replays Kora's documented responses and shows a red OFFLINE banner on every page.
npm install
npm run db:up # Postgres in Docker
npx prisma migrate deploy
npm run dev:offline # http://localhost:3000/demo
npm test # unit + integration tests