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

About

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

Language
Java47.3%
Vue44.6%
TypeScript6.3%
Dockerfile1%
Others0.8%