Shubhankar0126/SevakAI-Volunteer-Deployment

GitHub: Shubhankar0126/SevakAI-Volunteer-Deployment

一个面向大型活动场景的智能志愿者部署平台,结合实时地图、AI 分配引擎与数据可视化,解决大规模人员调度与应急响应的协调难题。

Stars: 0 | Forks: 0

# SevakAI - 2028 大壶节的智能志愿者部署系统 SevakAI 是一个初创级的、基于角色的平台,它将海量的志愿者 转化为针对国家级活动的协调、智能神经系统。 演示链接 - https://drive.google.com/file/d/1e-ySYZgEIclCoeVlnS3qC6F2K62aH_Um/view?usp=sharing ## ✨ 功能 - **精美的落地页** - Emerald Authority 设计系统,带有实时 AI 推荐面板的 hero 区域、功能网格和指挥中心预览。 - **身份验证与角色** - 电子邮件/密码登录。三种角色:`admin`、 `zone_manager`、`volunteer`。角色在注册时分配,并存储在 安全的 `user_roles` 表中,通过 `has_role()` 安全定义器进行权限控制。 - **实时指挥地图** - SVG 渲染的区域、志愿者、事件 以及带有交互式检查器的拥挤密度热力图。 - **智能分配引擎** - 根据以下指标对每个事件的志愿者进行排名: `技能 (45%) + 距离 (25%) + 工作量 (15%) + 绩效 (15%)`, 支持一键自动调度。 - **应急响应** - 分诊队列、SOS 触发器、状态转换 (`open → dispatched → resolved`),以及实时 AI 匹配的前三名响应者。 - **志愿者名册** - 可搜索/可过滤的目录,包含技能、 语言、绩效和疲劳分数。 - **数据分析** - 24小时事件和志愿者负载、区域负载柱状图、 响应时间与满意度的折线图、疲劳分布。 - **AI 运维助手** - 由 Google Gemini 2.5 Flash 提供支持的对话式自然语言界面,用于志愿者部署、劳动力优化、事件响应和运营建议。 - **短缺预测** - 针对各区域的预测性人员配置预警。 ## 🏗 架构 ``` ┌───────────────────────────────────────────────────────┐ │ React 19 + TanStack Start (Vite 7) │ │ ├─ src/routes/index.tsx → Landing Page │ │ ├─ src/routes/auth.tsx → Authentication │ │ └─ src/routes/dashboard.*.tsx → Command Center │ │ ├─ /dashboard → Overview & KPIs │ │ ├─ /dashboard/map → Live Zone Map │ │ ├─ /dashboard/assign → Smart Assignment │ │ ├─ /dashboard/emergency → SOS & Triage │ │ ├─ /dashboard/roster → Volunteer Roster │ │ ├─ /dashboard/analytics → Analytics │ │ └─ /dashboard/assistant → AI Assistant │ ├───────────────────────────────────────────────────────┤ │ TanStack Server Functions │ │ └─ src/lib/assistant.functions.ts │ │ → Gemini AI Recommendation Engine │ ├───────────────────────────────────────────────────────┤ │ Supabase (PostgreSQL + Authentication) │ │ ├─ auth.users → User Authentication │ │ ├─ public.profiles → Volunteer Profiles │ │ ├─ public.user_roles → Role Management │ │ └─ handle_new_user() → Auto Profile Creation │ └───────────────────────────────────────────────────────┘ ``` ## 🗄 数据库 Schema ``` CREATE TYPE app_role AS ENUM ('admin', 'zone_manager', 'volunteer'); CREATE TABLE profiles ( id UUID PRIMARY KEY REFERENCES auth.users(id) ON DELETE CASCADE, full_name TEXT NOT NULL DEFAULT '', phone TEXT, zone TEXT, languages TEXT[] DEFAULT '{}', skills TEXT[] DEFAULT '{}', created_at TIMESTAMPTZ DEFAULT now(), updated_at TIMESTAMPTZ DEFAULT now() ); CREATE TABLE user_roles ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE, role app_role NOT NULL, UNIQUE (user_id, role) ); -- Security-definer to prevent recursive RLS CREATE FUNCTION has_role(_user_id uuid, _role app_role) RETURNS boolean ...; ``` ## 🔐 认证流程 1. 用户访问 `/auth`,输入电子邮件 + 密码 + 选择的角色进行注册。 2. 触发 `handle_new_user()` trigger → 创建 `profiles` 行,并从 `raw_user_meta_data` 中分配 `user_roles.role`。 3. `useAuth()` hook 订阅 `onAuthStateChange`,加载角色, 并向所有仪表盘路由暴露 `{ user, session, role, loading }`。 4. 如果没有 session,仪表盘布局将重定向到 `/auth`。 ## 🧠 AI 逻辑 **智能分配** (`src/lib/sample-data.ts → rankVolunteersForIncident`): ``` score = (skillFit * 0.45) + (proximity * 0.25) + (availableCapacity * 0.15) + (historicalPerf * 0.15) ``` **AI 运维助手** (`src/lib/assistant.functions.ts`): - 带有 Zod 验证输入的 TanStack server function。 - 通过 `@google/generative-ai` 使用 Google Gemini API。 - System prompt 将模型锚定在运营上下文和志愿者部署工作流中。 ## 🚀 部署 该项目由 **React、TanStack Start、Supabase 和 Gemini AI** 提供支持,并且可以部署在 Vercel 上。 ``` npm install npm run dev # local development npm run build # production build ``` 部署 1. 将代码推送到 GitHub。 2. 将仓库导入 Vercel。 3. 配置环境变量。 4. 部署应用程序。 ## 🎤 黑客马拉松推介 ## 📁 项目结构 ``` src/ ├── components/ shadcn/ui + SevakLogo ├── hooks/use-auth.ts session + role hook ├── integrations/supabase/ auto-generated client ├── lib/ │ ├── sample-data.ts zones, volunteers, incidents, AI scoring │ └── assistant.functions.ts Gemini AI server function ├── routes/ TanStack file-based routes └── styles.css Emerald Authority design tokens supabase/migrations/ SQL: enum, tables, RLS, trigger ``` 专为 2028 大壶节创新黑客马拉松打造。
标签:Gemini大模型, React, Supabase, Syscalls, 人员调度优化, 应急响应系统, 志愿服务管理, 测试用例, 自动化攻击