# demo4doubao **Repository Path**: cloudonwings/demo4doubao ## Basic Information - **Project Name**: demo4doubao - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-18 - **Last Updated**: 2026-02-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # StackExchange Demo 项目 ## 项目概述 这是一个基于 Spring Boot 和 Vue 框架开发的 StackExchange 类似平台,提供了用户注册、登录、提问、回答、投票等核心功能。 ## 技术栈 ### 后端 - **Spring Boot 3.2.0**:Java 后端框架 - **Java 21.0.10 LTS**:编程语言 - **Maven 3.9.9**:构建工具 - **Spring Data JPA**:数据访问层 - **Spring Security**:认证和授权 - **H2 Database**:内存数据库 - **Lombok**:代码简化工具 ### 前端 - **Vue 3.2.13**:前端框架 - **Vue Router 4.0.3**:路由管理 - **Vuex 4.0.0**:状态管理 - **Axios 0.26.1**:HTTP 客户端 - **Bootstrap 5.1.3**:UI 框架 - **Bootstrap-Vue-3 0.1.11**:Vue 组件库 ## 项目结构 ``` stackexchangedemo/ ├── backend/ # 后端 Spring Boot 项目 │ ├── src/ │ │ ├── main/java/com/stackexchange/demo/ │ │ │ ├── config/ # 配置类 │ │ │ ├── controller/ # REST 控制器 │ │ │ ├── dto/ # 数据传输对象 │ │ │ ├── model/ # 实体类 │ │ │ ├── repository/ # 数据访问接口 │ │ │ ├── service/ # 业务逻辑层 │ │ │ └── DemoApplication.java # 应用入口 │ │ └── test/ # 单元测试 │ ├── pom.xml # Maven 配置 │ └── target/ # 构建输出目录 ├── frontend/ # 前端 Vue 项目 │ ├── src/ │ │ ├── router/ # 路由配置 │ │ ├── store/ # Vuex 状态管理 │ │ ├── views/ # 页面组件 │ │ ├── App.vue # 根组件 │ │ └── main.js # 前端入口 │ └── package.json # npm 配置 └── README.md # 项目说明文档 ``` ## 核心功能 ### 后端 API #### 用户管理 - `POST /api/users/register` - 用户注册 - `POST /api/users/login` - 用户登录 - `GET /api/users/{id}` - 获取用户信息 - `GET /api/users/username/{username}` - 根据用户名获取用户信息 - `PUT /api/users/{id}` - 更新用户信息 #### 问题管理 - `GET /api/questions` - 获取所有问题 - `GET /api/questions/{id}` - 获取问题详情 - `POST /api/questions` - 创建新问题 - `PUT /api/questions/{id}` - 更新问题 - `DELETE /api/questions/{id}` - 删除问题 #### 回答管理 - `GET /api/answers/question/{questionId}` - 获取问题的所有回答 - `POST /api/answers` - 创建新回答 - `PUT /api/answers/{id}` - 更新回答 - `DELETE /api/answers/{id}` - 删除回答 - `PUT /api/answers/{id}/accept` - 接受回答 #### 投票管理 - `POST /api/votes/question` - 对问题投票 - `POST /api/votes/answer` - 对回答投票 - `GET /api/votes/question/{userId}/{questionId}` - 获取用户对问题的投票 - `GET /api/votes/answer/{userId}/{answerId}` - 获取用户对回答的投票 ### 前端页面 - **Home** - 首页,显示热门问题 - **Questions** - 问题列表页 - **QuestionDetail** - 问题详情页,包含回答和投票功能 - **AskQuestion** - 提问页面 - **Login** - 登录页面 - **Register** - 注册页面 - **Profile** - 用户个人资料页面 ## 部署说明 ### 后端部署 #### 1. 环境要求 - Java 21.0.10 或更高版本 - Maven 3.9.9 或更高版本 #### 2. 构建和运行 ```bash # 进入后端目录 cd backend # 构建项目 mvn clean package # 运行应用 java -jar target/demo-0.0.1-SNAPSHOT.jar ``` 应用将在 `http://localhost:8080` 启动。 #### 3. 数据库配置 默认使用 H2 内存数据库,无需额外配置。 ### 前端部署 #### 1. 环境要求 - Node.js 14.0 或更高版本 - npm 6.0 或更高版本 #### 2. 构建和运行 ```bash # 进入前端目录 cd frontend # 安装依赖 npm install # 启动开发服务器 npm run serve ``` 前端应用将在 `http://localhost:8081` 启动。 #### 3. 生产构建 ```bash # 构建生产版本 npm run build ``` 构建结果将输出到 `dist` 目录,可部署到任何静态文件服务器。 ### 完整部署流程 1. 启动后端 Spring Boot 应用 2. 启动前端 Vue 应用 3. 访问 `http://localhost:8081` 开始使用 ## 测试 ### 后端测试 ```bash # 进入后端目录 cd backend # 运行单元测试 mvn test ``` ### 前端测试 ```bash # 进入前端目录 cd frontend # 运行单元测试 npm run test:unit # 运行端到端测试 npm run test:e2e ``` ## 安全配置 - 使用 Spring Security 进行认证和授权 - 密码使用 BCrypt 加密存储 - 提供 HTTP Basic 认证 - 跨域请求配置 ## API 文档 启动应用后,可通过以下方式访问 API: - REST API 基础路径:`http://localhost:8080/api` - 所有 API 接口均已在核心功能部分列出 ## 开发说明 ### 代码风格 - 后端:遵循 Java 标准代码风格 - 前端:遵循 Vue 官方推荐代码风格 ### 调试 - 后端:使用 Spring Boot DevTools 支持热重载 - 前端:使用 Vue CLI 开发服务器支持热重载 ## 故障排除 ### 常见问题 1. **后端启动失败** - 检查 Java 版本是否正确 - 检查端口 8080 是否已被占用 2. **前端启动失败** - 检查 Node.js 版本是否正确 - 检查端口 8081 是否已被占用 3. **API 调用失败** - 确保后端服务正在运行 - 检查前端 API 基础路径配置是否正确 ### 日志 - 后端日志:控制台输出 - 前端日志:浏览器开发者工具控制台 ## 许可证 MIT License ## 联系方式 如有问题,请联系项目维护者。