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, 分布式计算, 可扩展架构, 后端系统, 团队协作, 地理空间, 地理追踪, 域名枚举, 应急指挥, 应急管理, 异常处理, 救援调度, 救援资源管理, 模块化单体, 测试用例, 漏洞验证, 灾难响应, 灾难管理系统, 网络测绘, 资源分配, 领域建模