101 lines
5.7 KiB
Markdown
101 lines
5.7 KiB
Markdown
# 追光AI - 模块文档索引
|
|
|
|
## 项目概述
|
|
追光AI是一个AI工具与开源技能目录网站,支持提示词驱动的工具/技能发现、审核管理和前台展示,集成五维评测系统、任务调度、权限体系和社区互动功能。
|
|
|
|
## 技术栈
|
|
|
|
| 类别 | 技术 | 版本 |
|
|
|------|------|------|
|
|
| 框架 | Next.js (App Router) | 14.2.35 |
|
|
| 语言 | TypeScript | 5.x |
|
|
| 样式 | Tailwind CSS + shadcn/ui | 3.x |
|
|
| 数据库 | MySQL (阿里云RDS) + Prisma | 7.8 |
|
|
| 认证 | NextAuth.js | v4 |
|
|
| AI | DeepSeek API (deepseek-v4-pro) | 服务端脚本调用 |
|
|
| 图表 | Chart.js + react-chartjs-2 | 4.x |
|
|
| GitHub | Octokit | 5.x |
|
|
| 验证 | Zod | 4.x |
|
|
| 部署 | Node.js + PM2 | 18+ |
|
|
| 端口 | 8301-8310 | 默认8301 |
|
|
|
|
## 项目结构
|
|
```
|
|
zhuiguang-ai/
|
|
├── prisma/ # 数据库Schema + 迁移 + 种子
|
|
├── public/ # 静态资源 (logo.png, logos/)
|
|
├── scripts/ # 独立脚本 (6个定时任务 + 多个工具脚本)
|
|
├── src/
|
|
│ ├── app/
|
|
│ │ ├── (admin)/admin/ # 后台页面 (18个页面 + 任务调度3个子页)
|
|
│ │ ├── api/ # API路由 (50+个端点)
|
|
│ │ ├── categories/ # 前台分类页
|
|
│ │ ├── reviews/ # 前台评测列表+榜单
|
|
│ │ ├── skills/ # 前台技能页
|
|
│ │ ├── tools/ # 前台工具页
|
|
│ │ ├── login/ # 用户登录页
|
|
│ │ ├── daily/ # AI日报页
|
|
│ │ ├── user/ # 用户中心(个人资料/收藏/收藏夹)
|
|
│ │ ├── globals.css # 全局样式
|
|
│ │ ├── layout.tsx # 前台布局
|
|
│ │ └── page.tsx # 首页
|
|
│ ├── components/ # 组件 (Header, Footer, UI, Common)
|
|
│ ├── lib/ # 工具库 (prisma, auth, admin-auth, github, deepseek, logo-fetcher, logo-storage, utils)
|
|
│ └── middleware.ts # 路由保护
|
|
├── .env # 环境变量
|
|
├── restart.ps1 # 服务重启脚本(端口8301-8310)
|
|
└── package.json # 依赖配置
|
|
```
|
|
|
|
## 模块文档
|
|
|
|
| 序号 | 模块 | 文档 | 说明 |
|
|
|------|------|------|------|
|
|
| 01 | 数据库 | [01-database.md](./modules/01-database.md) | 26张数据模型、8个枚举、完整索引、迁移历史 |
|
|
| 02 | API | [02-api.md](./modules/02-api.md) | 前台/后台/用户API端点、SystemConfig配置键 |
|
|
| 03 | 页面 | [03-pages.md](./modules/03-pages.md) | 前台/后台页面路由、布局、功能说明 |
|
|
| 04 | 组件与样式 | [04-components-and-styles.md](./modules/04-components-and-styles.md) | UI组件、样式系统、设计规范 |
|
|
| 05 | AI发现 | [05-ai-discovery.md](./modules/05-ai-discovery.md) | 提示词驱动发现流程、Logo抓取引擎、定时任务、评测管线 |
|
|
| 06 | 认证 | [06-auth.md](./modules/06-auth.md) | NextAuth配置、路由保护、权限体系、登录流程 |
|
|
| 07 | 工具库与脚本 | [07-lib-and-scripts.md](./modules/07-lib-and-scripts.md) | 工具函数、定时任务脚本、运维脚本 |
|
|
| 08 | 社区功能 | [08-community.md](./modules/08-community.md) | 评论系统、收藏、浏览历史、收藏夹、通知、论坛 |
|
|
| 09 | 运维与部署 | [09-devops.md](./modules/09-devops.md) | 服务器配置、Nginx、Crontab、部署流程、踩坑记录 |
|
|
|
|
## 环境变量
|
|
```
|
|
DATABASE_URL=mysql://mohe001:***@rm-0jlbgr2rv6dj3t6jngo.mysql.rds.aliyuncs.com:3306/zhuiguang_ai
|
|
NEXTAUTH_URL=http://localhost:8301
|
|
NEXTAUTH_SECRET=<secret>
|
|
GITHUB_TOKEN=<optional>
|
|
DEEPSEEK_API_KEY=<required-for-review>
|
|
```
|
|
|
|
## 核心业务流程
|
|
```
|
|
提示词模板(页面内嵌) → 用户复制发给AI助手 → AI返回JSON → 粘贴到页面导入
|
|
→ PendingTool / PendingSkill (待审核)
|
|
→ 管理员审核(编辑/发布/拒绝/批量操作)
|
|
→ Tool / Skill (已发布)
|
|
→ 前台展示(分类浏览/搜索/详情/评测/评论)
|
|
```
|
|
|
|
## 关键特性
|
|
- **提示词驱动**: 页面内嵌提示词模板(含排除列表),用户复制发给AI获取JSON后粘贴导入,不调用外部AI API
|
|
- **Logo自动抓取**: 10种策略按优先级执行,fetchLogoWithMethod返回成功方法名,支持20+常见路径和5个Favicon服务
|
|
- **检测+Logo联动**: 检测AI工具时同步抓取缺失Logo,记录每种抓取方法的成功次数统计
|
|
- **双轨内容**: 工具(Tool)面向商业AI产品,技能(Skill)面向GitHub开源项目
|
|
- **批量操作**: 批量导入、批量发布、批量拒绝、一键全部通过
|
|
- **GitHub Star同步**: 通过GitHub API定期更新技能Star数,维护90天历史
|
|
- **五维评测系统**: GitHub数据采集 + DeepSeek AI评测 + 雷达图展示,5维度(capability/devExp/costLicense/community/performance)评分
|
|
- **评测榜单**: 前台/reviews页面展示评测分榜TOP10 + Stars涨幅榜TOP10侧边栏
|
|
- **任务调度系统**: 6个定时任务(Task1-6)+AI日报,统一TaskConfig配置+TaskLog执行历史+后台可视化管理+手动触发
|
|
- **权限体系**: 53个精细化权限点,角色管理,细粒度权限控制
|
|
- **社区互动**: 评论/回复、收藏、浏览历史、收藏夹、通知系统、论坛板块
|
|
- **分页**: 所有列表页面支持分页(每页20条)
|
|
- **浅色主题**: 科技感浅色设计系统,毛玻璃效果+渐变文字+精致阴影
|
|
- **层级分类**: 一级分类+二级分类,左侧导航+标签切换
|
|
- **用户系统**: 邮箱注册/登录、GitHub OAuth、收藏功能、浏览历史
|
|
- **安全加固**: 后台API全部添加requireAdmin中间件验证,路由层+中间件双重防御
|
|
- **端口锁定**: 8301-8310区间,禁止使用其他端口
|
|
- **频率限制**: 登录尝试限制、IP请求限制
|