智能碎片时间管理与AI推荐系统
「BitGain - 碎时拾光」是一个基于Spring Boot 3.x + Vue3的前后端分离项目,专注于碎片时间管理、AI智能推荐和自动报告推送。核心理念是"从用户日程中主动挖掘价值",通过分析用户空闲时间,推荐个性化的提升活动,帮助用户充分利用每一分钟的碎片时间。
队伍名称: 塔司霆豪取灵码杯
团队成员: 万丰阁、郝品越、孟金辉
参赛赛题: 赛题3 - 智享生活
开发时间: 2025年8月
- 碎时: 指日常生活中的碎片化时间,如通勤间隙、会议间隔、等待时间等
- 拾光: 寓意"拾取光阴",将零散的时间片段收集起来,转化为有价值的学习和提升机会
- 核心价值: 不是简单的时间记录,而是主动发现和推荐适合当前时间段的提升活动
- 固定任务管理: 支持创建、编辑、删除日常固定任务,包含任务状态跟踪(待开始/已完成/已放弃)
- 今日目标设定: 用户可设定每日目标,系统自动跟踪完成情况
- 碎片时间识别: 自动分析用户日程,识别可利用的空闲时段
- 时间冲突检测: 智能检测任务时间冲突,避免日程重叠
- 智能日程生成: AI深度分析用户职业背景、技能标签、个人目标和当前日程安排,自动生成个性化的碎片时间利用方案
- 多维度匹配算法: 综合考虑用户空闲时间长度、当前技能水平、职业发展方向和学习偏好,精准推荐最适合的提升活动
- 实时流式推荐: 采用SSE(Server-Sent Events)技术,AI实时分析并流式推送推荐内容,用户可即时查看生成过程
- 智能推荐确认: 用户可选择接受或拒绝AI推荐的任务,系统持续学习用户偏好,不断优化推荐精度
- 动态时长适配: 根据用户实际可用时间(5分钟、15分钟、30分钟等),智能匹配相应难度和类型的学习任务
- AI驱动的日报生成: 每日20:00系统自动触发,AI分析用户当日任务完成情况、时间利用效率和目标达成度
- 个性化报告内容: AI根据用户的完成率、时间分布、效率指标等数据,生成专属的分析报告和改进建议
- 准时邮件推送: 定时任务精确在每晚8点执行,将包含数据可视化图表的HTML格式日报发送到用户邮箱
- 智能分析维度: 深度分析任务完成率、碎片时间利用率、目标达成情况、学习效率趋势等多个维度
- 持续优化建议: AI基于历史数据和完成情况,为用户提供个性化的时间管理和学习计划优化建议
- JWT认证: 安全的用户认证机制,支持token自动续期
- RESTful API: 标准化的API设计,支持前后端分离架构
- Swagger文档: 完整的API文档,便于开发和测试
- 个性化设置: 支持用户自定义职业信息、技能标签和邮件订阅偏好
- 核心框架: Spring Boot 3.5.4 + Java 17
- 数据库: MySQL 8.0 (utf8mb4字符集)
- ORM框架: MyBatis 3.0.5
- AI集成: Spring AI 1.0.1 + OpenAI模型
- 安全认证: Spring Security + JWT (jjwt 0.11.5)
- 邮件服务: Spring Boot Mail + SMTP
- 定时任务: Spring Schedule (Cron表达式)
- API文档: SpringDoc OpenAPI 3.0 (Swagger)
- 数据验证: Spring Boot Validation
- JSON处理: Gson 2.10.1
- 框架: Vue 3.x + Composition API
- 构建工具: Vite
- UI组件库: Element Plus
- 状态管理: Pinia
- HTTP客户端: Axios
- 图表库: ECharts
- 前后端分离: RESTful API设计,JWT无状态认证
- 分层架构: Controller → Service → Mapper 三层架构
- 模块化设计: 用户管理、任务管理、AI推荐、报告推送四大核心模块
- 流式处理: SSE技术实现AI推荐的实时流式响应
- 定时任务: 基于Spring Schedule的智能报告推送
- 安全设计: BCrypt密码加密 + JWT令牌认证
- Java: 17+
- Node.js: 16+
- MySQL: 8.0+
- Maven: 3.6+
-
克隆后端代码
git clone https://github.com/LuciusWan/BitGain-BackEnd.git cd BitGain-BackEnd -
配置数据库
- 创建MySQL数据库
fragment_time_db - 执行
建表语句Sqls.sql创建表结构 - 可选:执行
测试用户数据.sql导入测试数据
- 创建MySQL数据库
-
配置应用 编辑
src/main/resources/application.yml:spring: datasource: url: jdbc:mysql://localhost:3306/fragment_time_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: your_username password: your_password driver-class-name: com.mysql.cj.jdbc.Driver mail: host: smtp.163.com # 或其他SMTP服务器 port: 587 username: your_email@163.com password: your_smtp_password properties: mail: smtp: auth: true starttls: enable: true # AI配置 spring: ai: openai: api-key: your_openai_api_key base-url: https://api.openai.com # JWT配置 bitgain: jwt: secret-key: your_jwt_secret_key ttl: 86400000 # 24小时
-
编译和启动
# 编译项目 mvn clean compile # 启动应用 mvn spring-boot:run
应用启动后访问:
- API接口: http://localhost:8080
- Swagger文档: http://localhost:8080/swagger-ui/index.html
-
克隆前端代码
git clone https://github.com/LuciusWan/BitGain-FrontEnd.git cd BitGain-FrontEnd -
安装依赖
npm install
-
配置API地址
// .env.production VITE_API_BASE_URL=http://your-backend-url:8081
-
启动开发服务器
npm run dev
前端应用访问:http://localhost:3000
-
构建生产版本
npm run build
🌐 网站地址: http://39.104.77.78/
- 用户名:
123456 - 密码:
123456
- 智能推荐: 登录后体验基于AI的实时流式推荐
- 任务管理: 创建固定任务和今日目标,体验状态跟踪
- AI推荐确认: 体验推荐任务的接受/拒绝机制
- 智能日报: 查看每日自动生成的个性化报告
- 邮件推送: 订阅日报,体验定时邮件推送功能
- 前端仓库: https://github.com/LuciusWan/BitGain-FrontEnd
- 后端仓库: https://github.com/LuciusWan/BitGain-BackEnd
POST /user/register- 用户注册(用户名、密码、手机号)POST /user/login- 用户登录(返回JWT token)GET /user/info- 获取当前用户信息(需要JWT认证)PUT /user/update- 更新用户信息(职业、技能标签等)
GET /fixed-task/list- 获取用户固定任务列表POST /fixed-task- 创建固定任务(支持时间冲突检测)PUT /fixed-task- 更新固定任务状态DELETE /fixed-task/{id}- 删除固定任务GET /today-goal/list- 获取今日目标列表POST /today-goal- 创建今日目标
GET /bitgain-design/recommend- 获取AI推荐(SSE流式响应)POST /bitgain-design/confirm- 确认推荐任务(接受/拒绝)
- 定时任务自动生成日报(每日20:00)
- 邮件推送个性化报告
- 在线文档: Swagger UI
- 详细说明: 查看项目根目录下的
apidoc.md文件
- 代码风格: 遵循项目既定的代码规范,使用4空格缩进
- 命名规范: 类名使用PascalCase,方法和变量使用camelCase
- 注释要求: 所有public方法必须添加JavaDoc注释
- 测试覆盖: 新增功能需要编写对应的单元测试
- 数据库: 遵循软删除原则,使用
deleted字段标记
- 后端: Spring Boot 3.x + MyBatis + MySQL
- 前端: Vue 3.x + Element Plus + Pinia
- AI集成: Spring AI框架 + OpenAI模型
- 认证: JWT + Spring Security
- Fork 项目到个人仓库
- 创建功能分支 (
git checkout -b feature/新功能名称) - 完成开发并测试
- 提交更改 (
git commit -m 'feat: 添加新功能描述') - 推送到分支 (
git push origin feature/新功能名称) - 创建 Pull Request
如果您在使用过程中遇到问题,请通过以下方式联系我们:
- GitHub Issues: 提交bug报告或功能建议
- 邮箱联系: 18099488938@163.com
- 项目文档: 查看
exception.md了解常见问题解决方案
- user: 用户基本信息、职业技能、邮件订阅设置
- fixed_task: 固定任务管理,支持状态跟踪(pending/completed/abandoned)
- today_goal: 每日目标设定和完成情况
- recommend_activity: AI推荐活动库,包含分类、难度、适用职业等
- fragment_task: 碎片任务执行记录
- 软删除: 所有表使用
deleted字段实现软删除 - 时间戳: 统一的
create_time和update_time字段 - 字符集: utf8mb4字符集,支持emoji和特殊字符
- 索引优化: 针对查询频繁的字段建立合适的索引
- 精准定时执行: 使用Spring Boot @Scheduled注解,Cron表达式
0 0 20 * * ?确保每日20:00准时触发 - AI驱动日报生成: 定时任务自动调用AI接口,分析用户当日数据,生成个性化报告内容
- 异步邮件推送: 采用Spring异步机制,避免邮件发送阻塞主线程,支持批量用户并发处理
- 智能失败重试: @Retryable注解实现邮件发送失败自动重试(最多3次),确保推送成功率
- 实时数据统计: 动态计算任务完成率、碎片时间利用效率、目标达成度等关键指标
- 操作日志: 记录用户关键操作和系统状态
- 错误日志: 详细的异常堆栈信息,便于问题排查
- 性能监控: 接口响应时间和数据库查询性能
- 团队名称: 塔司霆豪取灵码杯
- 项目负责人: Lucius
- 开发时间: 2025年8月
- 技术支持: 18099488938@163.com
- 项目反馈: 通过GitHub Issues提交
- 商务合作: 请发送邮件详细说明合作意向
感谢您对BitGain项目的关注和支持! 🚀
如果这个项目对您有帮助,请给我们一个 ⭐ Star,这将是对我们最大的鼓励!