logo
1
0
WeChat Login

DevGrow - 程序员成长计量与可视化系统

专为程序员设计的科学化成长管理平台,通过量化分析、多维度可视化助力实现数据驱动的精准成长

Spring Boot Vue TypeScript License

📖 项目简介

DevGrow是一个面向全层级程序员的科学化成长管理平台,基于认知负荷理论、知识图谱理论等科学原理,通过量化分析、多维度可视化和闭环迭代,帮助程序员实现数据驱动的精准成长。

核心特性

  • 📊 科学计量 - 基于认知负荷理论、知识图谱理论进行成长计量
  • 📈 多维可视化 - 知识图谱、雷达图、成长曲线、价值矩阵等多维度呈现
  • 🔄 闭环迭代 - PDCA循环理论支撑的复盘优化机制
  • 🤖 自动化采集 - 支持手动录入和第三方API对接
  • 📱 全栈开发 - Spring Boot后端 + Vue3前端,完整解决方案

🏗️ 技术架构

后端技术栈

技术版本说明
Java17+编程语言
Spring Boot3.2+应用框架
Spring Security6.2+安全认证
MySQL8.0+关系型数据库
Redis7.0+缓存数据库
Neo4j5.0+图数据库(知识图谱)
JWT-Token认证
MyBatis-ORM框架

前端技术栈

技术版本说明
Vue3.3+前端框架
TypeScript5.0+类型安全
Vite5.0+构建工具
Element Plus2.4+UI组件库
Pinia2.1+状态管理
Vue Router4.2+路由管理
ECharts5.4+数据可视化

🎯 核心功能

1. 用户管理

  • ✅ 用户注册/登录
  • ✅ JWT Token认证
  • ✅ 用户画像管理(技术方向、工作年限、核心技能等)
  • ✅ 个人信息维护

2. 数据采集

学习数据

  • 学习时长、课程进度
  • 学习平台、课程名称
  • 学习笔记

工作数据

  • 代码提交次数
  • 新增/删除代码行数
  • Bug修复/产生数
  • 需求交付情况
  • 代码评审次数

健康数据

  • 睡眠时长与质量
  • 运动类型与时长
  • 静息心率
  • 情绪评分与压力等级

3. 数据分析

知识增长维度

  • 有效学习时长
  • 新增知识点数
  • 平均每日学习时间

职业竞争力维度

  • 代码提交统计
  • Bug修复数量
  • 核心需求交付占比

身心健康维度

  • 平均睡眠时长
  • 睡眠质量评分
  • 运动天数统计

4. 可视化展示

  • 仪表盘 - 月度数据概览、核心指标展示、最近活动
  • 知识图谱 - 知识点关联关系可视化(Neo4j)
  • 成长分析 - 学习趋势图、健康趋势图、成长建议
  • 复盘报告 - 月度/季度/年度成长总结报告
  • 可视化 - 三维能力雷达图、价值矩阵、技能分布

5. 目标管理

  • 成长目标设定(学习时长、知识点、运动等)
  • 学习提醒设置
  • 数据导入导出
  • 系统个性化配置

🚀 快速开始

环境要求

  • JDK 17+
  • Node.js 18+
  • MySQL 8.0+
  • Redis 7.0+
  • Neo4j 5.0+(可选,用于知识图谱)

安装步骤

1. 克隆项目

git clone <repository-url> cd dev-grow

2. 后端配置与启动

cd dev-grow-backend # 配置数据库连接 # 编辑 src/main/resources/application.yml # 修改MySQL、Redis、Neo4j连接信息 # 安装依赖并启动 mvn clean install mvn spring-boot:run

后端服务启动在 http://localhost:8088

3. 前端配置与启动

cd dev-grow-frontend # 安装依赖 npm install # 启动开发服务器 npm run dev

前端服务启动在 http://localhost:5173

4. 数据库初始化

# 创建数据库 mysql -u root -p -e "CREATE DATABASE dev_grow CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" # 导入初始化脚本 mysql -u root -p dev_grow < docs/sql/init.sql

5. 访问系统

打开浏览器访问:http://localhost:5173

默认测试账号:

  • 用户名:test
  • 密码:test123

📁 项目结构

dev-grow/ ├── dev-grow-backend/ # Spring Boot后端 │ ├── src/main/java/ │ │ ├── config/ # 配置类 │ │ │ ├── SecurityConfig # 安全配置 │ │ │ └── RedisConfig # Redis配置 │ │ ├── controller/ # 控制器层 │ │ │ ├── AuthController # 认证接口 │ │ │ ├── UserController # 用户接口 │ │ │ ├── DataCollectionController # 数据采集 │ │ │ ├── KnowledgeGraphController # 知识图谱 │ │ │ └── MetricController # 指标计算 │ │ ├── service/ # 服务层 │ │ ├── mapper/ # 数据访问层 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ ├── vo/ # 视图对象 │ │ ├── filter/ # 过滤器 │ │ │ └── JwtAuthenticationFilter # JWT认证 │ │ └── util/ # 工具类 │ ├── src/main/resources/ │ │ ├── application.yml # 主配置文件 │ │ └── mapper/ # MyBatis映射 │ └── pom.xml │ ├── dev-grow-frontend/ # Vue 3前端 │ ├── src/ │ │ ├── api/ # API接口定义 │ │ │ ├── user.ts # 用户API │ │ │ ├── data.ts # 数据API │ │ │ └── graph.ts # 知识图谱API │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 公共组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia状态管理 │ │ │ └── user.ts # 用户状态 │ │ ├── types/ # TypeScript类型定义 │ │ ├── utils/ # 工具函数 │ │ │ └── request.ts # HTTP请求封装 │ │ └── views/ # 页面组件 │ │ ├── Login.vue # 登录页 │ │ ├── Register.vue # 注册页 │ │ ├── Layout.vue # 布局(含侧边栏) │ │ ├── Dashboard.vue # 仪表盘 │ │ ├── Profile.vue # 用户画像 │ │ ├── DataEntry.vue # 数据录入 │ │ ├── KnowledgeGraph.vue # 知识图谱 │ │ ├── Analysis.vue # 成长分析 │ │ ├── Visualization.vue # 可视化 │ │ ├── Report.vue # 复盘报告 │ │ └── Settings.vue # 设置 │ ├── package.json │ └── vite.config.ts │ ├── docs/ # 文档目录 │ ├── 01-system-architecture.md # 系统架构设计 │ ├── 02-database-design.md # 数据库设计 │ ├── 03-deployment-guide.md # 部署指南 │ ├── 04-integration-testing.md # 集成测试 │ └── sql/ │ └── init.sql # 数据库初始化脚本 │ ├── docker-compose.yml # Docker编排 ├── .gitignore # Git忽略配置 └── README.md # 本文件

📊 数据流转

完整数据流

用户登录 ↓ 数据录入 (学习/工作/健康) ↓ MySQL数据库 (learning_record/work_record/health_record) ↓ 指标计算服务 (MetricCalculationService) ├─ 知识增长维度指标 ├─ 职业竞争力维度指标 └─ 身心健康维度指标 ↓ 前端展示 (Dashboard/Analysis/Report/Visualization)

数据存储

  • MySQL - 用户信息、成长记录、指标数据
  • Redis - 热点数据缓存、会话信息
  • Neo4j - 知识图谱数据(可选)

🔐 安全设计

  • 密码加密 - BCrypt加密存储
  • JWT认证 - Token有效期2小时,支持刷新
  • CORS配置 - 允许跨域访问
  • 权限控制 - 基于Spring Security
  • SQL注入防护 - MyBatis参数化查询

📈 性能优化

  • Redis缓存 - 热点数据缓存,提升查询速度
  • 分页查询 - 避免大数据量查询
  • 索引优化 - 关键字段建立索引
  • 异步处理 - 耗时操作异步执行

🎨 界面预览

侧边栏

  • 渐变色背景(紫色系)
  • 折叠/展开功能
  • 当前页面高亮

仪表盘

  • 本月学习时长统计
  • 新增知识点数量
  • 目标完成率
  • 健康评分
  • 最近活动时间线
  • 成长趋势图

知识图谱

  • 力引导/环形布局
  • 节点关系可视化
  • 技术栈分布饼图
  • 掌握程度统计

📦 部署

Docker部署(推荐)

# 构建并启动所有服务 docker-compose up -d # 查看日志 docker-compose logs -f # 停止服务 docker-compose down

手动部署

详见 docs/03-deployment-guide.md


🧪 测试

# 后端测试 cd dev-grow-backend mvn test # 前端测试 cd dev-grow-frontend npm run test

📚 文档

详细文档请查看 docs/ 目录:


🤝 贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交Pull Request

开发规范

后端

  • 遵循阿里巴巴Java开发规范
  • 接口统一返回格式:{code, message, data, timestamp}
  • 异常统一处理
  • 添加必要的注释

前端

  • 遵循Vue官方风格指南
  • 使用TypeScript类型检查
  • 组件命名采用PascalCase
  • 提取可复用的组件

🐛 问题反馈

如有问题或建议:


📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


👥 团队

IdeaSpark Team - 专注于开发者工具的创新团队


🙏 致谢

感谢以下开源项目:


版本: v1.0.0 最后更新: 2024-01-06 维护状态: ✅ 积极维护


⭐ 如果这个项目对你有帮助,请给个Star支持一下!

Made with ❤️ by IdeaSpark Team