尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Lenden app for margdarshak
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Payment collection, transfer, settlement, and daily closing app for Guest House, Margdarshak Library, and Margdarshak Shikshan Sansthan.
• Next.js App Router
• Supabase Auth, Postgres, Storage, and RLS
• TypeScript
• React Query client cache with view-only persistence
• PWA manifest and service worker for browser install/add-to-home-screen support
Lenden runs as a Next.js backend-for-frontend over Supabase. There is no active Supabase Edge Function in the request path.檢視完整 README ↗Payment collection, transfer, settlement, and daily closing app for Guest House, Margdarshak Library, and Margdarshak Shikshan Sansthan.
Lenden runs as a Next.js backend-for-frontend over Supabase. There is no active Supabase Edge Function in the request path.
src/app/page.tsx sends members to their last active /b/[businessSlug]; users without active access go to the global /account hub, and platform administrators without a membership go to /admin/businesses./api/businesses/[businessId]/bootstrap and /api/businesses/[businessId]/dashboard validate membership/support access and include the business in every React Query cache key.src/app/actions.ts; those actions resolve the business from the authenticated request URL, verify membership/support access, and use an authenticated tenant client so RLS remains active.src/proxy.ts runs the Supabase cookie refresh helper before application routes.business_id; tenant files use <business_id>/<entity>/<record_id>/...; storage and table policies enforce the same boundary.Create .env.local:
NEXT_PUBLIC_SUPABASE_URL=https://zxewmhlgrjdiumoiaina.supabase.co
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=sb_publishable_j7srvJgYdT9dEyqDwOW9mQ_-GSZDCfl
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
APP_BASE_URL=http://localhost:4000
[email protected]
RESEND_API_KEY=your_resend_api_key
RESEND_FROM_EMAIL=Lenden <[email protected]>
The service role key and Resend key are server-only. Configure Google in Supabase Auth, enable Manual Linking, and allow /auth/callback for local and production URLs. Financial mutations use the signed-in user's authenticated Supabase client and remain subject to RLS.
RESEND_API_KEY and RESEND_FROM_EMAIL are used by Lenden for business invitations and access notifications. Supabase Auth securely generates and verifies signup and recovery tokens, but production delivery must use the configured Resend SMTP transport rather than Supabase's default mail service. Configure Supabase Authentication → Emails → SMTP Settings with Resend:
smtp.resend.com465 or 587resendLenden <[email protected]>Set the deployed app environment to APP_BASE_URL=https://lenden.margdarshakss.com. Set the production Supabase Site URL to the same origin and allow these redirect URLs:
https://lenden.margdarshakss.com/auth/callbackhttp://localhost:4000/auth/callbackThe app callback accepts both Supabase's default code redirect and direct token-hash links. For a cross-browser-safe custom Confirm signup template, use:
<a href="{{ .RedirectTo }}&token_hash={{ .TokenHash }}&type=email">Verify email</a>
For the Reset password template, use the same structure with type=recovery. Lenden always supplies a validated /auth/callback?flow=...&next=... value as RedirectTo.
Run locally:
npm install
npm run dev
Open http://localhost:4000.
Apply the Supabase migrations before deploying the matching application build. The multi-business rollout is additive: it creates the tenant/membership tables, backfills the “Lenden Legacy Business,” then enables tenant constraints and RLS.
supabase db push
supabase test db
This app no longer ships a Supabase Edge Function. Keep mutation logic in Next.js Server Actions unless a new deployment boundary is deliberately introduced.
With the service role key set, /setup remains a deployment-only bootstrap for the first platform administrator. After bootstrap, every user signs up with email/password or Google. Platform administrators approve business requests or assign a registered account as the initial Owner; Owners and Managers grant business-scoped access by email without managing credentials.
npm run lint
npm run build