物业管理系统 (Property Management Platform)
全栈物业管理系统,覆盖22个业务模块 + 12个扩展功能(消息通知/审批工作流/支付/投票/SLA/数据大屏/催缴/巡检/商城/人脸/集团/智能问答)。管理员端(admin)和业主端(service)分离部署,前端覆盖 Flutter Web(PC 管理后台风格)与 HarmonyOS 移动端。
项目地址:https://github.com/erikwang2013/property-management-platform
项目结构
property-management-platform/
├── admin/ # 管理员端 webman v2 项目
│ ├── app/
│ │ ├── admin/controller/ # 管理端控制器
│ │ ├── api/v1/controller/ # 公开 API 控制器
│ │ ├── common/ # 公共工具类
│ │ ├── middleware/ # 中间件(认证/鉴权/限流/安全)
│ │ ├── model/ # 数据模型(Eloquent ORM)
│ │ ├── queue/ # 队列任务
│ │ └── process/ # 进程管理
│ ├── apps/
│ │ ├── flutter/ # 管理后台 Flutter Web(PC 风格)
│ │ └── harmonyos/ # 管理后台 HarmonyOS App
│ ├── config/ # 配置文件(含中文注释)
│ ├── database/
│ │ ├── migrations/ # SQL 迁移文件
│ │ └── backup/ # 数据库备份脚本
│ ├── resource/
│ │ └── translations/ # 国际化语言文件(zh_CN / en)
│ ├── docs/ # 管理端文档
│ ├── tests/ # 单元测试
│ └── public/ # Web 入口
├── service/ # 业主业务端 webman v2 项目
│ ├── app/
│ │ ├── api/v1/controller/ # 业主端 API 控制器
│ │ ├── common/ # 公共工具类
│ │ ├── middleware/ # 中间件
│ │ ├── model/ # 数据模型
│ │ └── process/ # 进程管理
│ ├── config/ # 配置文件
│ ├── resource/
│ │ └── translations/ # 国际化语言文件
│ └── database/migrations/ # SQL 迁移文件
├── apps/
│ ├── flutter/ # 业主端 Flutter Web(PC 风格)
│ └── harmonyos/ # 业主端 HarmonyOS App
└── docs/ # 项目文档
├── ARCHITECTURE.md
├── ARCHITECTURE_DESIGN.md
├── ARCHITECTURE_DIAGRAM.md # 系统架构图
├── FLOWCHART.md # 业务流程图
├── FUNCTION_DIAGRAM.md # 功能模块图
├── LIFECYCLE_DIAGRAM.md # 生命周期图
├── SECURITY_ARCHITECTURE.md # 安全架构图
├── API.md
├── FEATURES.md
└── FEATURE_DESIGN.md项目规模
erik_ 前缀,BIGINT 非自增主键
系统架构与设计图
以下为概要图,详细图表见 架构图 · 流程图 · 功能图 · 生命周期图 · 安全架构图
系统全景架构
核心业务流程
功能模块总览
数据实体生命周期
18层安全纵深防御
功能模块(22大模块 + 12扩展)
技术栈
后端
框架: webman v2 (workerman/webman) 语言: PHP 8.3+ 数据库: MySQL 8.0+,表前缀 erik_,主键 BIGINT 非自增搜索引擎: Elasticsearch 8.x 缓存: Redis 7.x
核心依赖
erikwang2013/snowflake-phperikwang2013/hashidserikwang2013/jwt-webmanerikwang2013/encryptionerikwang2013/encryptableerikwang2013/webman-scouterikwang2013/seasonerikwang2013/security-phperikwang2013/poster-phpphpoffice/phpspreadsheetbarryvdh/laravel-dompdfhg/apidoc
前端
Flutter 3.x + GetX(含 i18n) + Dio + fl_chart — PC 风格 Web 管理后台 HarmonyOS ArkTS + @ohos.net.http — 移动端 App
API 文档
启动服务后访问 apidoc 自动生成的接口文档:
http://localhost:8787/apidochttp://localhost:8788/apidoc
国际化
PHP 后端: symfony/translation,语言文件位于 resource/translations/{zh_CN,en}/messages.phpFlutter Web: GetX Translations,apps/flutter/lib/i18n/messages.dart默认语言: 简体中文(zh_CN),支持英语(en)切换 请求头: 支持通过 Accept-Language请求头控制响应语言
安全体系(18层纵深防御)
点击验证码 → 2. 密码二次确认 → 3. poster 随机验证 → 4. security-php 安全扫描 → 5. SecurityFilter 攻击拦截 → 6. HTTPS + AES-256-CBC 传输加密 → 7. JWT HS256 认证 → 8. 并发会话限制(最多3个) → 9. 账号锁定(5次失败/15分钟) → 10. RBAC 权限鉴权(method.path 粒度) → 11. Redis 滑动窗口限流 → 12. Hashids ID 保护 → 13. 请求体敏感字段加密 → 14. DB 字段加密存储 → 15. 展示层数据脱敏 → 16. 操作日志全量审计(8平台来源端) → 17. CSP 头防护 → 18. PDF 版权水印
代码规范
所有新建文件头包含版权声明: Copyright (c) 2026 erik <erik@erik.xyz> — https://erik.xyz全局函数/类引用使用 use导入,不加前置\配置文件包含中文注释说明每个配置项 主键 ID 使用 BIGINT UNSIGNED NOT NULL,由 snowflake-php 应用层生成 API 传输 ID 使用 hashids 加解密
快速开始
方式一:Web 安装向导(推荐)
启动管理端后访问 http://localhost:8787/install,通过界面完成数据库配置和后台管理员账户创建。
cd admin
cp .env.example .env
composer install
php start.php start -d
# 访问 http://localhost:8787/install 完成安装
详见 安装指南。
方式二:手动安装
环境要求
PHP 8.1+ MySQL 8.0+ Redis 6.0+ Composer 2.x Flutter SDK 3.x(前端开发)
1. 初始化数据库
mysql -u root -e "CREATE DATABASE IF NOT EXISTS property_management DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -u root property_management < docs/install.sql
2. 启动管理端
cd admin
cp .env.example .env
# 编辑 .env 修改数据库密码等配置
composer install
php start.php start -d
# 管理端运行在 http://localhost:8787
3. 启动业务端
cd service
cp .env.example .env
# 编辑 .env 修改数据库密码等配置
composer install
php start.php start -d
# 业务端运行在 http://localhost:8788
4. 启动前端(开发)
cd apps/flutter
flutter pub get
flutter run -d chrome
5. 运行测试
# 管理端测试
cd admin && php vendor/bin/phpunit
# 业务端测试
cd service && php vendor/bin/phpunit
合计 133 465
service 测试覆盖: Snowflake ID、Hashids 编解码、响应格式、数据库 Schema、i18n 翻译文件
Docker 部署
cd admin
cp .env.docker .env
docker-compose up -d
# 包含 Nginx + PHP + MySQL + Redis + Elasticsearch
部署拓扑
Nginx (:443) → admin webman (:8787) + service webman (:8788) → MySQL + Redis + Elasticsearch
静态文件: Flutter Web build/
默认管理员
生产环境请立即修改默认密码。
文档索引
感谢大家阅读,个人观点仅供参考,欢迎在评论区发表不同观点。