尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
This is a Next.js application for the KIZ FARM buyer, seller/farmer, admin, and learning portals.
• Next.js App Router
• React client components for interactive pages
• Tailwind CSS utility classes
• Local React state with useState, useEffect, and useMemo
• Shared API wrapper in lib/kizfarm/api.ts
• Shared auth/session helpers in lib/kizfarm/auth.ts
• Cart state through CartProvider in lib/kizfarm/cart-context.tsx檢視完整 README ↗This is a Next.js application for the KIZ FARM buyer, seller/farmer, admin, and learning portals.
useState, useEffect, and useMemolib/kizfarm/api.tslib/kizfarm/auth.tsCartProvider in lib/kizfarm/cart-context.tsxapp/public/*: public pages, signup, login, OTP, and public blogs index/details.app/buyer/*: buyer dashboard, marketplace, cart, checkout, orders, refunds, chat, profile, and buyer blogs directory.app/farmer/*: seller/farmer dashboard, products, orders, chats, payouts, profile, verification, and farmer blogs directory.app/admin/*: admin shell, dashboard, users, farmers, products, orders, drivers, escrow, refunds, and admin blogs panel.app/learning/*: course marketplace, checkout, subscriptions, and admin course management.Authentication tokens come from the backend JWT login endpoints.
localStorage.sessionStorage for the actual admin gate, so closing the browser session requires admin login again.localStorage only for older admin components that still make direct fetch calls; AdminGuard still requires the session token before admin pages render.AuthGuard protects buyer pages.AdminGuard protects admin pages.app/farmer/layout.tsx protects seller/farmer pages and waits for /farmer/status before rendering.If an unverified user tries to log in, the backend returns needsVerification, the frontend stores the pending email, and sends the user back to /public/otp.
We have implemented a dynamic blog system across the platform:
/public/blog: Displays a beautiful featured banner article and a list of published blogs with category selectors and keyword search filters./public/blog/[slug]: Displays the full blog post dynamically to search engines and non-logged-in users./buyer/blog & /farmer/blog: Displays the interactive blogs index right within the respective dashboard layout./buyer/blog/[slug] & /farmer/blog/[slug]: Displays the full post contents directly inside the dashboard viewport./admin/blog: Admin dashboard to view, edit, or delete existing posts, including publishing status (published vs draft)./admin/blog/new: Dynamic block editor to compose a new post./admin/blog/edit/[id]: Pre-populated block editor to modify posts.components/admin-blog-editor.tsx)Rather than typing unconstrained HTML, admins compose articles using structured Content Blocks. They can add, delete, and drag/reorder:
/blog/upload route, uploaded to Cloudinary, and previewed in real-time.components/blog-detail.tsx)Deserializes the JSON block array from the database and renders standard, accessible HTML:
<h1/h2/h3> tags with premium typography.iframe player wrappers.CartProvider.lib/kizfarm/auth.ts.Buyer checkout no longer takes payment immediately.
/buyer/checkout.awaiting_transport_quote./admin/order-control, adds the transport fare.awaiting_payment.pending.Course purchase payouts are managed in the learning admin page.
Release Payout.Releasing... while the request is running.Funds released and cannot be released twice.npm install
npm run dev
npm run build
The frontend expects the backend URL in NEXT_PUBLIC_API_URL; it falls back to http://localhost:4000.