helii-patel/EmergencyResponseApp

GitHub: helii-patel/EmergencyResponseApp

一个基于 Flutter 的校园应急事件上报与管理应用,支持离线操作、优先级排序、状态追踪和管理员统计看板。

Stars: 0 | Forks: 0

# 应急响应应用 - 开发指南 ## 项目结构 ``` lib/ ├── main.dart # App entry point ├── models/ │ └── incident.dart # Incident model with Hive annotations ├── providers/ │ └── incident_provider.dart # State management using Provider ├── services/ │ └── local_storage_service.dart # Hive database operations ├── screens/ │ ├── home_screen.dart # Main dashboard and incident list │ ├── incident_reporting_screen.dart # Report new incident │ ├── incident_details_screen.dart # View & manage incident details │ └── search_filter_screen.dart # Search and filter incidents └── utils/ └── app_theme.dart # Theme, colors, and utilities ``` ## 架构 该应用遵循清晰、模块化的架构: 1. **Models**:基于 Hive 的持久化数据模型 2. **Services**:数据库和本地存储操作 3. **Providers**:使用 Provider 包进行状态管理 4. **Screens**:UI 层 5. **Utils**:主题和辅助函数 ## 核心功能 ### 1. 事件上报 - 用户可以通过以下方式快速上报事件: - 标题和描述 - 类别选择(医疗、火灾、安保、事故、其他) - 优先级(低、中、高、紧急) - 位置(GPS 或模拟) - 自动生成事件 ID (UUID) ### 2. 优先级处理逻辑 - 事件会自动按以下规则排序: 1. 优先级(紧急 → 高 → 中 → 低) 2. 上报时间(最新优先) - 紧急事件会以红色视觉高亮显示 - 颜色编码的优先级指示器: - 红色:紧急 - 橙色:高 - 黄色:中 - 绿色:低 ### 3. 事件追踪 - 状态追踪:已上报 → 处理中 → 已解决 - 每个状态的自动时间戳 - 管理员可以分配响应人员 - 实时状态更新 ### 4. 管理员控制台 - 统计数据: - 事件总数 - 活跃案件 - 已解决案件 - 各优先级分布情况 - 可视化图表和指示器 - 优先级分布概览 ### 5. 搜索与筛选模块 - 搜索条件: - 事件 ID - 标题/关键词 - 筛选条件: - 状态(已上报、处理中、已解决) - 优先级(紧急、高、中、低) - 类别(医疗、火灾、安保、事故、其他) - 带有结果计数的实时筛选 ### 6. 离线功能 - 所有事件均使用 Hive 进行本地存储 - 自动同步追踪 - 清晰标记未同步的事件 - 数据在应用重启后依然保留 - 未来规划:后端同步功能 ## 状态管理 该应用使用 **Provider 模式** 进行状态管理: ``` IncidentProvider ├── incidents (filtered list) ├── allIncidents (all incidents) ├── addIncident() ├── updateIncident() ├── deleteIncident() ├── setStatusFilter() ├── setPriorityFilter() ├── setCategoryFilter() ├── setSearchQuery() └── clearFilters() ``` ## 本地存储 事件使用 Hive 存储,具有以下特点: - 持久化存储 - 快速访问 - 类型安全的查询 - 离线支持 - 同步状态追踪 ## 用户流程 ### 上报事件: 1. 在主屏幕点击“+”按钮 2. 填写事件详情 3. 选择类别和优先级 4. 获取位置(GPS 或模拟) 5. 提交上报 6. 事件立即显示在列表中 ### 管理事件(管理员): 1. 查看事件详情 2. 分配响应人员 3. 更新状态(处理中 → 已解决) 4. 追踪解决时间 ### 搜索事件: 1. 导航到“搜索”标签页 2. 输入搜索查询(ID 或标题) 3. 应用筛选器(状态、优先级、类别) 4. 查看筛选结果 ## 技术栈 - **框架**:Flutter (Dart) - **状态管理**:Provider 6.0 - **本地存储**:Hive 2.2 - **定位**:Geolocator 9.0 - **UUID**:UUID 4.0 - **日期/时间**:intl 0.19 ## 设置说明 ### 1. 克隆仓库 ``` git clone https://github.com/helii-patel/Smart-Emergency-Response-Incident-Reporting-App.git cd emergency_response_app ``` ### 2. 安装依赖 ``` flutter pub get ``` ### 3. 生成 Hive Adapters ``` flutter pub run build_runner build ``` ### 4. 运行应用 ``` flutter run ``` ## 构建 APK ``` flutter build apk --release ``` ## 测试 ### 测试场景: 1. **上报事件**:创建具有不同优先级的事件 2. **筛选与搜索**:测试所有筛选组合 3. **状态更新**:更改事件状态并进行验证 4. **离线**:禁用网络并上报事件 5. **优先级排序**:验证紧急事件是否排在最前面 ## 未来增强计划 1. **后端集成**:Firebase/REST API 同步 2. **实时地图**:集成 Google Maps 进行位置可视化 3. **通知**:针对紧急事件的推送通知 4. **数据分析**:事件统计和趋势 5. **多语言支持**:本地化 6. **语音上报**:语音转文字的事件上报 7. **导出报告**:PDF/Excel 导出功能 8. **用户角色**:不同的访问权限(用户、响应人员、管理员) 9. **事件历史**:归档和历史分析 10. **真实 GPS 集成**:结合地图的实际设备定位 ## 安全注意事项 - 所有表单的输入验证 - 网络/定位问题的错误处理 - 本地数据加密(未来增强) - 安全身份验证(未来增强) ## 性能优化 - 使用 ListView.builder 进行高效的列表渲染 - 使用 Provider 进行状态管理(最小化重建) - 使用 Hive 实现 O(1) 数据库访问 - 使用 Async/await 执行非阻塞操作 ## 许可证 智慧校园应急响应系统教育项目 ## 作者 Heli Patel - B.Tech 学生
标签:App开发, Dart, Flutter, GPS, Hive, MVC架构, Provider, SaaS, UI设计, UUID, 事件报告, 事件管理, 仪表盘, 任务跟踪, 优先级管理, 安全事件响应, 安全运营, 定位服务, 工单系统, 库, 应急响应, 应急响应系统, 应用架构, 扫描框架, 数据管道, 本地存储, 状态管理, 状态追踪, 移动应用开发, 网络研究, 跨平台开发, 软件工程