# 交通管理系统 **Repository Path**: achen5055/Traffic-light-optimization ## Basic Information - **Project Name**: 交通管理系统 - **Description**: 交通信号灯智能优化系统是一个基于Spring Boot和Vue 3的智能化交通管理平台,旨在通过实时数据分析和机器学习算法优化交通信号灯控制策略,提升城市交通效率,减少拥堵现象。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-24 - **Last Updated**: 2025-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 交通信号灯智能优化系统 [![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](https://github.com/your-org/traffic-light-optimization) [![Java](https://img.shields.io/badge/java-8+-orange.svg)](https://www.oracle.com/java/) [![Spring Boot](https://img.shields.io/badge/spring%20boot-2.7.8-brightgreen.svg)](https://spring.io/projects/spring-boot) [![Vue](https://img.shields.io/badge/vue-3.3.8-green.svg)](https://vuejs.org/) [![License](https://img.shields.io/badge/license-MIT-yellow.svg)](LICENSE) ## 📋 项目概述 交通信号灯智能优化系统是一个基于Spring Boot和Vue 3的智能化交通管理平台,旨在通过实时数据分析和机器学习算法优化交通信号灯控制策略,提升城市交通效率,减少拥堵现象。 ### ✨ 核心特性 - 🚦 **实时交通流量监测** - 24/7实时监控各路口交通状况 - 🧠 **智能预测分析** - 基于历史数据预测交通流量趋势 - ⚡ **自适应信号控制** - 根据实时情况动态调整信号灯时长 - 🚨 **应急事件处理** - 快速响应交通事故、道路施工等紧急情况 - 📊 **数据可视化** - 丰富的图表和仪表板展示交通数据 - 🔐 **用户权限管理** - 完善的角色权限控制系统 ## 🏗️ 技术架构 ### 后端技术栈 - **框架**: Spring Boot 2.7.8 - **数据库**: MySQL 8.0 + MyBatis + Druid连接池 - **API文档**: SpringDoc OpenAPI 3 - **数据格式**: FastJSON2 - **定时任务**: Spring Scheduling - **构建工具**: Maven ### 前端技术栈 - **框架**: Vue 3 + Composition API - **UI组件库**: Element Plus - **图表库**: ECharts + Vue-ECharts - **路由**: Vue Router 4 - **HTTP客户端**: Axios - **构建工具**: Vite - **样式**: TailwindCSS ## 📁 项目结构 ``` traffic-light-optimization/ ├── backend/ # 后端代码 │ ├── src/main/java/com/traffic/ │ │ ├── controller/ # 控制器层 │ │ │ ├── AuthController.java # 认证控制器 │ │ │ ├── TrafficFlowController.java # 交通流量控制 │ │ │ ├── TrafficPredictionController.java # 预测分析控制 │ │ │ ├── EmergencyEventController.java # 应急事件控制 │ │ │ └── UserController.java # 用户管理控制 │ │ ├── service/ # 服务层 │ │ │ ├── TrafficFlowService.java │ │ │ ├── TrafficPredictionService.java │ │ │ └── EmergencyEventService.java │ │ ├── mapper/ # 数据访问层 │ │ │ ├── TrafficFlowMapper.java │ │ │ ├── EmergencyEventMapper.java │ │ │ └── TrafficPredictionMapper.java │ │ ├── entity/ # 实体类 │ │ │ ├── TrafficFlow.java # 交通流量实体 │ │ │ ├── TrafficPrediction.java # 预测数据实体 │ │ │ ├── EmergencyEvent.java # 应急事件实体 │ │ │ └── Intersection.java # 路口信息实体 │ │ └── TrafficLightOptimizationApplication.java # 启动类 │ ├── src/main/resources/ │ │ ├── mapper/ # MyBatis XML映射文件 │ │ └── application.yml # 应用配置文件 │ └── pom.xml # Maven依赖配置 │ ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── components/ # Vue组件 │ │ ├── views/ # 页面视图 │ │ │ ├── Dashboard.vue # 数据概览 │ │ │ ├── TrafficFlow.vue # 交通流量监控 │ │ │ ├── TrafficPrediction.vue # 智能预测分析 │ │ │ ├── Monitoring.vue # 路口监控 │ │ │ ├── EmergencyEvents.vue # 应急事件处理 │ │ │ └── UserManagement.vue # 用户管理 │ │ ├── router/ # 路由配置 │ │ ├── api/ # API接口封装 │ │ ├── utils/ # 工具类 │ │ └── App.vue # 根组件 │ ├── package.json # NPM依赖配置 │ ├── vite.config.js # Vite配置 │ └── index.html # HTML模板 │ ├── database_design.sql # 数据库设计脚本 ├── logs/ # 日志文件目录 └── README.md # 项目文档 ``` ## 🗄️ 数据库设计 系统包含7个核心数据表: ### 1. intersection - 路口信息表 存储各个路口的基本信息和地理坐标。 ### 2. traffic_flow - 实时交通流量监测表 记录实时交通流量数据,包括车辆数量、速度、拥堵等级等。 ### 3. traffic_history - 历史交通数据表 存储按日期和小时汇总的历史交通统计数据。 ### 4. traffic_prediction - 智能预测分析表 存储基于机器学习算法的交通流量预测结果。 ### 5. signal_control - 信号灯控制参数表 管理不同时间段各方向的信号灯时长配置。 ### 6. emergency_event - 应急事件表 记录和处理交通相关的应急事件。 ### 7. system_log - 系统日志表 记录系统操作日志和异常信息。 ## 🚀 快速开始 ### 环境要求 - Java 8+ - Node.js 16+ - MySQL 8.0+ - Maven 3.6+ ### 1. 克隆项目 ```bash git clone https://github.com/your-org/traffic-light-optimization.git cd traffic-light-optimization ``` ### 2. 数据库配置 ```bash # 创建数据库 mysql -u root -p < database_design.sql # 修改application.yml中的数据库连接配置 ``` ### 3. 后端启动 ```bash # 编译项目 mvn clean compile # 运行项目 mvn spring-boot:run ``` 后端服务启动地址:http://localhost:8081/api ### 4. 前端启动 ```bash cd frontend # 安装依赖 npm install # 或使用yarn yarn install # 开发模式启动 npm run dev # 或 yarn dev # 构建生产版本 npm run build # 或 yarn build ``` 前端开发服务器:http://localhost:5173 ## 📚 API文档 ### 主要接口端点 #### 认证相关 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/logout` - 用户登出 - `GET /api/auth/profile` - 获取用户信息 #### 交通流量管理 - `GET /api/traffic/flow/current` - 获取实时交通流量 - `POST /api/traffic/flow/add` - 添加交通流量记录 - `GET /api/traffic/flow/history` - 获取历史交通数据 #### 智能预测 - `GET /api/traffic/prediction` - 获取交通预测数据 - `POST /api/traffic/prediction/generate` - 生成新的预测 #### 应急事件 - `GET /api/emergency/events` - 获取应急事件列表 - `POST /api/emergency/events` - 创建应急事件 - `PUT /api/emergency/events/{id}` - 更新事件状态 #### 用户管理 - `GET /api/users` - 获取用户列表 - `POST /api/users` - 创建用户 - `PUT /api/users/{id}` - 更新用户信息 ### API文档访问地址 启动后端服务后,可通过以下地址访问API文档: - Swagger UI: http://localhost:8081/api/api-docs-ui/ - Druid监控: http://localhost:8081/api/druid ## 🎯 核心功能模块 ### 1. 数据概览 - 实时交通状态总览 - 关键指标仪表板 - 异常情况预警 ### 2. 实时交通流量监测 - 各路口实时流量监控 - 交通拥堵状况分析 - 车辆速度分布统计 ### 3. 智能预测分析 - 基于机器学习的交通预测 - 多时段预测对比 - 预测准确性评估 ### 4. 路口监控 - 路口实时视频监控 - 信号灯状态显示 - 交通状况可视化 ### 5. 应急事件处理 - 事件上报和处理 - 应急响应流程管理 - 事件统计分析 ### 6. 用户管理 - 用户角色权限管理 - 操作日志审计 - 系统配置管理 ## ⚙️ 配置说明 ### application.yml 主要配置 ```yaml # 服务器配置 server: port: 8081 servlet: context-path: /api # 数据库配置 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/traffic_optimization username: root password: 1234 # 预测算法配置 traffic: prediction: algorithm: linear_regression confidence-threshold: 0.8 prediction-hours: 24 # 流量监测配置 monitoring: refresh-interval: 5000 max-congestion-level: 3 # 预警配置 alert: congestion-threshold: 2 speed-threshold: 25 warning-enabled: true ``` ### 前端环境配置 ```javascript // frontend/.env.development VITE_API_BASE_URL=http://localhost:8081/api // frontend/.env.production VITE_API_BASE_URL=https://your-domain.com/api ``` ## 📊 监控与日志 ### 系统监控 - Druid连接池监控 - 应用性能监控 - 数据库性能监控 ### 日志管理 - 日志文件位置: `logs/traffic-optimization.log` - 日志级别: INFO/WARN/ERROR - 日志轮转: 按日期自动轮转 ### 系统指标 - API响应时间监控 - 数据库查询性能 - 内存和CPU使用率 ## 🔧 开发指南 ### 代码规范 #### 后端编码规范 - 遵循阿里巴巴Java开发手册 - 使用Lombok减少样板代码 - 统一的异常处理机制 - RESTful API设计规范 #### 前端编码规范 - Vue 3 Composition API风格 - 组件化开发 - TypeScript类型约束 - 统一的样式规范 ### 测试策略 #### 后端测试 ```bash # 运行单元测试 mvn test # 运行集成测试 mvn integration-test # 生成测试覆盖率报告 mvn jacoco:report ``` #### 前端测试 ```bash # 运行单元测试 npm run test:unit # 运行端到端测试 npm run test:e2e # 生成测试覆盖率报告 npm run test:coverage ``` ### 部署指南 #### 生产环境部署 ```bash # 1. 构建后端 mvn clean package -DskipTests # 2. 构建前端 cd frontend && npm run build # 3. 部署应用 # 将frontend/dist目录内容复制到web服务器 # 运行Spring Boot JAR文件 java -jar target/traffic-light-optimization-1.0.0.jar ``` #### Docker部署 ```dockerfile # Dockerfile示例 FROM openjdk:8-jre-alpine COPY target/traffic-light-optimization-1.0.0.jar app.jar EXPOSE 8081 ENTRYPOINT ["java", "-jar", "/app.jar"] ``` ## 🤝 贡献指南 ### 提交规范 - feat: 新功能 - fix: 修复bug - docs: 文档更新 - style: 代码格式化 - refactor: 代码重构 - test: 测试相关 - chore: 构建工具变动 ### 开发流程 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) 文件了解详情。 ## 🙏 致谢 感谢以下开源项目的支持: - [Spring Boot](https://spring.io/projects/spring-boot) - [Vue.js](https://vuejs.org/) - [Element Plus](https://element-plus.org/) - [ECharts](https://echarts.apache.org/) - [MyBatis](https://mybatis.org/) --- ⭐ 如果这个项目对你有帮助,请给它一个星标!