尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證FarmRisk gives Indian farmers a 15-day weather forecast bias-corrected against IMD observations, root-zone soil moisture from a calibrated water-balance model, and crop risk advisories for their location, in five languages.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Welcome to the FarmRisk frontend repository. This project is a Next.js application designed to provide high-resolution remote sensing, satellite field mapping, and localized climate data backed by predictive AI insights.
This README serves as a guide for team members to understand the architecture, routing mechanics, and code organization.
We use a standard, single Next.js repository to keep our landing page, dashboard console, components, and API routes completely unified.
Below is a breakdown of our current directory tree:
├── app/ # Next.js App Router (Routing & Pages)
│ ├── api/ # Secure serverless API routes
│ │ ├── ai/ # Secure proxy endpoints for LLM insights & chat
│ │ └── weather/ # Secure proxy endpoints for weather API data
│ ├── constants/ # Centralized copy, titles, and layout configurations
│ │ └── content.ts # Dynamic content JSON arrays (Sidebar navigation, headers)
│ ├── dashboard/ # The main, authenticated application console
│ │ ├── layout.tsx # Persistent shell containing the global Sidebar + Top Nav
│ │ ├── page.tsx # Overview sub-page (at /dashboard)
│ │ ├── map/ # Satellite map sub-page (at /dashboard/map)
│ │ ├── profile/ # User profile settings (at /dashboard/profile)
│ │ ├── settings/ # Extended console settings
│ │ └── weather/ # Weather analytics tab
│ ├── globals.css # Global Tailwind CSS configurations
│ ├── layout.tsx # Global HTML root layout wrapper
│ └── page.tsx # Root public-facing Landing Page
├── components/ # Reusable React components
│ ├── app-sidebar.tsx # Our main sidebar wrapper (dynamically built via JSON config)
│ └── ui/ # Low-level shadcn/ui structural primitives
├── hooks/ # Custom global React hooks
├── lib/ # Helper frameworks and utilities (e.g., clsx styling helpers)
└── types/ # Global TypeScript definitions and type guards
Everything inside the app/ directory automatically maps to a URL route.
app/page.tsx (the root /).app/dashboard/. Sub-folders like map/ or profile/ instantly resolve to /dashboard/map and /dashboard/profilelayout.tsxWe utilize Next.js layouts to prevent expensive, jarring UI re-renders:
app/dashboard/layout.tsx serves as the permanent frame for our internal tools.<AppSidebar /> component.{children} prop.To ensure long-term maintainability and prevent copy text or routes from cluttering up layout styles, all content is strictly data-driven.
app/constants/content.tsThis file holds our global string constants (titles, descriptions) as well as the layout configurations for our navigation links.
Instead of hardcoding layout links inside the TSX files, components/app-sidebar.tsx imports configuration JSON arrays directly from content.ts. It iterates over them dynamically using a .map() loop, passing corresponding key routes and matching icon names.
content.ts. You do not need to rewrite any layout markup.app/globals.css). shadcn/ui components (stored locally inside components/ui/ so we can customize them fully).bun.lock).If you are adding a feature:
app/dashboard/<feature-name>/page.tsx folder.app/constants/content.ts to reveal it automatically on the UI console