zunafu/Barangay-Disaster-Monitoring-System

GitHub: zunafu/Barangay-Disaster-Monitoring-System

一个基于 Web 的社区灾害监测与应急响应平台,支持市民实时上报灾情、社区官员协同处置、管理员全局管理。

Stars: 0 | Forks: 0

# 🚨 Barangay 灾害监测系统 (BDMS) 基于 Web 的灾害管理平台,用于实时事件报告、监测和应急响应协调。使市民能够提交灾害报告,机构能够高效响应,管理员能够无缝管理各项操作。 ## ✨ 核心功能 ### 📍 事件报告与管理 - 报告灾害及其类型、位置 (GPS)、照片和描述 - 支持多种灾害类型:火灾、洪水、地震、台风、山体滑坡、事故、其他 - 实时事件地图可视化 - 图片/照片证据上传 ### 📊 状态追踪系统 **4 阶段状态 Pipeline:** - **Reported** → 初始事件提交 - **Responding** → 已派遣政府机构 - **In Area** → 响应团队已抵达现场 - **Resolved** → 事件已处理并关闭 **严重级别:** Low、Medium、High、Critical ### 💬 实时通讯 - 针对事件的评论与讨论 - 用于协调的团队 chat 功能 - 紧急公告/广播 - 事件确认系统 ### 👥 基于角色的访问控制 | 角色 | 权限 | |------|--------------| | **User** | 报告事件、评论、确认事件、查看地图 | | **Barangay** | 更新事件状态、分配严重级别、管理本地事件 | | **Admin** | 完整系统控制、用户管理、审计日志、统计数据 | ### 📈 Admin Dashboard - 用户管理(创建、编辑、停用账户) - 实时统计与分析 - 带过滤功能的审计日志 - 事件概览与洞察 ### 🔐 审计与安全 - 对所有系统操作进行完整的审计日志记录 - IP 追踪和 user agent 记录 - 基于角色的访问控制 - 安全的 PDO 数据库查询 ## 🛠️ 技术栈 ### Frontend - **HTML5** - 语义化结构 - **CSS3** - 响应式设计(手机、平板、桌面) - **JavaScript (Vanilla)** - 动态交互和 API 调用 - **Font Awesome** - 图标库 - **Geoapify API** - 位置 geocoding 和地图绘制 ### Backend - **PHP 7+** - 服务端逻辑 - **MySQL/MariaDB** - 数据库 - **PDO** - 安全的数据库查询 ### 架构 - RESTful API endpoint - 基于会话的认证 - JSON 响应格式 ## 📋 项目结构 ``` disaster-report/ ├── index.html # Main landing page ├── admin-panel.html # Administrator dashboard ├── barangay-panel.html # Barangay officer interface ├── app.js # Frontend application logic ├── api.php # API endpoints ├── auth.php # Authentication logic ├── admin.php # Admin operations ├── reset-password.php # Password recovery ├── settings.php # User settings ├── config.php # Configuration file ├── database/ │ ├── database.bak # Database backup │ └── seeds/ │ └── database-complete.sql # Initial database schema & data └── uploads/ # User-uploaded files ``` ## 🚀 快速开始 ### 前置条件 - PHP 7.0 或更高版本 - MySQL/MariaDB 5.7 或更高版本 - Web 服务器(Apache、Nginx 等) - 现代 Web 浏览器 ### 安装 1. **克隆代码仓库** git clone https://github.com/yourusername/disaster-report.git cd disaster-report 2. **设置数据库** - 创建新的 MySQL 数据库 - 导入 schema: mysql -u username -p database_name < database/seeds/database-complete.sql 3. **配置应用** - 复制并更新 `config.php` 中的数据库凭据: define('DB_HOST', 'localhost'); define('DB_USER', 'your_db_user'); define('DB_PASS', 'your_db_password'); define('DB_NAME', 'disaster_report'); 4. **设置文件权限** chmod 755 uploads/ chmod 644 config.php 5. **访问应用** - 在浏览器中访问 `http://localhost/disaster-report` ## 📚 API 文档 系统为所有操作提供 RESTful API endpoint: - **Incidents:** 创建、读取、更新、按状态/位置检索 - **Users:** 认证、个人资料管理、角色操作 - **Comments:** 发布、读取、添加回应 - **Chat:** 团队成员之间的实时消息传递 - **Announcements:** 创建和检索紧急广播 - **Audit Logs:** 系统范围的操作历史 请参阅 `api_funcs.txt` 获取详细的 API 函数参考。 ## 🔑 默认 Admin 账户 数据库设置完成后,请使用以下默认凭据: - **Username:** `admin` - **Password:** `admin123` ⚠️ **重要提示:** 在生产环境中请立即更改默认密码! ## 📸 截图 ### 👤 对于 User *报告事件、查看实时地图、确认报告并参与讨论*
User Dashboard Report Incident Incident Map Incident Details
### 🏛️ 对于 Barangay 官员 *管理本地事件、更新状态、分配严重级别并协调响应*
Barangay Dashboard Incident Management Status Updates Severity Assignment
### 🔐 对于 Admin *完整的系统控制、用户管理、审计日志以及综合分析*
Admin Dashboard User Management System Statistics Audit Logs Admin Controls
### ✨ 更多功能 *用于投票、公共 Chat 和 Announcements 以及账户设置的社区面板*
Mobile View 1 Mobile View 2 Mobile View 3 Advanced Filtering Real-time Updates
## 📄 许可证 本项目基于 MIT 许可证授权 - 有关详细信息,请查看 LICENSE 文件。 ## 📞 支持与联系 如有问题、疑问或建议: - 在 GitHub 上提交 issue - 通过 [franzgeoffrivera@gmail.com] 联系开发团队 ## 👨‍💻 开发团队 本项目由以下人员开发: - **Franz Geoff Rivera** - **Michael Ainjelo Maglaya** - **Luisito Angelo Ocray** - **Djanaisah Benito** ## 🙏 致谢 - Geoapify 提供位置服务 - Font Awesome 提供图标 - 社区贡献者和测试人员 **为灾害防备和社区安全倾注 ❤️ 打造。**
标签:Vanilla JavaScript, 事件报告, 后端开发, 库, 应急响应, 数据可视化, 灾害管理系统, 角色权限控制