Smart Park 智慧停车管理系统
https://github.com/xuanyiying/smart-park
🎬 项目演示
💡 在线演示: https://demo.smart-park.example.com📱 测试账号: admin / admin123
🖥️ 功能预览: docs/demo.html - 包含所有页面效果预览
✨ 核心特性
🚗 车辆管理
| 💰 智能计费
| 💳 支付系统
|
🔧 设备管理
| 📊 数据报表
| 🏗️ 技术架构
|
🏗️ 系统架构
┌─────────────────────────────────────────────────────────────────┐│ 接入层 (Access Layer) │├───────────────┬───────────────┬───────────────┬──────────────────┤│ 车主小程序 │ 管理后台 │ 设备网关 │ 第三方回调 ││ (WeChat) │ (React) │ (MQTT) │ (Webhook) │└───────┬───────┴───────┬───────┴───────┬───────┴────────┬─────────┘ │ │ │ │ └───────────────┴───────┬───────┴────────────────┘ │ ┌───────────▼───────────┐ │ API Gateway │ │ (Kratos Gateway) │ │ Port: 8000 │ └───────────┬───────────┘ │ ┌───────────────────────┼───────────────────────┐ │ │ │┌───────▼───────┐ ┌───────▼───────┐ ┌───────▼───────┐│ 🚗 Vehicle │ │ 💰 Billing │ │ 💳 Payment ││ Service │ │ Service │ │ Service ││ Port: 8001 │ │ Port: 8002 │ │ Port: 8003 ││ │ │ │ │ ││ • 入场/出场 │ │ • 费用计算 │ │ • 支付处理 ││ • 设备管理 │ │ • 规则引擎 │ │ • 订单管理 ││ • 车牌识别 │ │ • 优惠计算 │ │ • 退款处理 │└───────┬───────┘ └───────┬───────┘ └───────┬───────┘ │ │ │┌───────▼───────┐ ┌───────▼───────┐ ┌───────▼───────┐│ 🎛️ Admin │ │ 🔌 Charging │ │ 🏢 Multi- ││ Service │ │ Service │ │ Tenancy ││ Port: 8004 │ │ Port: 8005 │ │ Service ││ │ │ │ │ Port: 8006 ││ • 停车场管理 │ │ • 充电桩管理 │ │ • 多租户管理 ││ • 报表统计 │ │ • 充电计费 │ │ • 权限控制 ││ • 用户管理 │ │ • 订单管理 │ │ • 数据隔离 │└───────────────┘ └───────────────┘ └───────────────┘ │ ┌───────────────────────┼───────────────────────┐ │ │ │┌───────▼───────┐ ┌───────▼───────┐ ┌───────▼───────┐│ 🐘 PostgreSQL│ │ 🔴 Redis │ │ 📋 Etcd ││ (主数据库) │ │ (缓存/消息) │ │ (服务发现) │└───────────────┘ └───────────────┘ └───────────────┘
🛠️ 技术栈
后端技术
前端技术
🚀 快速开始
📋 环境要求
Go: 1.26+
Docker: 20.10+
Docker Compose: 2.20+
Node.js: 18+ (前端开发)
🐳 一键启动(推荐)
# 1. 克隆项目git clone https://github.com/xuanyiying/smart-park.gitcd smart-park# 2. 启动所有服务docker-compose up -d# 3. 查看服务状态docker-compose ps# 4. 访问系统# API 网关: http://localhost:8000# Grafana 监控: http://localhost:3000 (口令通过 GRAFANA_PASSWORD 注入)# 营销官网: site/ 目录(Next.js),注意它是产品介绍页,不是管理后台;# 管理后台前端尚未实现,运营操作目前通过 API 完成。
💻 本地开发
# 1. 克隆项目git clone https://github.com/xuanyiying/smart-park.gitcd smart-park# 2. 启动基础设施docker-compose -f deploy/docker-compose.yml up -d postgres redis etcd jaeger# 3. 安装后端依赖go mod download# 4. 启动后端服务(分别在不同终端)go run ./cmd/gateway -conf ./configsgo run ./cmd/vehicle -conf ./configsgo run ./cmd/billing -conf ./configsgo run ./cmd/payment -conf ./configsgo run ./cmd/admin -conf ./configs# 5. 启动前端cd webnpm installnpm run dev
🧪 测试 API
# 车辆入场curl -X POST http://localhost:8000/api/v1/device/entry \ -H "Content-Type: application/json" \ -H "X-Device-Id: lane_001" \ -d '{ "deviceId": "lane_001", "plateNumber": "京A12345", "confidence": 0.95 }'# 查询费用curl "http://localhost:8000/api/v1/billing/calculate?recordId=xxx"# 创建支付订单curl -X POST http://localhost:8000/api/v1/pay/create \ -H "Content-Type: application/json" \ -d '{ "recordId": "xxx", "payMethod": "wechat" }'
📦 服务说明
| Gateway | ||||
| Vehicle | ||||
| Billing | ||||
| Payment | ||||
| Admin | ||||
| Charging | ||||
| User |
� 性能指标
系统性能
| 并发能力 | ||
| 响应时间 | ||
| 可用性 | ||
| 车牌识别 | ||
| 支付成功率 |
资源占用(单机部署)
🏆 项目亮点
💡 技术创新
微服务架构
:基于 Kratos 框架,服务间通过 gRPC 通信,支持水平扩展 规则引擎
:灵活的计费规则引擎,支持多种计费策略和优先级管理 分布式锁
:Redis 分布式锁确保并发场景数据一致性 支付安全
:签名验证、金额校验、幂等性保证 链路追踪
:OpenTelemetry + Jaeger 实现全链路追踪
🎯 业务创新
防重复入场
:数据库唯一约束 + 分布式锁双重保障 月卡管理
:自动校验有效期,过期自动降级为临时车 离线模式
:网络中断时本地缓存,恢复后自动同步 对账系统
:自动对账,处理单边账,确保资金安全
📚 文档
📖 项目文档 - 完整项目文档 🚗 车辆服务 - 入场/出场处理、设备管理 💰 计费服务 - 计费规则引擎详解 💳 支付服务 - 支付处理流程 🎛️ 管理服务 - 运营管理功能 🚀 部署指南 - 各种环境部署说明 🔌 API 文档 - 完整 API 接口文档 📋 项目简历 - 技术亮点和成果
🚢 部署方案
| 小型 | |||
| 中型 | |||
| 大型 |
# 快速部署脚本./deploy/scripts/deploy.sh deploy production v1.0.0# 或使用 Kuberneteskubectl apply -f deploy/k8s/
详细部署文档请参考 部署指南