# code-help **Repository Path**: bingbingyihao/code-help ## Basic Information - **Project Name**: code-help - **Description**: 私密高效的技术支持平台 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-28 - **Last Updated**: 2025-11-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # code-help #### 介绍 **CodeHelp** 是一个专注于高隐私性与安全性的私密技术支持平台。它为程序员和技术人员提供了一个点对点的问题协作环境,用户可以发布计算机相关问题,并指定1-3名专家进行解答。平台强调内容审核、闭环管理和数据安全,适用于企业内部或小范围技术社区使用。 > **核心定位**:非公开论坛,不支持自由抢答或支付功能,通过管理员审核机制确保内容质量和流程可控。 --- ### 🏗️ 系统架构概览 本系统采用前后端分离的微服务架构,包含两个独立的应用: ``` +------------------+ +--------------------+ | 前端 Web 页面 | ↔→ | 后端 API Server | +------------------+ +--------------------+ ↓ +----------------------------+ | 数据库(MySQL) | +----------------------------+ ↓ +----------------------------+ | 文件存储(本地文件系统) | +----------------------------+ ``` - **前端**: 基于 Vue3 和 Element Plus 构建的单页应用 (SPA)。 - **后端**: 基于 Spring Boot 框架开发,分为 **用户端** 和 **管理端** 两个独立服务。 - **数据库**: 使用 MySQL 存储用户、问题、附件等所有元数据。 - **文件存储**: 采用本地磁盘进行附件存储,并通过 UUID 生成唯一文件名以防止遍历攻击。 --- ### 🔑 核心功能 #### 用户端 (`User_SpringBoot`) - **身份认证**: JWT 令牌登录、登出与状态校验。 - **问题管理**: 发布、修改、删除技术问题,支持上传文本类附件。 - **任务处理**: 技术专家可接受或拒绝被指派的任务。 - **权限控制**: 严格的访问控制,确保只有提问者和被指派的专家能查看问题详情。 - **频率限制**: 基于 IP 的访问限流,防止暴力破解和滥用。 #### 管理端 (`Admin_SpringBoot`) - **用户管理**: 创建、启用/禁用账户,重置密码并自动发送邮件通知。 - **问题审核**: 集中审批待审问题,驳回时需填写原因。 - **邮件通知**: 在用户创建和密码重置时,自动向邮箱发送包含初始凭证的 HTML 邮件。 - **安全审计**: 记录操作日志,确保所有关键操作可追溯。 --- ### ⚙️ 技术栈 | 层级 | 技术选型 | |------|----------| | **前端** | Vue3, Vue Router, Element Plus, Axios | | **后端** | Spring Boot 2.3.4, MyBatis-Plus, JWT, BCrypt | | **数据库** | MySQL 8.0+ | | **构建工具** | Maven | | **安全** | Hutool Tika (MIME检测), Base64编码密钥 | --- ### 📦 项目结构 ``` code-help/ ├── code/ │ ├── user/ # 用户端前端代码 (Vue) │ └── User_SpringBoot/ # 用户端后端代码 (Spring Boot) │ └── src/main/java/com/boot/ │ ├── controller/ # 控制器层 (API接口) │ ├── service/ # 业务逻辑层 │ ├── mapper/ # MyBatis Mapper │ ├── entity/ # 实体类 │ └── utils/ # 工具类 (JWT, 安全等) │ │ ├── admin/ # 管理端前端代码 (Vue) │ └── Admin_SpringBoot/ # 管理端后端代码 (Spring Boot) │ └── ... # 结构同上 │ └── doc/ # 详细设计与接口文档 ├── 用户端需求文档.md ├── 用户端设计文档.md ├── 用户端接口文档.md ├── 管理端需求文档.md ├── 管理端设计文档.md └── 管理端接口文档.md ``` --- ### 🚀 快速启动 #### 1. 环境准备 - JDK 8+ - MySQL 8.0+ - Node.js & npm - Maven #### 2. 数据库配置 1. 在 MySQL 中创建名为 `test` 的数据库。 2. 执行 SQL 脚本初始化表结构(参考 `doc/用户端设计文档.md` 中的数据模型)。 #### 3. 运行后端服务 **启动用户端:** ```bash cd code/User_SpringBoot mvn spring-boot:run # 服务将运行在 http://localhost:8080 ``` **启动管理端:** ```bash cd code/Admin_SpringBoot mvn spring-boot:run # 服务将运行在 http://localhost:10010 ``` #### 4. 运行前端应用 **启动用户端界面:** ```bash cd code/user npm install npm run serve # 前端将运行在 http://localhost:8081 ``` **启动管理端界面:** ```bash cd code/admin npm install npm run serve # 前端将运行在 http://localhost:10011 ``` #### 5. 访问系统 - **用户端**: [http://localhost:8081](http://localhost:8081) - **管理端**: [http://localhost:10011](http://localhost:10011) --- ### 📄 文档说明 本项目的所有设计和实现细节均已在 `doc/` 目录下的 Markdown 文档中详细记录: - **需求文档**: 明确产品目标、用户角色和功能列表。 - **设计文档**: 描述系统架构、数据模型和核心业务流程。 - **接口文档**: 提供完整的 RESTful API 列表,包括请求/响应示例。 建议开发者和维护者在进行任何变更前,先阅读相关文档以保持一致性。 --- ### 🛡️ 安全特性 - **认证安全**: 使用 HS512 签名的 JWT 令牌,密钥要求至少 512 bits。 - **输入验证**: 所有接口均进行参数校验,防止 XSS 和 SQL 注入。 - **文件安全**: 仅允许上传 `.txt`, `.log`, `.java`, `.py` 等文本类文件,禁止可执行文件。使用 Apache Tika 检测真实 MIME 类型。 - **下载安全**: 下载附件包时,会自动打包一个 `README_SECURITY.txt` 安全提醒文件。 - **敏感信息脱敏**: 日志中自动屏蔽密码字段。 --- *文档版本:v1.1* *最后更新时间:2025年11月02日*