# SourceShareWithU **Repository Path**: Qinshh/source-share-with-u ## Basic Information - **Project Name**: SourceShareWithU - **Description**: 一个可以实现前后端分离与部署的轻量级资源共享平台~ - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-30 - **Last Updated**: 2026-01-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 公共资源分享平台 (Source Share Platform) 一个基于 Spring Boot 的公共资源分享与管理平台,提供用户认证、资源上传下载、分类管理等功能。 ## 📋 项目简介 本项目是一个轻量级的公共资源分享平台,采用前后端分离架构设计。平台支持用户注册登录、资源上传下载、分类管理等功能,适用于学习资料、代码片段等资源的共享与交流。 ## ✨ 主要功能 ### 👤 用户管理 - **用户登录**:基于 JWT 的无状态认证机制 - **用户注册**:支持管理员创建新用户 - **个人信息管理**:可修改个人资料(姓名、年级、邮箱等) - **权限控制**:基于角色的访问控制 ### 📁 资源管理 - **资源上传**:支持多分类文件上传 - **资源下载**:按分类和关键字检索资源 - **资源重命名**:支持在线修改资源名称 - **资源删除**:支持删除指定资源 ### 🗂️ 分类系统 - **多级分类**:支持按类别组织资源 - **分类统计**:实时显示各类别资源数量 - **分类检索**:快速定位所需资源 ### 🔍 搜索功能 - **关键字搜索**:快速查找相关资源 - **最新动态**:展示最近上传/更新的资源 ## 🛠️ 技术栈 ### 后端技术 - **框架**:Spring Boot 3.5.x - **数据库**:PostgreSQL - **ORM**:MyBatis-Plus - **认证**:JWT (JSON Web Token) - **安全**:Spring Security + PasswordEncoder - **配置**:MyBatis-Plus 自动填充、JSON 处理 ### 前端技术 - **页面**:HTML5 + CSS3 + JavaScript (原生) - **UI 框架**:自定义现代风格 UI - **交互**:原生 JavaScript 异步请求 ### 开发工具 - **构建工具**:Maven 3.x - **开发环境**:IntelliJ IDEA / TRAE - **API 文档**:Knife4j (Swagger) ## 📁 项目结构 ``` source-share/ ├── source-share-common/ # 公共模块 │ └── src/main/java/com/study/common/ │ ├── BaseContext.java # 线程上下文工具类 │ ├── CustomException.java # 自定义异常类 │ ├── MyMetaObjecthandler.java # 自动填充处理器 │ ├── Result.java # 统一响应结果封装 │ └── GlobalExceptionHandler.java # 全局异常处理器 │ ├── source-share-pojo/ # 实体类模块 │ └── src/main/java/com/study/ │ ├── dto/ │ │ └── SourceDto.java # 资源数据传输对象 │ ├── entity/ │ │ ├── Source.java # 资源实体类 │ │ ├── User_Source.java # 用户-资源关联实体 │ │ └── Users.java # 用户实体类 │ └── vo/ │ └── SourceVo.java # 资源视图对象 │ └── source-share-server/ # 服务模块 └── src/main/java/com/study/ ├── SourceShareApplication.java # 启动类 ├── config/ # 配置类 │ ├── SecurityConfig.java # Spring Security 配置 │ ├── JacksonConfig.java # JSON 序列化配置 │ └── WebMvcConfig.java # Web MVC 配置 ├── controller/ # 控制器 │ ├── UserController.java # 用户相关接口 │ ├── SourceController.java # 资源相关接口 │ └── CommonController.java # 通用接口(上传/下载) ├── service/ # 服务层 │ ├── SourceService.java # 资源服务接口 │ ├── UserService.java # 用户服务接口 │ └── Impl/ # 服务实现类 ├── mapper/ # 数据访问层 │ ├── SourceMapper.java │ ├── UserMapper.java │ └── User_SourceMapper.java ├── filter/ # 过滤器 │ └── JwtAuthenticationFilter.java # JWT 认证过滤器 └── utils/ # 工具类 └── JwtUtil.java # JWT 工具类 ``` ## 🚀 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.x - PostgreSQL ### 数据库配置 1. 创建数据库:详见mysql.sql文档 2. 导入数据库脚本(位于 `source-share-server/src/main/resources/mysql.sql`) 3. 修改配置文件 `source-share-server/src/main/resources/application.yml`: ```yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:postgresql://localhost:5432/source_share?useSSL=false&serverTimezone=Asia/Shanghai username: your_username password: your_password ``` ### 运行项目 ```bash # 1. 克隆项目 git clone https://gitee.com/Qinshh/source-share-with-u.git # 2. 进入项目目录 cd source-share-with-u # 3. 编译项目 mvn clean install # 4. 运行服务 cd source-share-server mvn spring-boot:run ``` ### 访问应用 - **首页**:`http://localhost:8080/index.html` - **登录页**:`http://localhost:8080/login.html` - **API 文档**:`http://localhost:8080/doc.html` (需 Knife4j 支持) ## 📡 API 接口文档 ### 用户认证模块 | 方法 | 路径 | 说明 | 参数 | |------|------|------|------| | GET | `/api/users/login` | 用户登录 | userName, passWord | | POST | `/api/users/register` | 注册用户(管理员) | user 对象 | | PUT | `/api/users/update` | 修改个人信息 | user 对象 | | POST | `/api/users/logout` | 退出登录 | - | | GET | `/api/users/info` | 获取当前用户信息 | - | ### 资源管理模块 | 方法 | 路径 | 说明 | 参数 | |------|------|------|------| | GET | `/api/source/news` | 获取最新资源动态 | - | | GET | `/api/source/search` | 搜索资源 | keyword | | GET | `/api/source/list/{category}` | 获取分类资源列表 | category | | DELETE | `/api/source/delete/{category}` | 删除资源 | category, id | | POST | `/api/source/rename` | 重命名资源 | id, newName | ### 通用接口模块 | 方法 | 路径 | 说明 | 参数 | |------|------|------|------| | POST | `/api/common/upload/{category}` | 上传文件 | file, category | | GET | `/api/common/download` | 下载文件 | id | ## 📝 配置说明 ### JWT 配置 在 `application.yml` 中配置: ```yaml jwt: secret: your-secret-key-here # JWT 密钥(建议32位以上) expiration: 1800000 # 过期时间(毫秒),默认30分钟 ``` ### 文件存储配置 ```yaml source-share: path: /your/local/storage/path # 文件存储路径 ``` ## 🎨 界面预览 平台提供现代化的 Web 界面,包括: - **首页**:展示用户信息、最新动态、资源分类卡片 - **登录页**:简洁的登录表单 - **个人中心**:个人资料编辑、密码修改 - **资源管理**:资源上传、下载、重命名、删除 ## 🤝 贡献指南 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 📧 联系方式 - 项目地址:https://gitee.com/Qinshh/source-share-with-u - 作者:Qinshh - 时间:2025年12月22日