# 物联网智能停车管理系统 **Repository Path**: wang-junyanxx/ParkingManager ## Basic Information - **Project Name**: 物联网智能停车管理系统 - **Description**: ## 📋 项目简介 一个基于物联网技术的现代化智能停车管理平台,集成了实时监控、车位预订、用户认证、数据可视化等完整功能。通过WebSocket实现实时通信,支持多终端访问,为企业提供高效的车位管理解决方案。 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🚗 物联网智能停车管理系统 ## 📋 项目简介 一个基于物联网技术的现代化智能停车管理平台,集成了实时监控、车位预订、用户认证、数据可视化等完整功能。通过WebSocket实现实时通信,支持多终端访问,为企业提供高效的车位管理解决方案。 ## 🛠️ 技术栈 ### 后端技术 - **框架**: Python FastAPI - **数据库**: PostgreSQL + SQLAlchemy ORM - **认证**: JWT + bcrypt密码加密 - **实时通信**: WebSocket - **缓存**: Redis - **测试**: pytest + unittest ### 前端技术 - **框架**: React 18 + TypeScript - **UI组件**: Material-UI (MUI) - **状态管理**: Redux Toolkit + Zustand - **路由**: React Router v6 - **测试**: Jest + React Testing Library - **构建工具**: Vite ### 部署运维 - **容器化**: Docker + Docker Compose - **数据库**: PostgreSQL 15 - **缓存**: Redis 7 - **代理**: Nginx - **监控**: 集成健康检查 ## 📁 项目结构 ``` ParkingManager/ ├── backend/ # FastAPI后端应用 │ ├── app/ # 应用核心代码 │ │ ├── api/v1/endpoints/ # API端点 │ │ ├── core/ # 核心模块(安全、配置等) │ │ ├── models/ # 数据模型 │ │ ├── services/ # 业务服务层 │ │ └── main.py # 应用入口 │ ├── tests/ # 单元测试 │ ├── database.py # 数据库配置 │ └── requirements.txt # Python依赖 ├── frontend/ # React前端应用 │ ├── src/ │ │ ├── components/ # 可复用组件 │ │ ├── pages/ # 页面组件 │ │ ├── services/ # API服务 │ │ ├── store/ # 状态管理 │ │ ├── types/ # TypeScript类型定义 │ │ └── __tests__/ # 前端测试 │ ├── package.json # Node.js依赖 │ └── Dockerfile # 前端容器配置 ├── simulator/ # 数据模拟器 │ ├── main.py # 模拟器主程序 │ └── config.py # 模拟配置 ├── scripts/ # 部署和运维脚本 ├── docker-compose.yml # 多容器编排 ├── Dockerfile # 后端容器配置 ├── nginx.conf # Nginx配置 ├── requirements.txt # 项目依赖 └── README.md # 项目文档 ``` ## 🚀 快速开始 ### 开发环境部署 #### 1. 克隆项目 ```bash git clone cd ParkingManager ``` #### 2. 后端环境配置 ```bash # 创建Python虚拟环境 python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt # 启动开发服务器 cd backend uvicorn app.main:app --reload --port 8000 ``` #### 3. 前端环境配置 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm start ``` #### 4. 访问应用 - 前端应用: http://localhost:3000 - 后端API: http://localhost:8000 - API文档: http://localhost:8000/docs ### Docker部署(推荐) #### 1. 使用Docker Compose ```bash # 一键启动所有服务 docker-compose up -d # 查看服务状态 docker-compose ps # 查看日志 docker-compose logs -f backend ``` #### 2. 单独构建镜像 ```bash # 构建后端镜像 docker build -t parking-backend . # 构建前端镜像 cd frontend docker build -t parking-frontend . ``` ## 🎯 功能特性 ### 🔐 用户认证系统 - JWT无状态认证 - 角色权限控制(管理员/普通用户) - 密码重置和安全策略 - 自动令牌刷新 ### 📅 智能车位预订 - 实时车位可用性查询 - 时间段冲突检测 - 费用预估计算 - 预订历史管理 - 灵活取消机制 ### 🔌 实时通信系统 - WebSocket实时数据推送 - 车位状态变化即时通知 - 多客户端连接管理 - 心跳检测和自动重连 ### 📊 数据可视化 - 停车场占用率统计 - 收入趋势分析 - 用户行为分析 - 实时监控仪表板 ### 🔧 智能模拟器 - 可配置的模拟强度 - 早晚高峰时段模拟 - 多种车辆类型分布 - 实时数据生成 ## 🧪 测试 ### 后端测试 ```bash cd backend pytest tests/ -v # 生成测试覆盖率报告 pytest --cov=app tests/ --cov-report=html ``` ### 前端测试 ```bash cd frontend # 运行单元测试 npm test # 运行测试并生成覆盖率报告 npm test -- --coverage # 运行E2E测试 npm run test:e2e ``` ## 🚢 生产部署 ### 环境变量配置 创建 `.env` 文件: ```env # 数据库配置 DATABASE_URL=postgresql://user:password@host:5432/database REDIS_URL=redis://host:6379 # JWT配置 SECRET_KEY=your-secret-key ACCESS_TOKEN_EXPIRE_MINUTES=30 REFRESH_TOKEN_EXPIRE_DAYS=7 # 应用配置 CORS_ORIGINS=https://your-domain.com API_PREFIX=/api/v1 ``` ### Kubernetes部署(可选) ```bash # 应用Kubernetes配置 kubectl apply -f k8s/ # 查看部署状态 kubectl get pods,services,ingress ``` ## 📊 API文档 详细的API接口文档请参考 [API.md](./API.md) 文件,包含: - 认证接口 - 停车场管理接口 - 车位预订接口 - 实时通信接口 - 模拟器控制接口 ## 🔧 开发指南 ### 代码规范 - 后端: 遵循PEP 8规范 - 前端: 使用ESLint + Prettier - 提交信息: 使用约定式提交 ### 分支策略 - `main`: 生产环境分支 - `develop`: 开发主分支 - `feature/*`: 功能开发分支 - `hotfix/*`: 紧急修复分支 ### 部署流程 1. 功能开发 → 2. 单元测试 → 3. 代码审查 → 4. 集成测试 → 5. 生产部署 ## 🤝 贡献指南 欢迎提交Issue和Pull Request! ### 开发流程 1. Fork项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🆘 技术支持 - 📧 邮箱: support@parking.com - 💬 社区: [GitHub Discussions](link-to-discussions) - 🐛 问题: [GitHub Issues](link-to-issues) --- **⭐ 如果这个项目对你有帮助,请给个Star!**