一个基于Flask的Web应用,用于生成GitHub用户的年度报告,展示用户的仓库统计数据和编程语言使用情况。
- 自动获取指定GitHub用户的所有公共仓库数据
- 分析用户使用的编程语言分布
- 统计总Star数和Fork数
- 找出最受欢迎的仓库
- 使用Pyecharts生成交互式美化图表
- 使用Seaborn生成静态美化图表
- 支持GitHub API令牌认证,避免速率限制
- 响应式设计,适配不同设备
- 确保已安装Python 3.7或更高版本
- 安装项目依赖:
pip install -r requirements.txt- 在项目根目录下运行:
python app.py- 在首页输入GitHub用户名
- (可选)输入GitHub API令牌,以避免API速率限制
- 点击"生成报告"按钮
- 等待报告生成完成,查看分析结果和图表
GITHUB_USERNAME: 默认的GitHub用户名(可选)GITHUB_TOKEN: 默认的GitHub API令牌(可选)
示例:
GITHUB_USERNAME=your_username GITHUB_TOKEN=your_token python app.py在首页直接输入用户名,或者通过URL参数传递:
http://localhost:5000?username=your_username
- 如果不提供GitHub API令牌,可能会受到GitHub API的速率限制
- 仅能获取公共仓库的数据
- 确保输入的GitHub用户名正确无误
- 在生产环境中运行时,请移除代码中的
debug=True设置
- 总仓库数量
- 使用的编程语言种类
- 编程语言分布统计
- 总Star数和Fork数
- 最受欢迎的仓库(按Star数排序)
- 月度提交统计
- 仓库类型分布
- 周几提交活跃度
GitHubAnnualReport/
├── app.py # Flask主应用程序(路由和请求处理)
├── config.py # 配置模块(常量和配置管理)
├── exceptions.py # 自定义异常类
├── github_client.py # GitHub API客户端(API交互逻辑)
├── report_generator.py # 报告生成器(数据分析和报告生成)
├── chart_generator.py # 图表生成器(可视化图表生成)
├── requirements.txt # 依赖列表
├── README.md # 项目说明文档
└── templates/
└── index.html # 前端页面
项目采用模块化设计,遵循Google Python Style Guide:
- app.py: Flask应用主入口,处理HTTP请求和响应
- config.py: 集中管理所有配置项和常量
- exceptions.py: 定义自定义异常类,提供清晰的错误处理
- github_client.py: 封装GitHub API调用,处理认证和错误
- report_generator.py: 分析数据并生成Markdown格式报告
- chart_generator.py: 使用Pyecharts生成交互式图表和Seaborn生成静态美化图表
这种设计提高了代码的可维护性、可测试性和可扩展性。
- Flask: Web框架
- requests: HTTP请求库
- pandas: 数据分析
- matplotlib: 图表渲染基础库
- pyecharts: 交互式图表生成库
- seaborn: 静态美化图表生成库
- plotly: 数据可视化
- 克隆项目:
git clone <repository-url>
cd GitHubAnnualReport- 创建虚拟环境:
python -m venv venv-
激活虚拟环境:
- Windows:
venv\Scripts\activate - Linux/Mac:
source venv/bin/activate
- Windows:
-
安装依赖:
pip install -r requirements.txt- 运行项目:
python app.pyMIT License
