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, 人员调度优化, 应急响应系统, 志愿服务管理, 测试用例, 自动化攻击