codebase-summarizer

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Codebase Summarizer

代码库摘要生成工具

Generate comprehensive architecture documentation from repository analysis.
通过仓库分析生成全面的架构文档。

Core Workflow

核心工作流

  1. Scan structure: Recursively analyze folder tree and file organization
  2. Identify patterns: Detect framework, architecture style, key directories
  3. Map entry points: Find main files, routes, APIs, CLI commands
  4. Trace data flow: Follow requests through layers (controllers → services → models)
  5. Document modules: Explain purpose and responsibilities of each directory
  6. Create navigation: Build "how to" guides for common tasks
  7. Generate diagrams: Add Mermaid diagrams for visual architecture
  1. 扫描结构:递归分析文件夹树和文件组织
  2. 识别模式:检测框架、架构风格、关键目录
  3. 定位入口点:查找主文件、路由、API、CLI命令
  4. 追踪数据流:跟踪请求在各层的流转(控制器→服务→模型)
  5. 文档化模块:说明每个目录的用途和职责
  6. 创建导航:构建常见任务的操作指南
  7. 生成图表:添加Mermaid图表用于可视化架构

Documentation Structure

文档结构

ARCHITECTURE.md Template

ARCHITECTURE.md模板

markdown
undefined
markdown
undefined

Architecture Overview

架构概述

System Summary

系统摘要

[Project Name] is a [type] application built with [stack]. It follows [architecture pattern] and handles [primary use cases].
Tech Stack:
  • Frontend: [framework + key libraries]
  • Backend: [framework + key libraries]
  • Database: [database + ORM]
  • Infrastructure: [hosting + CI/CD]
[项目名称]是一个基于[技术栈]构建的[类型]应用,采用[架构模式],主要处理[核心用例]。
技术栈:
  • 前端:[框架 + 核心库]
  • 后端:[框架 + 核心库]
  • 数据库:[数据库 + ORM]
  • 基础设施:[托管服务 + CI/CD]

High-Level Architecture

高层架构

mermaid
graph TB
    Client[Client/Browser] --> API[API Layer]
    API --> Services[Business Logic]
    Services --> DB[(Database)]
    Services --> Cache[(Redis Cache)]
    API --> Queue[Message Queue]
undefined
mermaid
graph TB
    Client[客户端/浏览器] --> API[API层]
    API --> Services[业务逻辑]
    Services --> DB[(数据库)]
    Services --> Cache[(Redis缓存)]
    API --> Queue[消息队列]
undefined

Project Structure

项目结构

src/
├── app/              # Application entry point and routing
├── components/       # Reusable UI components
├── lib/              # Utility functions and helpers
├── services/         # Business logic layer
├── models/           # Data models and schemas
└── types/            # TypeScript type definitions
src/
├── app/              # 应用入口与路由
├── components/       # 可复用UI组件
├── lib/              # 工具函数与辅助类
├── services/         # 业务逻辑层
├── models/           # 数据模型与 schema
└── types/            # TypeScript 类型定义

Key Components

核心组件

Entry Points

入口点

Main Application:
src/app/page.tsx
  • Application entry point
  • Initializes providers and routing
  • Handles global error boundaries
API Routes:
src/app/api/
  • RESTful API endpoints
  • Authentication middleware
  • Request validation
主应用:
src/app/page.tsx
  • 应用入口文件
  • 初始化提供者与路由
  • 处理全局错误边界
API路由:
src/app/api/
  • RESTful API端点
  • 认证中间件
  • 请求校验

Core Modules

核心模块

Authentication (
src/services/auth/
)
  • User login and registration
  • JWT token management
  • OAuth2 integration
  • Dependencies: bcrypt, jsonwebtoken
User Management (
src/services/users/
)
  • CRUD operations for users
  • Profile management
  • Role-based access control
  • Dependencies: Prisma, validation libraries
Data Layer (
src/models/
)
  • Database schemas
  • Prisma models
  • Query builders
  • Dependencies: Prisma Client
认证模块(
src/services/auth/
  • 用户登录与注册
  • JWT令牌管理
  • OAuth2集成
  • 依赖:bcrypt, jsonwebtoken
用户管理模块(
src/services/users/
  • 用户CRUD操作
  • 资料管理
  • 基于角色的访问控制
  • 依赖:Prisma、校验库
数据层(
src/models/
  • 数据库schema
  • Prisma模型
  • 查询构建器
  • 依赖:Prisma Client

Data Flow

数据流

User Registration Flow

用户注册流程

mermaid
sequenceDiagram
    Client->>API: POST /api/auth/register
    API->>Validation: Validate input
    Validation->>Services: UserService.create()
    Services->>Database: Insert user
    Database-->>Services: User created
    Services->>Email: Send welcome email
    Services-->>API: Return JWT
    API-->>Client: 201 Created
mermaid
sequenceDiagram
    Client->>API: POST /api/auth/register
    API->>Validation: 校验输入
    Validation->>Services: UserService.create()
    Services->>Database: 插入用户
    Database-->>Services: 用户创建完成
    Services->>Email: 发送欢迎邮件
    Services-->>API: 返回JWT
    API-->>Client: 201 Created

Request Lifecycle

请求生命周期

  1. Request arrives → API route handler (
    src/app/api/[endpoint]/route.ts
    )
  2. Middleware → Auth, validation, rate limiting
  3. Service layer → Business logic (
    src/services/
    )
  4. Data layer → Database queries (
    src/models/
    )
  5. Response → Format and return data
  1. 请求到达 → API路由处理器(
    src/app/api/[endpoint]/route.ts
  2. 中间件处理 → 认证、校验、限流
  3. 服务层 → 业务逻辑处理(
    src/services/
  4. 数据层 → 数据库查询(
    src/models/
  5. 响应返回 → 格式化并返回数据

Common Patterns

常见模式

Service Pattern

服务模式

typescript
// src/services/users/user.service.ts
export class UserService {
  async findById(id: string) {
    return prisma.user.findUnique({ where: { id } });
  }

  async create(data: CreateUserDto) {
    // Validation, business logic, database operations
  }
}
typescript
// src/services/users/user.service.ts
export class UserService {
  async findById(id: string) {
    return prisma.user.findUnique({ where: { id } });
  }

  async create(data: CreateUserDto) {
    // 校验、业务逻辑、数据库操作
  }
}

Repository Pattern

仓库模式

typescript
// src/repositories/user.repository.ts
export class UserRepository {
  async findAll() {
    /* DB queries only */
  }
  async findById(id: string) {
    /* DB queries only */
  }
}
typescript
// src/repositories/user.repository.ts
export class UserRepository {
  async findAll() {
    /* 仅包含数据库查询 */
  }
  async findById(id: string) {
    /* 仅包含数据库查询 */
  }
}

How To Guides

操作指南

Add a New API Endpoint

添加新API端点

  1. Create route file:
    src/app/api/[name]/route.ts
    typescript
    export async function GET(req: Request) {
      // Implementation
    }
  2. Add service logic:
    src/services/[name].service.ts
  3. Define types:
    src/types/[name].ts
  4. Add tests:
    src/app/api/[name]/route.test.ts
  5. Update API docs: Document in OpenAPI/Swagger
  1. 创建路由文件:
    src/app/api/[name]/route.ts
    typescript
    export async function GET(req: Request) {
      // 实现逻辑
    }
  2. 添加服务逻辑:
    src/services/[name].service.ts
  3. 定义类型:
    src/types/[name].ts
  4. 添加测试:
    src/app/api/[name]/route.test.ts
  5. 更新API文档: 在OpenAPI/Swagger中添加文档

Add a New Database Model

添加新数据库模型

  1. Update schema:
    prisma/schema.prisma
    prisma
    model NewModel {
      id String @id @default(cuid())
      // fields
    }
  2. Run migration:
    npx prisma migrate dev --name add-new-model
  3. Generate types:
    npx prisma generate
  4. Create service:
    src/services/new-model.service.ts
  5. Add CRUD routes:
    src/app/api/new-model/
  1. 更新schema:
    prisma/schema.prisma
    prisma
    model NewModel {
      id String @id @default(cuid())
      // 字段定义
    }
  2. 执行迁移:
    npx prisma migrate dev --name add-new-model
  3. 生成类型:
    npx prisma generate
  4. 创建服务:
    src/services/new-model.service.ts
  5. 添加CRUD路由:
    src/app/api/new-model/

Add a New React Component

添加新React组件

  1. Create component:
    src/components/NewComponent/NewComponent.tsx
  2. Add styles:
    NewComponent.module.css
    or inline Tailwind
  3. Write tests:
    NewComponent.test.tsx
  4. Add stories:
    NewComponent.stories.tsx
    (if using Storybook)
  5. Export: Update
    src/components/index.ts
  1. 创建组件:
    src/components/NewComponent/NewComponent.tsx
  2. 添加样式:
    NewComponent.module.css
    或内联Tailwind
  3. 编写测试:
    NewComponent.test.tsx
  4. 添加Story:
    NewComponent.stories.tsx
    (若使用Storybook)
  5. 导出组件: 更新
    src/components/index.ts

Modify Authentication

修改认证逻辑

  1. Service layer:
    src/services/auth/auth.service.ts
  2. Middleware:
    src/middleware/auth.middleware.ts
  3. Routes:
    src/app/api/auth/
  4. Update tests: Ensure auth flows still work
  1. 服务层:
    src/services/auth/auth.service.ts
  2. 中间件:
    src/middleware/auth.middleware.ts
  3. 路由:
    src/app/api/auth/
  4. 更新测试: 确保认证流程正常工作

Key Files Reference

关键文件参考

FilePurposeModify For
src/app/layout.tsx
Root layout, providersGlobal layout changes
src/lib/db.ts
Database connectionConnection config
src/lib/api.ts
API client setupRequest interceptors
src/middleware.ts
Next.js middlewareAuth, redirects
prisma/schema.prisma
Database schemaData model changes
.env.example
Environment varsAdding config values
文件路径用途修改场景
src/app/layout.tsx
根布局、提供者配置全局布局修改
src/lib/db.ts
数据库连接配置连接参数调整
src/lib/api.ts
API客户端设置请求拦截器配置
src/middleware.ts
Next.js中间件认证、重定向逻辑
prisma/schema.prisma
数据库schema数据模型修改
.env.example
环境变量示例添加新配置项

Dependencies

依赖说明

Critical Dependencies

核心依赖

  • next
    - React framework
  • prisma
    - ORM and database toolkit
  • react
    - UI library
  • typescript
    - Type safety
  • next
    - React框架
  • prisma
    - ORM与数据库工具包
  • react
    - UI库
  • typescript
    - 类型安全工具

Key Libraries

关键库

  • zod
    - Schema validation
  • bcrypt
    - Password hashing
  • jsonwebtoken
    - JWT handling
  • date-fns
    - Date utilities
  • zod
    - Schema校验
  • bcrypt
    - 密码哈希
  • jsonwebtoken
    - JWT处理
  • date-fns
    - 日期工具

Development Workflow

开发工作流

  1. Local setup: See DEVELOPMENT.md
  2. Making changes: Branch → Implement → Test → PR
  3. Running tests:
    pnpm test
  4. Database changes: Prisma migrate workflow
  5. Deployment: Vercel automatic deployment
  1. 本地环境搭建: 参考 DEVELOPMENT.md
  2. 代码修改流程: 创建分支→实现功能→测试→提交PR
  3. 运行测试:
    pnpm test
  4. 数据库变更: 遵循Prisma迁移流程
  5. 部署: Vercel自动部署

Troubleshooting

故障排查

Database connection errors
  • Check DATABASE_URL in .env
  • Ensure database is running
  • Run
    npx prisma generate
Type errors after schema changes
  • Run
    npx prisma generate
  • Restart TypeScript server
Build fails
  • Clear
    .next
    folder:
    rm -rf .next
  • Clear node_modules:
    rm -rf node_modules && pnpm install
数据库连接错误
  • 检查.env中的DATABASE_URL
  • 确保数据库服务正在运行
  • 执行
    npx prisma generate
Schema变更后类型错误
  • 执行
    npx prisma generate
  • 重启TypeScript服务
构建失败
  • 清除.next文件夹:
    rm -rf .next
  • 清除node_modules并重新安装:
    rm -rf node_modules && pnpm install

Additional Resources

额外资源

  • API Documentation - Endpoint reference
  • Development Guide - Setup and workflow
  • Contributing Guide - Code standards
  • Database Schema - Data model details
undefined
  • API文档 - 端点参考
  • 开发指南 - 环境搭建与工作流
  • 贡献指南 - 代码规范
  • 数据库Schema文档 - 数据模型细节
undefined

Analysis Techniques

分析技巧

Identify Framework

识别框架

Look for telltale files:
  • next.config.js
    → Next.js
  • vite.config.ts
    → Vite
  • nest-cli.json
    → NestJS
  • manage.py
    → Django
  • Cargo.toml
    → Rust
查找特征文件:
  • next.config.js
    → Next.js
  • vite.config.ts
    → Vite
  • nest-cli.json
    → NestJS
  • manage.py
    → Django
  • Cargo.toml
    → Rust

Map Entry Points

定位入口点

  • Frontend:
    index.html
    ,
    main.tsx
    ,
    app.tsx
    ,
    _app.tsx
  • Backend:
    main.ts
    ,
    server.ts
    ,
    app.py
    ,
    index.js
  • CLI:
    cli.ts
    ,
    __main__.py
    ,
    main.go
  • 前端:
    index.html
    ,
    main.tsx
    ,
    app.tsx
    ,
    _app.tsx
  • 后端:
    main.ts
    ,
    server.ts
    ,
    app.py
    ,
    index.js
  • CLI:
    cli.ts
    ,
    __main__.py
    ,
    main.go

Trace Request Flow

追踪请求流

Follow typical paths:
  1. Route/endpoint definition
  2. Middleware/guards
  3. Controller/handler
  4. Service/business logic
  5. Repository/model
  6. Database query
遵循典型路径:
  1. 路由/端点定义
  2. 中间件/守卫
  3. 控制器/处理器
  4. 服务/业务逻辑
  5. 仓库/模型
  6. 数据库查询

Module Categories

模块分类

  • Core: Essential business logic
  • Infrastructure: Database, cache, queue
  • Utilities: Helpers, formatters, validators
  • Features: User-facing functionality
  • Config: Environment, settings
  • 核心模块:核心业务逻辑
  • 基础设施模块:数据库、缓存、队列
  • 工具模块:辅助函数、格式化工具、校验器
  • 功能模块:用户可见功能
  • 配置模块:环境、设置

Mermaid Diagrams

Mermaid图表

Architecture Diagram

架构图

mermaid
graph LR
    Client --> NextJS
    NextJS --> API
    API --> Services
    Services --> Prisma
    Prisma --> PostgreSQL
mermaid
graph LR
    Client --> NextJS
    NextJS --> API
    API --> Services
    Services --> Prisma
    Prisma --> PostgreSQL

Data Flow

数据流

mermaid
sequenceDiagram
    participant Client
    participant API
    participant Service
    participant DB
    Client->>API: Request
    API->>Service: Process
    Service->>DB: Query
    DB-->>Service: Data
    Service-->>API: Result
    API-->>Client: Response
mermaid
sequenceDiagram
    participant Client
    participant API
    participant Service
    participant DB
    Client->>API: 请求
    API->>Service: 处理
    Service->>DB: 查询
    DB-->>Service: 数据
    Service-->>API: 结果
    API-->>Client: 响应

Module Relationships

模块关系

mermaid
graph TB
    API[API Layer] --> Auth[Auth Service]
    API --> Users[User Service]
    Auth --> DB[(Database)]
    Users --> DB
    Users --> Cache[(Cache)]
mermaid
graph TB
    API[API层] --> Auth[认证服务]
    API --> Users[用户服务]
    Auth --> DB[(数据库)]
    Users --> DB
    Users --> Cache[(缓存)]

Best Practices

最佳实践

  1. Start high-level: Overview before details
  2. Visual first: Use diagrams for complex flows
  3. Be specific: Reference actual file paths
  4. Show examples: Include code snippets
  5. Link related docs: Reference other documentation
  6. Keep updated: Update as architecture evolves
  7. Developer-focused: Write for onboarding and daily use
  1. 从高层入手:先概述再细节
  2. 优先可视化:用图表展示复杂流程
  3. 内容具体:引用实际文件路径
  4. 提供示例:包含代码片段
  5. 关联相关文档:引用其他文档
  6. 保持更新:随架构演进更新文档
  7. 面向开发者:为入职和日常使用编写

Output Checklist

输出检查清单

Every codebase summary should include:
  • System overview and tech stack
  • High-level architecture diagram
  • Project structure explanation
  • Entry points identification
  • Module/directory purposes
  • Data flow diagrams
  • Common patterns documented
  • "How to" guides for common tasks
  • Key files reference table
  • Dependencies explanation
  • Troubleshooting section
每个代码库摘要应包含:
  • 系统概述与技术栈
  • 高层架构图
  • 项目结构说明
  • 入口点识别
  • 模块/目录用途
  • 数据流图
  • 常见模式文档
  • 常见任务操作指南
  • 关键文件参考表
  • 依赖说明
  • 故障排查章节