00arsalan00/ResQNet

GitHub: 00arsalan00/ResQNet

一个基于 Spring Boot 与 PostGIS 的灾害响应后端系统,用于模拟真实应急操作并支持地理空间智能与可扩展设计。

Stars: 0 | Forks: 0

# 🚑 ResQNet — 灾害响应后端 ## 📌 第一阶段概述 ResQNet 是一个用于模拟现实世界灾害响应操作的后端系统。 第一阶段专注于构建一个**强大的领域基础和 REST API 层**,以支持未来的可扩展性、地理空间智能和 AI 驱动的决策。 ## 🎯 第一阶段目标 * 设计一个**清晰且可扩展的领域模型** * 为所有核心实体构建**REST API** * 集成**PostgreSQL + PostGIS** 用于地理空间数据 * 实现**DTO 验证与异常处理** * 建立一个**模块化单体架构** ## 🧠 核心领域模型 该系统围绕 **Incident(事件)** 作为中心实体展开。 ### 实体: * **Incident** – 灾害事件(类型、严重程度、位置、状态) * **RescueTeam** – 具备技能和可用性的响应单位 * **Volunteer** – 参与操作的个人志愿者 * **Resource** – 物资库存(食物、水、药品等) * **ReliefCamp** – 受影响人员的庇护所 * **IncidentResource** – 跟踪每个事件中的资源分配情况 ## 🔗 关键关系 * Incident ↔ RescueTeam(多对多) * Incident ↔ Volunteer(多对多) * Incident → IncidentResource → Resource(一对多映射) * Incident ↔ ReliefCamp(多对多) * Volunteer → ReliefCamp(多对一) ## ⚙️ 技术栈 | 层 | 技术 | | -------- | ------------------------ | | 后端 | Spring Boot | | 数据库 | PostgreSQL | | 地理空间 | PostGIS | | ORM | Spring Data JPA (Hibernate) | | 迁移 | Flyway | | API 文档 | OpenAPI / Swagger | | 构建工具 | Maven | ## 🌍 地理空间支持 * 使用 **PostGIS POINT 类型** 存储位置 * 支持未来功能: * 最近响应者搜索 * 基于距离的分配 * 地理空间分析 ## 🧱 架构 ``` Controller → Service → Repository → Database ``` * **Controller**:API 层 * **Service**:业务逻辑 * **Repository**:数据访问 * **Entity**:领域模型 ## 🔐 配置 敏感数据(数据库凭证)通过 **环境变量** 处理: ``` DB_USERNAME DB_PASSWORD ``` 示例: ``` spring: datasource: username: ${DB_USERNAME} password: ${DB_PASSWORD} ``` ## 🧪 示例流程(Postman) 1. 创建事件(包含 GPS 坐标) 2. 注册救援队伍 3. 分配队伍到事件 4. 添加志愿者 5. 分配物资 6. 关联庇护所 ## 👨‍💻 作者 **Mohammad Arsalan Rayeen** 后端与 AI 爱好者 ## ⭐ 备注 本项目注重**系统设计、可扩展性和实际适用性**,而非仅实现 CRUD 操作。
标签:DVO验证, Flyway, Geospatial, Hibernate, Incident, JS文件枚举, Maven, OpenAPI, PostGIS, PostgreSQL, ReliefCamp, RescueTeam, Resource, REST API, Spring Boot, Swagger, Volunteer, 分布式计算, 可扩展架构, 后端系统, 团队协作, 地理空间, 地理追踪, 域名枚举, 应急指挥, 应急管理, 异常处理, 救援调度, 救援资源管理, 模块化单体, 测试用例, 漏洞验证, 灾难响应, 灾难管理系统, 网络测绘, 资源分配, 领域建模