Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Trending Projects Platform

一个现代化的 GitHub 热门项目追踪平台,集成 AI 智能分析、自动化文档生成和项目知识库管理功能。

✨ 功能特性

  • 🔥 GitHub Trending 热门项目追踪(多语言、多时间范围)
  • 🧠 智能缓存:SQLite 持久化,支持手动更新
  • 📥 批量下载 README 并自动跳过已存在文件
  • 🤖 基于 OpenAI 兼容 API 自动生成项目介绍
  • 📚 项目知识库:标签、收藏、备注、搜索
  • 🎨 现代化响应式界面,支持深色 / 浅色主题
  • 📡 SSE 实时日志展示文档生成进度
  • ⚙️ 管理员设置页:配置 AI API 和 GitHub Token

🛠️ 技术栈

技术
前端 React 18、Vite、React Router、Axios
后端 Node.js 24、Express、node:sqlite
文档生成 Python 3、OpenAI SDK、httpx
数据存储 SQLite(Node 内置 node:sqlite
部署 Docker、Docker Compose、Nginx

注意:项目使用 Node.js 内置 node:sqlite,要求 Node.js >= 22.5

📁 项目结构

.
├── server/                    # Express 后端
│   ├── src/
│   │   ├── config/            # 环境变量配置
│   │   ├── db/                # SQLite 初始化与迁移
│   │   ├── repositories/      # 数据访问层
│   │   ├── routes/            # HTTP 路由
│   │   ├── services/          # 业务逻辑
│   │   ├── middleware/        # 中间件
│   │   └── utils/             # 工具函数
│   ├── app.js
│   └── index.js
├── frontend/                  # React 前端
│   └── src/
│       ├── pages/             # 页面组件
│       ├── components/        # 通用组件
│       ├── contexts/          # 全局状态
│       ├── hooks/             # 自定义 Hooks
│       ├── services/          # API 请求
│       └── utils/             # 工具函数
├── doc_generator/             # Python 文档生成器
├── data/                      # SQLite 数据库目录(运行时生成)
├── reports/                   # 下载的 README 文件
├── introductions/             # 生成的项目介绍
└── tests/                     # 后端测试

🚀 本地运行

环境要求

  • Node.js >= 22.5
  • npm
  • Python >= 3.8(仅文档生成功能需要)

1. 安装依赖

# 后端 / 根目录
npm install

# 前端
cd frontend
npm install
cd ..

2. 配置环境变量

复制根目录 .env.example.env,并填写必要配置:

cp .env.example .env

文档生成器配置:

cp doc_generator/.env.example doc_generator/.env

3. 启动后端

npm start

后端默认运行在 http://localhost:3000,健康检查地址为 http://localhost:3000/health

4. 启动前端(开发模式)

cd frontend
npm run dev

前端开发服务器默认运行在 http://localhost:5173

🐳 Docker 运行

# 使用 docker-compose 启动前后端
docker-compose up -d --build

⚙️ 环境变量

变量 说明 默认值
PORT 后端端口 3000
NODE_ENV 运行环境 development
GITHUB_TOKEN GitHub Token,提高 API 速率限制
ADMIN_TOKEN 管理员令牌,保护设置页
ALLOWED_ORIGINS 允许的 CORS 来源,逗号分隔 http://localhost:5173,http://localhost:3000
DB_PATH SQLite 数据库路径 data/github_crawler.db
RATE_LIMIT_WINDOW_MS 限流窗口(毫秒) 900000
RATE_LIMIT_MAX_REQUESTS 窗口内最大请求数 100
PROXY_HOST / PROXY_PORT / PROXY_PROTOCOL 代理配置
HTTP_PROXY 标准 HTTP 代理
NO_PROXY 设为 true 禁用代理
PYTHON_BIN Python 可执行文件路径 python3

📡 主要 API

热门项目

  • GET /api/trending?since=daily|weekly|monthly|all&language=javascript
  • GET /api/github/trending:兼容旧路由
  • POST /api/scheduler/fetch:手动触发缓存更新
  • GET /api/scheduler/status:获取调度器状态
  • GET /api/scheduler/logs:SSE 实时日志

项目介绍

  • GET /api/introductions
  • GET /api/introductions/:id

标签 / 收藏 / 备注

  • GET /api/project-status
  • PUT /api/project-status/:id
  • POST /api/project-status/tags
  • PUT /api/project-status/tags/:tagId
  • DELETE /api/project-status/tags/:tagId
  • POST /api/project-status/favorites/:id
  • DELETE /api/project-status/favorites/:id
  • GET /api/project-status/notes/:projectId
  • PUT /api/project-status/notes/:projectId
  • DELETE /api/project-status/notes/:projectId

文档生成器

  • POST /api/doc-generator/run
  • POST /api/doc-generator/stop
  • GET /api/doc-generator/status
  • GET /api/doc-generator/logs:SSE 实时日志

设置(需要 ADMIN_TOKEN

  • GET /api/settings/doc-generator
  • POST /api/settings/doc-generator
  • POST /api/settings/test-connection

系统

  • GET /health
  • GET /ready

🧪 测试与代码质量

# lint
npm run lint

# 测试
npm test

# 前端构建
npm run build

🤝 贡献

请阅读 CONTRIBUTING.md

📄 许可证

MIT

About

一个现代化的 GitHub 热门项目追踪平台,集成 AI 智能分析、自动化文档生成和项目知识库管理功能。

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages