Piyush4521/OneKont

GitHub: Piyush4521/OneKont

基于角色的 AI 驱动灾难响应平台,整合市民 SOS 上报、实时事件地图、志愿者工作流和政府指挥中心于一体。

Stars: 0 | Forks: 0

# OneKont 2.0 OneKont 2.0 是一个基于角色的灾难响应 Web 平台,使用 Next.js、Supabase Realtime 和 Google Gemini API 构建。 它将 SOS 事件报告、实时行动地图、志愿者工作流和指挥中心监控整合在一个应用中。 ## 核心功能 - 具有 OTP 验证的多角色登录:`public`(公众)、`volunteer`(志愿者)和 `gov`(政府) - 针对事件、志愿者、避难所和医院的实时地图 - SOS 生存模式,包含面向离线的操作、媒体捕获和快速报告 - AI 辅助工具: - 聊天助手 (`/api/ai/chat`) - 语音转事件分析 (`/api/ai/audio`) - 图像损害分析 (`/api/ai/vision`) - 仅限政府人员的指挥仪表板,具备事件验证和解决工作流 - Supabase Realtime 订阅,用于事件和资源更新 - PWA 配置,支持可安装/离线可用的 Web 体验 ## 技术栈 - Next.js 16 (App Router) + React 19 + TypeScript - Tailwind CSS 4 + shadcn/ui + Radix primitives - Supabase (Auth, Postgres, Realtime) - Leaflet + React Leaflet (地图体验) - Google Generative AI SDK (Gemini) - Framer Motion + Recharts ## 项目结构 ``` src/ app/ # Routes and API route handlers components/custom/ # Domain UI (SOS, map, dashboard widgets) components/ui/ # Reusable UI primitives context/ # Shared realtime app state (DisasterContext) lib/ # Types, auth/profile helpers, Supabase clients supabase/ schema.sql # Base SQL schema + RLS + realtime publication public/ manifest.json # PWA manifest ``` ## 快速开始 ### 1. 前置条件 - Node.js 20+(推荐使用当前 LTS 版本) - npm 10+ - Supabase 项目 - Gemini API key ### 2. 安装依赖 ``` npm install ``` ### 3. 配置环境 从模板创建您的本地环境文件: ``` cp .env.example .env.local ``` 然后填写所有必需的值(见下文环境变量)。 ### 4. 应用数据库模式 在您的 Supabase SQL 编辑器中运行 [`supabase/schema.sql`](supabase/schema.sql)。 ### 5. 启动开发服务器 ``` npm run dev ``` 打开 `http://localhost:3000`。 ## 环境变量 使用 `.env.local`(切勿提交机密信息)。 必需: - `NEXT_PUBLIC_SUPABASE_URL` - `NEXT_PUBLIC_SUPABASE_ANON_KEY` - `SUPABASE_SERVICE_ROLE_KEY` - `GEMINI_API_KEY` 可选但支持: - `GOV_ACCESS_CODE` - `PUBLIC_ID_ALLOWLIST`(逗号分隔的 ID) - `VOLUNTEER_BADGE_ALLOWLIST`(逗号分隔的 ID) - `GOV_EMPLOYEE_ALLOWLIST`(逗号分隔的 ID) - `NEXT_PUBLIC_VAPID_PUBLIC_KEY` - `VAPID_PRIVATE_KEY` - `VAPID_SUBJECT` 参考模板:[`.env.example`](.env.example) ## 可用脚本 - `npm run dev` - 运行本地开发服务器 - `npm run build` - 创建生产构建 - `npm run start` - 启动生产服务器 - `npm run lint` - 运行 ESLint ## 主要路由 - `/` - 公民着陆页 + SOS 操作 - `/login` - 基于角色的 OTP 访问流程 - `/profile` - 已认证的档案管理 - `/map` - 实时态势感知地图 - `/volunteers` - 志愿者门户(需 `volunteer` 权限) - `/admin/dashboard` - 指挥中心(需 `gov` 权限) - `/activity` - 活动日志概览 ## API 概览 实现的 API 端点位于 `src/app/api` 下: - `POST /api/auth/request-otp` - `POST /api/auth/verify-otp` - `GET /api/incidents` - `POST /api/incidents` - `POST /api/incidents/:id/verify` - `POST /api/incidents/:id/resolve` - `GET /api/metrics` - `GET /api/volunteers` - `GET /api/shelters` - `GET /api/hospitals` - `POST /api/ai/chat` - `POST /api/ai/audio` - `POST /api/ai/vision` 完整参考:[`docs/API.md`](docs/API.md) ## 部署 部署步骤和生产检查清单位于 [`docs/DEPLOYMENT.md`](docs/DEPLOYMENT.md)。 ## 文档索引 请参阅 [`docs/README.md`](docs/README.md) 获取完整的项目文档。 ## 贡献 在提交 PR 之前,请阅读 [`CONTRIBUTING.md`](CONTRIBUTING.md)。 ## 安全 有关漏洞报告和安全预期,请参阅 [`SECURITY.md`](SECURITY.md)。 ## 许可证 当前仓库中未声明许可文件。在开源分发之前请添加一个。
标签:AI智能助手, PWA, React, SOS求救, Supabase, Syscalls, Web平台, 公共服务, 公民报告, 地图可视化, 多模态识别, 实时态势感知, 应急指挥, 志愿协调, 政府管理系统, 救援科技, 测试用例, 灾难响应, 离线可用, 自动化攻击