blanca890/GeOS_Prod
GitHub: blanca890/GeOS_Prod
GeoS 是为菲律宾武装部队设计的地理定位调度系统,通过实时地图、技能匹配和任务管理实现事件响应与人员部署的数字化。
Stars: 0 | Forks: 0
GeoS — 支持地理定位的在线系统
AFP 支持地理定位的调度系统
用于菲律宾武装部队的事件响应和任务部署。
## 什么是 GeoS?
GeoS 是一个为菲律宾武装部队打造的**支持地理定位的调度平台**。它通过两种调度模式管理现役 AFP 人员的部署:
### 模式 A — 事件响应(紧急)
当外部机构(消防部门、地方政府部门、 barangay)致电 AFP 调度员请求立即协助时:
1. 调度员创建包含位置和所需技能的事件
2. GeoS 通过 **geo-radius + MOS 匹配**寻找最近的合格人员
3. 人员接收带有“一键响应”功能的**紧急通知**
4. 实时**逐步导航**引导人员前往事件现场
5. 调度员在**实时地图**上追踪所有响应人员
### 模式 B — 计划任务 / 项目(非紧急)
当 AFP 内部需要人员执行计划中的行动时:
1. 调度员发布包含位置、geo-radius 和所需技能的任务
2. GeoS 寻找附近合格的并发送标准通知
3. 人员**自愿报名**他们想加入的任务
4. 调度员**审核并接受/拒绝**申请
5. 被接受的人员接收任务详情和部署命令
## 角色架构
| 角色 | UI 标签 | 描述 |
|------|----------|-------------|
| `admin` | 管理员 | AFP 管理人员 — 管理账户、日志、系统设置 |
| `recruiter` | 调度员 | AFP 军官 — 发布任务、审核志愿者申请、管理事件 |
| `personnel` | 人员 | 现役士兵 — 仪表板、签到、请假、任务分配、智能通知 |
| `applicant` | 申请者 | 受邀执行特定任务的士兵 — 用于申请追踪的轻量级账户 |
### 人员子角色
| 子角色 | 适用对象 | 权限 |
|----------|-----|-------------|
| **指挥官 (CO)** | 舰长 / 指挥官 | 批准请假和晋升、管理单位名册、监控实时 GPS、推荐人员 |
| **入伍军人** | 普通士兵 | 提交请假申请、申请晋升、签到、自愿参与任务 |
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| **后端** | Laravel 12, PHP 8.2 |
| **认证** | Laravel Fortify (支持 2FA) |
| **前端** | React 19, TypeScript (严格模式), Inertia.js |
| **UI** | shadcn/ui + Radix UI, Tailwind CSS v4 (oklch) |
| **数据库** | PostgreSQL (Supabase) |
| **实时通信** | Laravel Reverb (WebSockets) |
| **地图** | Leaflet + react-leaflet |
| **3D** | Three.js + React Three Fiber |
| **构建** | Vite + React Compiler |
| **测试** | Pest (PHP), Vitest + Playwright (JS) |
| **基础设施** | Docker (PHP 8.2 + Node 20) |
## 快速开始(本地开发)
### 前置条件
- **Docker Desktop**(推荐)或本地安装 PHP 8.2 + Node 20 + PostgreSQL
- **Supabase** 账户(用于 PostgreSQL 数据库)
### 设置
```
# 1. 克隆仓库
git clone https://github.com/blanca890/GeoS_Prod.git
cd GeoS_Prod
# 2. 复制环境文件并进行配置
cp .env.example .env
# 使用你的 Supabase PostgreSQL 凭证和应用配置编辑 .env
# 3. 使用 Docker 启动
docker compose up --build
# 4. 安装依赖并运行 migrations(在容器内)
docker compose exec app composer install
docker compose exec app php artisan migrate --seed
docker compose exec app npm install
# 5. 启动开发服务器
composer dev
```
应用程序将在 **http://localhost:8000** 提供。
### 常用命令
| 命令 | 用途 |
|---------|---------|
| `composer dev` | 启动 Laravel + 队列 + Vite |
| `composer test` | 运行所有测试 (lint + Pest) |
| `npm run build` | 构建生产环境前端 |
| `npm run lint` | ESLint 修复 |
| `npm run types` | TypeScript 类型检查 |
| `docker compose up --build` | 重新构建容器 |
## 项目结构
```
GeoS/
├── app/ # Laravel backend (Controllers, Models, Services, Jobs)
│ ├── Http/ # Controllers, Middleware, Requests
│ ├── Models/ # Eloquent models
│ ├── Services/ # Business logic services
│ └── Notifications/ # Email & push notifications
├── resources/
│ ├── js/ # React + TypeScript frontend
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Role-based pages (admin, recruiter, personnel, applicant)
│ │ └── hooks/ # Custom React hooks
│ └── css/ # Tailwind CSS + design tokens
├── database/
│ ├── migrations/ # PostgreSQL migrations
│ └── seeders/ # Database seeders
├── routes/ # Laravel route definitions
├── tests/ # Pest PHP tests
├── e2e/ # Playwright end-to-end tests
├── docker/ # Docker configuration
│ └── nginx/ # Nginx config for production
├── docs/ # Full documentation
└── docker-compose.yml # Docker Compose configuration
```
## 文档
完整的项目文档可在 [`docs/`](docs/) 目录中找到:
| 文档 | 描述 |
|----------|-------------|
| [ARCHITECTURE.md](docs/ARCHITECTURE.md) | 系统架构与设计指南 |
| [SETUP.md](docs/SETUP.md) | 详细的设置说明 |
| [API.md](docs/API.md) | API endpoint 参考 |
| [TESTING_GUIDE.md](docs/TESTING_GUIDE.md) | 如何编写和运行测试 |
| [DOCKER.md](docs/DOCKER.md) | Docker 设置详情 |
| [CHANGES.md](docs/CHANGES.md) | Sprint 与功能历史 |
| [DEPLOYMENT_GUIDE.md](docs/DEPLOYMENT_GUIDE.md) | 生产环境部署指南 |
## 安全
- **认证**:Laravel Fortify 支持 2FA
- **授权**:基于角色的访问控制(管理员、调度员、人员、申请者)
- **数据库**:所有查询均使用参数化语句(防止 SQL 注入)
- **CSRF/XSS**:Laravel 内置防护 + 输入清理
- **密钥**:基于环境的配置 — 源代码中无密钥
## 许可证
本项目作为菲律宾武装部队的毕业设计项目进行开发。许可条款待定。
由 FEU Tech Capstone 团队 使用 构建 • GeoS 2026
标签:Laravel, React, Syscalls, 任务调度系统, 地理定位, 应急救援, 测试用例, 特征检测, 自动化攻击, 请求拦截