# STsystem

科技成果转化管理系统。

这是一个前后端分离的内部业务系统，用于科技成果的录入、审核、统计分析、公告通知和基础数据维护，适用于科研院所、企事业单位等成果管理场景。

## 项目概览

- 前端：React 19 + Ant Design
- 后端：Node.js + Express
- 数据库：PostgreSQL 17
- 部署：Nginx 反向代理，前后端分离部署

## 核心能力

- 成果全流程管理：录入、编辑、审核、归档、导出
- 角色权限控制：普通用户、中级用户、高级用户、管理员、维护员、超级管理员
- 数据统计分析：按部门、成果类型、年份等维度可视化分析
- 系统公告与附件分发
- 审计日志、限流、移动端拦截、附件类型校验等安全措施
- AI 统计分析接口，基于脱敏后的聚合数据生成分析结论

## 目录结构

```text
STsystem/
├─ client/                  前端项目
├─ server/                  后端项目
├─ database/                数据库结构文件
├─ static/                  静态页面资源
├─ 配置包/                  Windows 环境安装包与依赖
├─ backup_tool.py           备份恢复工具
├─ nginx.conf               Nginx 配置示例
├─ PROJECT_DOCUMENTATION.md 项目综合文档
└─ 第一次升级.md             升级与上线说明
```

## 本地开发

### 1. 安装依赖

根目录仅提供快捷脚本，实际依赖分别安装在 `client/` 和 `server/`：

```bash
cd server
npm install

cd ../client
npm install
```

### 2. 配置后端环境变量

复制 `server/.env.example` 为 `server/.env`，按实际环境填写数据库、JWT、上传目录和 AI 配置。

## 常用命令

在项目根目录执行：

```bash
npm run server   # 启动后端
npm run client   # 启动前端
npm run build    # 构建前端
```

后端目录额外提供：

```bash
npm run init-db
npm run seed-500k
```

注意：生产环境上线时不要误执行初始化或造数脚本，尤其是 `init-db`、`setup`、`seed` 一类命令。

## 生产部署要点

- 前端构建产物位于 `client/build/`
- 后端入口文件为 `server/index.js`
- 生产环境通常通过 Nginx 托管前端静态资源，并反向代理 `/api/`
- 上传目录由 `UPLOAD_DIR` / `UPLOAD_FALLBACK_DIRS` 控制
- 建议保留服务器现有 `.env`，不要把本地开发环境配置直接覆盖到生产环境

## 文档

- 详细项目说明见 [PROJECT_DOCUMENTATION.md](./PROJECT_DOCUMENTATION.md)
- 升级与上线说明见 [第一次升级.md](./第一次升级.md)

## 说明

本仓库应保存源码、配置示例和文档，不应提交以下运行时内容：

- `server/.env`
- `node_modules`
- `server/uploads`
- `server/logs`
- 前端本地缓存和临时构建产物
