尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Burkina Faso 的房產平台:使用 Next.js 建置網站,具驗證 API 與操作儀表板,整合 Supabase、Clerk 與行動支付。
AI 翻譯
Property platform for Burkina Faso: a Next.js website, authenticated API, and operations dashboard with Supabase, Clerk, and Mobile Money payments.
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Roogo's public property website, owner/agent workspace and staff operations dashboard for Burkina Faso. This Next.js repository also owns the authenticated API and database migrations used by the Roogo mobile app.檢視完整 README ↗Roogo's public property website, owner/agent workspace and staff operations dashboard for Burkina Faso. This Next.js repository also owns the authenticated API and database migrations used by the Roogo mobile app.
The mobile app is a client of this backend. Server rules, not client prices or browser-return parameters, decide payment ownership, price, status and fulfillment.
Backend PR #29 and mobile PR #29 add clear failure explanations and recovery that preserves an unresolved or already-paid deposit.
The feature covers customer-initiated reservations, rent, listings, boosts, hosted payments and 3D visits. Owner payouts, refunds and a notification inbox are outside its scope.
NEEDS_SUPPORT means money was collected but the reservation is unconfirmed. Retain the reference and offer support, not another payment.Database prerequisites executed and verified on Roogo on 2026-09-09; feature release still pending.
| Migration | Status | Database responsibility |
|---|---|---|
| 070 | Executed | Failure fields, delivery claims, cooldown and send boundaries |
| 071 | Executed | Atomic property reservation/finalization |
| 072 | Executed | Single-use listing payments, durable consumption and atomic amenities |
See the execution ledger for the exact project, UTC times, checksums and verification. Applying SQL does not deploy the PR's API/screens or prove push/SMS delivery. These applied files are now immutable; future database changes require a new migration.
Open release blocker: mobile can become trapped after reopening an old successful payment link without its original listing draft. This documentation/migration task did not fix that review finding. Backend deployment, the mobile fix/release and native/provider acceptance checks remain in ROADMAP.md.
npm install
npm run dev
npm test
npx tsc --noEmit --incremental false
npm run lint -- --max-warnings=0
The development server listens on port 3000. See .env.example and CLAUDE.md for configuration and architecture. Keep Clerk, Supabase service-role, payment and messaging credentials server-side; never place them in mobile EXPO_PUBLIC_* variables.
Current production migration history records only 070–072: older schema existed without a history table. Do not run an unrestricted supabase db push or mark 001–069 applied by assumption. Older history needs a separate audit before adopting a full CLI migration baseline.
free_success_fee: 0 XOF at submission; one fee equal to 50% of the listed
monthly rent is stored and collected from the first rent Roogo receives.upfront_package: the selected pack, monthly-rent commission, and add-ons are
paid before the listing is created; no deferred success fee is stored.daily_free: daily inventory is submitted without the monthly success fee.All monthly free_success_fee submissions require explicit acceptance. Later
rent collection is enabled by default when a monthly agreement becomes active;
the owner can opt out for future unpaid installments, and the 7% collection fee
applies only to rents paid through Roogo. See docs/SYSTEM.md for settlement,
opt-out, and idempotency details.
Use this section as the source of truth when testing payments locally.
roogo-web/.env.local) controls payment provider mode:
PAWAPAY_LOCAL_MODE=sandbox|liveDEV_PRICING_OVERRIDE=true|falseroogo/.env.local) controls mobile UI pricing display + backend target:
EXPO_PUBLIC_API_URL=http://<YOUR_LOCAL_IP>:3000EXPO_PUBLIC_DEV_PRICING_OVERRIDE=true|falseDEV_PRICING_OVERRIDE changes pricing response used for payment amount calculation in local testing.roogo-web and mobile app packager).Backend (roogo-web/.env.local):
PAWAPAY_LOCAL_MODE=sandbox
DEV_PRICING_OVERRIDE=false
Result:
Backend (roogo-web/.env.local):
PAWAPAY_LOCAL_MODE=sandbox
DEV_PRICING_OVERRIDE=true
Result:
Backend (roogo-web/.env.local):
PAWAPAY_LOCAL_MODE=live
DEV_PRICING_OVERRIDE=true
Result:
Backend (roogo-web/.env.local):
PAWAPAY_LOCAL_MODE=live
DEV_PRICING_OVERRIDE=false
Result:
In roogo/.env.local:
EXPO_PUBLIC_API_URL=http://<YOUR_LOCAL_IP>:3000
EXPO_PUBLIC_DEV_PRICING_OVERRIDE=true
Notes:
EXPO_PUBLIC_API_URL must point to your local backend when testing from a physical device.EXPO_PUBLIC_DEV_PRICING_OVERRIDE changes what user sees in mobile UI, but payment environment still comes from backend PAWAPAY_LOCAL_MODE.