# user-wurun/class_fee architecture

> Architecture diagram of the GitHub repository user-wurun/class_fee, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/user-wurun/class_fee
- Repository: https://github.com/user-wurun/class_fee

## Overview

班费管理系统是一个面向班级的财务平台：用户注册或登录后提交收支申请，管理员审批，系统汇总已批准的交易并提供统计和导出。图覆盖 README 记载的主要功能；部分前端页面和管理 API 未提供源码摘录，因此相关连接按文档描述呈现，未展开未采样的内部调用。

Main entry points: [`lib/db.ts`](https://github.com/user-wurun/class_fee/blob/main/lib/db.ts) (数据库访问), [`utils/auth.ts`](https://github.com/user-wurun/class_fee/blob/main/utils/auth.ts) (认证工具), [`app/page.tsx`](https://github.com/user-wurun/class_fee/blob/main/app/page.tsx) (首页), [`app/admin/page.tsx`](https://github.com/user-wurun/class_fee/blob/main/app/admin/page.tsx) (管理后台)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["用户界面"]
  node_home["首页<br/>[page.tsx]"]
  node_login["登录页面<br/>[page.tsx]"]
  node_register["注册页面<br/>[page.tsx]"]
  node_new_application["新建申请<br/>[page.tsx]"]
  node_admin_page["管理后台<br/>[page.tsx]"]
  node_transaction_list["交易列表"]
end

subgraph group_identity["身份与权限"]
  node_auth_login["登录 API<br/>[route.ts]"]
  node_auth_register["注册 API<br/>[route.ts]"]
  node_auth_me["用户信息 API<br/>[route.ts]"]
  node_auth_utils["认证工具<br/>[auth.ts]"]
end

subgraph group_finance["财务业务"]
  node_applications["申请 API<br/>[route.ts]"]
  node_application_detail["申请详情 API<br/>[route.ts]"]
  node_upload["凭证上传 API<br/>[route.ts]"]
  node_db["数据库访问<br/>[db.ts]"]
end

subgraph group_admin["管理功能"]
  node_categories["分类管理 API<br/>[route.ts]"]
  node_registration_codes["注册码管理 API<br/>[route.ts]"]
  node_admin_users["用户管理 API<br/>[route.ts]"]
end

subgraph group_reporting["统计与导出"]
  node_statistics["财务统计 API<br/>[route.ts]"]
  node_export_xlsx["Excel 导出<br/>[route.ts]"]
  node_export_html["HTML 报表导出<br/>[route.ts]"]
end

node_users(("用户"))
node_mysql[("MySQL")]
node_cos[("腾讯云 COS")]

node_users -->|"登录"| node_login
node_users -->|"注册"| node_register
node_users -->|"查看财务"| node_home
node_users -->|"提交申请"| node_new_application
node_users -->|"管理操作"| node_admin_page
node_home -->|"展示交易"| node_transaction_list
node_login -->|"提交凭证"| node_auth_login
node_register -->|"提交注册"| node_auth_register
node_new_application -->|"提交申请"| node_applications
node_new_application -.->|"上传凭证"| node_upload
node_admin_page -->|"处理申请"| node_application_detail
node_admin_page -->|"管理分类"| node_categories
node_admin_page -->|"管理注册码"| node_registration_codes
node_admin_page -->|"管理用户"| node_admin_users
node_home -->|"请求统计"| node_statistics
node_home -->|"导出报表"| node_export_xlsx
node_home -->|"导出报表"| node_export_html
node_auth_login -->|"校验密码与签发令牌"| node_auth_utils
node_auth_register -->|"加密密码"| node_auth_utils
node_auth_me -->|"验证令牌"| node_auth_utils
node_applications -->|"验证令牌"| node_auth_utils
node_application_detail -->|"验证令牌"| node_auth_utils
node_upload -->|"验证令牌"| node_auth_utils
node_applications -->|"读写申请"| node_db
node_application_detail -->|"读写申请"| node_db
node_auth_login -->|"读取用户"| node_db
node_auth_register -->|"创建用户并使用注册码"| node_db
node_auth_me -->|"读取用户"| node_db
node_categories -->|"读写分类"| node_db
node_registration_codes -->|"读写注册码"| node_db
node_admin_users -->|"管理用户数据"| node_db
node_statistics -->|"汇总交易"| node_db
node_export_xlsx -->|"读取已批准交易"| node_db
node_export_html -->|"读取已批准交易"| node_db
node_db -->|"查询与事务"| node_mysql
node_upload -.->|"存储凭证图片"| node_cos

click node_home "https://github.com/user-wurun/class_fee/blob/main/app/page.tsx"
click node_login "https://github.com/user-wurun/class_fee/blob/main/app/login/page.tsx"
click node_register "https://github.com/user-wurun/class_fee/blob/main/app/register/page.tsx"
click node_new_application "https://github.com/user-wurun/class_fee/blob/main/app/applications/new/page.tsx"
click node_admin_page "https://github.com/user-wurun/class_fee/blob/main/app/admin/page.tsx"
click node_transaction_list "https://github.com/user-wurun/class_fee/blob/main/components/TransactionList.tsx"
click node_auth_login "https://github.com/user-wurun/class_fee/blob/main/app/api/auth/login/route.ts"
click node_auth_register "https://github.com/user-wurun/class_fee/blob/main/app/api/auth/register/route.ts"
click node_auth_me "https://github.com/user-wurun/class_fee/blob/main/app/api/auth/me/route.ts"
click node_auth_utils "https://github.com/user-wurun/class_fee/blob/main/utils/auth.ts"
click node_applications "https://github.com/user-wurun/class_fee/blob/main/app/api/applications/route.ts"
click node_application_detail "https://github.com/user-wurun/class_fee/blob/main/app/api/applications/%5Bid%5D/route.ts"
click node_upload "https://github.com/user-wurun/class_fee/blob/main/app/api/upload/route.ts"
click node_categories "https://github.com/user-wurun/class_fee/blob/main/app/api/admin/categories/route.ts"
click node_registration_codes "https://github.com/user-wurun/class_fee/blob/main/app/api/admin/registration-codes/route.ts"
click node_admin_users "https://github.com/user-wurun/class_fee/blob/main/app/api/admin/users/route.ts"
click node_statistics "https://github.com/user-wurun/class_fee/blob/main/app/api/applications/statistics/route.ts"
click node_export_xlsx "https://github.com/user-wurun/class_fee/blob/main/app/api/export/xlsx/route.ts"
click node_export_html "https://github.com/user-wurun/class_fee/blob/main/app/api/export/png/route.ts"
click node_db "https://github.com/user-wurun/class_fee/blob/main/lib/db.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_home,node_login,node_register,node_new_application,node_admin_page,node_transaction_list toneBlue
class node_auth_login,node_auth_register,node_auth_me,node_auth_utils,node_mysql,node_cos toneAmber
class node_applications,node_application_detail,node_upload,node_db toneMint
class node_categories,node_registration_codes,node_admin_users toneRose
class node_statistics,node_export_xlsx,node_export_html,node_users toneIndigo
```

## Components

### 用户界面

- [首页](https://github.com/user-wurun/class_fee/blob/main/app/page.tsx): `app/page.tsx`
- [登录页面](https://github.com/user-wurun/class_fee/blob/main/app/login/page.tsx): `app/login/page.tsx`
- [注册页面](https://github.com/user-wurun/class_fee/blob/main/app/register/page.tsx): `app/register/page.tsx`
- [新建申请](https://github.com/user-wurun/class_fee/blob/main/app/applications/new/page.tsx): `app/applications/new/page.tsx`
- [管理后台](https://github.com/user-wurun/class_fee/blob/main/app/admin/page.tsx): `app/admin/page.tsx`
- [交易列表](https://github.com/user-wurun/class_fee/blob/main/components/TransactionList.tsx): `components/TransactionList.tsx`

### 身份与权限

- [登录 API](https://github.com/user-wurun/class_fee/blob/main/app/api/auth/login/route.ts): `app/api/auth/login/route.ts`
- [注册 API](https://github.com/user-wurun/class_fee/blob/main/app/api/auth/register/route.ts): `app/api/auth/register/route.ts`
- [用户信息 API](https://github.com/user-wurun/class_fee/blob/main/app/api/auth/me/route.ts): `app/api/auth/me/route.ts`
- [认证工具](https://github.com/user-wurun/class_fee/blob/main/utils/auth.ts): `utils/auth.ts`

### 财务业务

- [申请 API](https://github.com/user-wurun/class_fee/blob/main/app/api/applications/route.ts): `app/api/applications/route.ts`
- [申请详情 API](https://github.com/user-wurun/class_fee/blob/main/app/api/applications/%5Bid%5D/route.ts): `app/api/applications/[id]/route.ts`
- [凭证上传 API](https://github.com/user-wurun/class_fee/blob/main/app/api/upload/route.ts): `app/api/upload/route.ts`
- [数据库访问](https://github.com/user-wurun/class_fee/blob/main/lib/db.ts): `lib/db.ts`

### 管理功能

- [分类管理 API](https://github.com/user-wurun/class_fee/blob/main/app/api/admin/categories/route.ts): `app/api/admin/categories/route.ts`
- [注册码管理 API](https://github.com/user-wurun/class_fee/blob/main/app/api/admin/registration-codes/route.ts): `app/api/admin/registration-codes/route.ts`
- [用户管理 API](https://github.com/user-wurun/class_fee/blob/main/app/api/admin/users/route.ts): `app/api/admin/users/route.ts`

### 统计与导出

- [财务统计 API](https://github.com/user-wurun/class_fee/blob/main/app/api/applications/statistics/route.ts): `app/api/applications/statistics/route.ts`
- [Excel 导出](https://github.com/user-wurun/class_fee/blob/main/app/api/export/xlsx/route.ts): `app/api/export/xlsx/route.ts`
- [HTML 报表导出](https://github.com/user-wurun/class_fee/blob/main/app/api/export/png/route.ts): `app/api/export/png/route.ts`

### Other components

- **用户**
- **MySQL**
- **腾讯云 COS**

## Connections

- 用户 → 登录页面: 登录
- 用户 → 注册页面: 注册
- 用户 → 首页: 查看财务
- 用户 → 新建申请: 提交申请
- 用户 → 管理后台: 管理操作
- 首页 → 交易列表: 展示交易
- 登录页面 → 登录 API: 提交凭证
- 注册页面 → 注册 API: 提交注册
- 新建申请 → 申请 API: 提交申请
- 新建申请 → 凭证上传 API: 上传凭证
- 管理后台 → 申请详情 API: 处理申请
- 管理后台 → 分类管理 API: 管理分类
- 管理后台 → 注册码管理 API: 管理注册码
- 管理后台 → 用户管理 API: 管理用户
- 首页 → 财务统计 API: 请求统计
- 首页 → Excel 导出: 导出报表
- 首页 → HTML 报表导出: 导出报表
- 登录 API → 认证工具: 校验密码与签发令牌
- 注册 API → 认证工具: 加密密码
- 用户信息 API → 认证工具: 验证令牌
- 申请 API → 认证工具: 验证令牌
- 申请详情 API → 认证工具: 验证令牌
- 凭证上传 API → 认证工具: 验证令牌
- 申请 API → 数据库访问: 读写申请
- 申请详情 API → 数据库访问: 读写申请
- 登录 API → 数据库访问: 读取用户
- 注册 API → 数据库访问: 创建用户并使用注册码
- 用户信息 API → 数据库访问: 读取用户
- 分类管理 API → 数据库访问: 读写分类
- 注册码管理 API → 数据库访问: 读写注册码
- 用户管理 API → 数据库访问: 管理用户数据
- 财务统计 API → 数据库访问: 汇总交易
- Excel 导出 → 数据库访问: 读取已批准交易
- HTML 报表导出 → 数据库访问: 读取已批准交易
- 数据库访问 → MySQL: 查询与事务
- 凭证上传 API → 腾讯云 COS: 存储凭证图片
