# news **Repository Path**: attacker/news ## Basic Information - **Project Name**: news - **Description**: 新闻发布平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-09-22 - **Last Updated**: 2026-03-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 新闻平台项目 一个基于Spring Boot + Vue3的现代化新闻平台,支持新闻发布、管理和浏览功能。 ## 项目架构 ``` news/ ├── news-server/ # 后端服务(Spring Boot) ├── news-admin-ui/ # 管理后台前端(Vue3) ├── news-ui/ # 用户网站前端(Vue3) └── docs/ # 项目文档 ``` ## 技术栈 ### 后端 - **框架**: Spring Boot 2.7.18 - **安全**: Spring Security + JWT - **数据库**: MySQL 8.0 + MyBatis Plus - **缓存**: Redis - **文档**: Swagger3 ### 前端 - **框架**: Vue3 + Composition API - **状态管理**: Pinia - **UI组件**: Element Plus - **构建工具**: Vite - **HTTP客户端**: Axios ## 快速开始 ### 环境要求 - Java 17+ - Node.js 20+ - MySQL 8.0+ - Redis 6.0+ - Maven 3.6+ ### 1. 数据库初始化 ```bash # 创建数据库并导入初始数据 mysql -u root -p < news-server/init.sql ``` ### 2. 启动后端服务 ```bash cd news-server mvn spring-boot:run # 或者 java -jar target/news-server.jar ``` 后端服务将在 http://localhost:9000 启动 ### 3. 启动管理后台 ```bash cd news-admin-ui npm install npm run dev ``` 管理后台将在 http://localhost:5173 启动 ### 4. 启动用户网站 ```bash cd news-ui npm install npm run dev ``` 用户网站将在 http://localhost:5174 启动 ## 核心功能 ### 用户管理 - ✅ 用户注册/登录 - ✅ JWT身份认证 - ✅ 角色权限管理(管理员/普通用户) ### 新闻管理 - ✅ 新闻发布/编辑/删除 - ✅ 新闻分类管理 - ✅ 新闻状态管理(草稿/已发布/已归档) - ✅ 新闻置顶功能 - ✅ 浏览统计和点赞功能 ### 内容展示 - ✅ 新闻列表和详情页 - ✅ 分类筛选 - ✅ 关键词搜索 - ✅ 热门新闻推荐 ## API文档 启动后端服务后,访问 http://localhost:9000/swagger-ui.html 查看完整的API文档。 ### 主要接口 #### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册 #### 新闻接口 - `GET /api/news` - 获取新闻列表 - `GET /api/news/{id}` - 获取新闻详情 - `POST /api/news` - 创建新闻 - `PUT /api/news/{id}` - 更新新闻 - `DELETE /api/news/{id}` - 删除新闻 ## 测试账户 ### 管理员 - 用户名: `admin` - 密码: `admin123` ### 普通用户 - 用户名: `user001` - 密码: `user123` ## 项目配置 ### 后端配置 主要配置文件: `news-server/src/main/resources/application.yml` ```yaml server: port: 9000 spring: datasource: url: jdbc:mysql://localhost:3306/news_platform username: root password: root123456 redis: host: localhost port: 6379 ``` ### 前端配置 环境配置文件: `.env.development` / `.env.production` ```env VITE_API_BASE_URL=http://localhost:9000 ``` ## 开发指南 ### 代码规范 1. 代码注释使用中文,作者标注为 Logan.Li 2. 单个文件代码不超过120行 3. 使用统一的字段命名规范 ### 提交规范 ```bash git commit -m "feat: 添加用户登录功能" git commit -m "fix: 修复新闻列表分页问题" git commit -m "docs: 更新API文档" ``` ## 部署说明 ### Docker部署 #### 方式一:仅启动基础服务(推荐) ```bash # 启动MySQL、Redis、Nacos基础服务 cd deploy/docker ./start-services.sh # 查看服务状态 docker-compose ps ``` #### 方式二:本地开发调试 在IDE中直接运行后端和前端项目,连接Docker Compose中的基础服务 ### Kubernetes部署 ```bash # 1. 首先启动基础服务(MySQL、Redis、Nacos) cd deploy/docker ./start-services.sh # 2. 配置Nacos(参考 deploy/nacos-config-example.yml) # 访问 http://localhost:8848/nacos 创建配置 # 3. 部署应用到Kubernetes集群 kubectl apply -f deploy/kubernetes/ # 4. 配置域名解析 echo '127.0.0.1 admin.news.local' >> /etc/hosts echo '127.0.0.1 news.local' >> /etc/hosts # 查看部署状态 kubectl get pods -n news-platform kubectl get svc -n news-platform kubectl get ingress -n news-platform ``` ### 传统部署 1. 后端打包: `mvn clean package` 2. 前端构建: `npm run build` 3. 部署到服务器 ### 服务访问地址 #### 基础服务(Docker Compose) - MySQL: localhost:3306 (用户名: root, 密码: root123456) - Redis: localhost:6379 - Nacos控制台: http://localhost:8848/nacos (用户名/密码: nacos/nacos) #### 访问地址 ### 开发环境 - 后端API: - **API文档**: (Knife4j) - 管理后台: - 用户网站: ### API文档说明 - **文档框架**: Knife4j + Swagger3 - **访问地址**: - **功能特性**: - 在线API测试 - JWT Token认证 - 接口分组管理 - 中文界面 - 请求/响应示例 #### 测试账号 | 角色 | 用户名 | 密码 | 说明 | |------|--------|------|------| | 管理员 | admin | admin123 | 拥有所有权限 | | 编辑 | editor001 | user123 | 新闻编辑权限 | #### Kubernetes部署 - 管理后台: http://admin.news.local - 用户网站: http://news.local ### 配置说明 #### Nacos配置 - 服务地址: nacos:8848 - 命名空间: news-platform - 配置组: DEFAULT_GROUP #### 环境变量 - `NACOS_SERVER_ADDR`: Nacos服务地址 - `MYSQL_HOST`: MySQL主机地址 - `REDIS_HOST`: Redis主机地址 ## 贡献指南 1. Fork 项目 2. 创建功能分支: `git checkout -b feature/new-feature` 3. 提交更改: `git commit -am 'Add new feature'` 4. 推送分支: `git push origin feature/new-feature` 5. 提交 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 联系方式 - 作者: Logan.Li - 邮箱: logan@example.com - 项目地址: https://gitee.com/attacker/news ## 更新日志 ### v1.0.0 (2024-09-22) - ✨ 初始版本发布 - ✨ 完成用户认证功能 - ✨ 完成新闻管理功能 - ✨ 完成管理后台界面 - ✨ 完成用户网站界面