# enterprise-document-system
**Repository Path**: listen-carefully/enterprise-document-system
## Basic Information
- **Project Name**: enterprise-document-system
- **Description**: 基于数据安全的企业文档管理系统
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-04
- **Last Updated**: 2026-03-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 企业文档管理系统
**一个注重数据安全的现代化企业文档管理平台**
[](https://vuejs.org/)
[](https://www.typescriptlang.org/)
[](https://element-plus.org/)
[](https://fastapi.tiangolo.com/)
[](https://www.python.org/)
[](LICENSE)
[在线演示](#) · [功能特性](#功能特性) · [快速开始](#快速开始) · [技术架构](#技术架构)
---
## 📖 项目简介
企业文档管理系统是一个采用前后端分离架构的全栈项目,专注于企业文档的安全管理。系统实现了**AES-256文档加密存储**、**敏感词实时检测**、**RBAC权限控制**、**操作全程审计**等核心功能,适用于对文档安全有严格要求的企业场景。
### 🎯 核心价值
- 🔐 **数据安全**:AES-256加密存储、敏感词检测、操作审计
- 👥 **权限管控**:三级RBAC权限体系,精细化权限控制
- 📊 **可视化分析**:实时数据统计、多维度图表展示
- 🎨 **现代化UI**:响应式设计、流畅动画、优秀交互体验
- 🚀 **高性能**:前后端分离、异步处理、优化查询
---
## 🎨 系统预览
### 登录页面
现代化登录界面 - 双栏布局 + 动态粒子背景
**📸 截图说明**:
- **截取内容**:完整的登录页面(全屏截图)
- **展示重点**:左侧品牌展示区 + 右侧登录表单 + 动态粒子背景效果
- **截图技巧**:不要输入真实密码,保持表单空白或使用测试账号
- **浏览器设置**:隐藏书签栏,F11全屏或最大化窗口,确保界面整洁
---
### 数据可视化仪表板
数据可视化仪表板 - 实时统计 + ECharts图表
**📸 截图说明**:
- **截取内容**:仪表板主页面(包含顶部导航栏和左侧菜单)
- **展示重点**:4个统计卡片 + 登录趋势折线图 + 文档类型饼图 + 部门统计柱状图 + 最近活动
- **截图技巧**:确保有测试数据,图表显示正常,数据不要为0
- **最佳时机**:使用admin账号登录后,直接截取首页
---
### 文档管理
文档管理 - 列表展示 + 权限控制 + 敏感词检测
**📸 截图说明**:
- **截取内容**:文档管理页面(包含文档列表和操作按钮)
- **展示重点**:文档列表、搜索筛选栏、上传按钮、操作按钮(预览、下载、删除)
- **截图技巧**:列表中至少显示3-5条文档记录,包含不同文件类型(docx、pdf、txt)和敏感标记
- **数据准备**:提前上传几个测试文档,确保有正常文档和敏感文档
---
### 文档在线预览
文档在线预览 - 支持Word、PDF、文本格式
**📸 截图说明**:
- **截取内容**:文档预览对话框或预览页面
- **展示重点**:预览窗口 + 文档内容清晰显示
- **截图技巧**:选择一个内容丰富的Word或PDF文档进行预览,确保文字清晰可读
- **推荐文档**:使用包含标题、段落、格式的测试文档(避免空白或纯文本)
---
### 用户管理
用户管理 - CRUD操作 + 角色分配 + 状态控制
**📸 截图说明**:
- **截取内容**:用户管理页面
- **展示重点**:用户列表、搜索筛选、新增/编辑按钮、角色标签、状态标签
- **截图技巧**:显示不同角色的用户(超级管理员、部门管理员、普通成员),展示不同状态
- **权限要求**:必须使用admin账号登录才能访问此页面
---
### 日志审计
日志审计 - 操作日志 + 登录日志追踪
**📸 截图说明**:
- **截取内容**:操作日志或登录日志页面
- **展示重点**:日志列表、时间筛选、操作类型、用户信息、IP地址
- **截图技巧**:确保有多条日志记录,展示不同的操作类型(上传、下载、删除等)
- **数据准备**:进行一些操作(上传文档、修改用户等)生成日志记录
---
### 敏感词检测演示
敏感词检测 - 实时提示 + 上传拦截
**📸 截图说明**:
- **截取内容**:上传文档时触发敏感词检测的提示框
- **展示重点**:敏感词检测警告提示信息
- **截图技巧**:上传一个包含敏感词的文档(文件名或内容包含"机密"、"绝密"、"内部"等)
- **触发方式**:在文档上传页面,选择包含敏感词的文件,系统会自动弹出提示
---
## ✨ 功能特性
### 核心功能模块
#### 🔑 用户认证与授权
- JWT Token身份认证
- 图形验证码防暴力破解
- 登录失败自动锁定(5次)
- IP异常行为监控与封禁
- 白名单机制保护管理员
#### 📁 文档管理(核心)
- **安全存储**:AES-256-CBC加密算法
- **格式支持**:Word(.docx)、PDF(.pdf)、文本(.txt)
- **在线预览**:支持文档在线预览
- **敏感词检测**:前后端双重验证,文件名+内容检测
- **权限隔离**:超级管理员/部门管理员/普通成员三级权限
- **下载统计**:自动记录下载次数
#### 👥 用户与部门管理
- 用户CRUD操作
- 灵活的角色分配
- 树形部门结构
- 用户状态控制
- 头像上传
#### 📝 日志审计
- 操作日志记录
- 登录日志追踪
- 多维度查询
- 日志导出
#### 🛡️ 安全监控
- 敏感词管理
- IP监控与锁定
- 安全告警
- 访问统计
#### 📊 数据可视化
- 实时统计数据
- 登录趋势分析
- 文档类型分布
- 部门文档统计
---
## 🏗️ 技术架构
### 技术栈
#### 前端技术栈
- **框架**:Vue 3.5.26 + TypeScript 5.9
- **构建工具**:Vite 7.3.0
- **UI组件库**:Element Plus 2.13.1
- **状态管理**:Pinia 3.0.4
- **路由管理**:Vue Router 4.6.4
- **HTTP客户端**:Axios 1.13.2
- **图表库**:ECharts 6.0.0
- **文档解析**:Mammoth.js、PDF.js
#### 后端技术栈
- **Web框架**:FastAPI 0.115.6
- **ASGI服务器**:Uvicorn 0.34.0
- **ORM框架**:SQLAlchemy 2.0.36
- **数据库驱动**:PyMySQL 1.1.1
- **数据验证**:Pydantic 2.10.5
- **JWT认证**:Python-JOSE 3.3.0
- **密码加密**:Passlib + BCrypt
- **文件加密**:Cryptography 42.0.0
- **文档处理**:Python-docx、PyPDF2
### 系统架构图
```
┌─────────────────────────────────────────────────────────────┐
│ 浏览器 (Browser) │
└─────────────────────┬───────────────────────────────────────┘
│
┌─────────────────────▼───────────────────────────────────────┐
│ 前端层 (Vue 3 + TypeScript) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 仪表板 │ │ 文档管理 │ │ 用户管理 │ │ 日志审计 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ 状态管理(Pinia) + 路由(Vue Router) + HTTP(Axios) │
└─────────────────────┬───────────────────────────────────────┘
│ RESTful API (JSON)
┌─────────────────────▼───────────────────────────────────────┐
│ 后端层 (FastAPI + Python) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 认证服务 │ │ 文档服务 │ │ 用户服务 │ │ 日志服务 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ JWT认证 + AES加密 + 敏感词检测 + 权限控制 │
└─────────────────────┬───────────────────────────────────────┘
│ SQLAlchemy ORM
┌─────────────────────▼───────────────────────────────────────┐
│ 数据层 (MySQL 8.0+) │
│ 用户表 | 角色表 | 部门表 | 文档表 | 日志表 | 敏感词表 │
└─────────────────────────────────────────────────────────────┘
```
---
## 🔒 安全设计
### 1. 文件加密存储
采用 **AES-256-CBC** 加密算法:
- **密钥长度**:256位(32字节)
- **加密模式**:CBC(密码块链接模式)
- **填充方式**:PKCS7
- **存储格式**:IV(16字节)+ 加密数据
- **文件标识**:`.enc` 后缀
### 2. 敏感词检测
**双重检测策略**:
- 前端实时检测(docx、txt)
- 后端二次验证(所有格式)
- 文件名 + 内容双重检测
### 3. 权限控制(RBAC)
| 角色 | 权限范围 |
|------|----------|
| **超级管理员** | 全系统权限 |
| **部门管理员** | 本部门权限 |
| **部门成员** | 个人权限 |
### 4. 安全防护
- ✅ 密码BCrypt加密存储
- ✅ JWT Token认证(120分钟过期)
- ✅ 登录失败5次锁定
- ✅ IP异常监控与封禁
- ✅ 操作全程审计日志
- ✅ CORS跨域安全配置
---
## 📁 项目结构
```
Enterprise-Documents/
├── admin/ # 前端项目
│ ├── src/
│ │ ├── api/ # API接口
│ │ ├── components/ # 公共组件
│ │ ├── views/ # 页面组件
│ │ ├── router/ # 路由配置
│ │ ├── stores/ # 状态管理
│ │ └── utils/ # 工具函数
│ ├── package.json
│ └── README.md # 前端详细说明
│
├── server/ # 后端项目
│ ├── app/
│ │ ├── api/ # API路由
│ │ ├── core/ # 核心功能
│ │ ├── models/ # 数据库模型
│ │ └── schemas/ # 数据验证
│ ├── requirements.txt
│ ├── database_init.sql # 数据库初始化
│ └── README.md # 后端详细说明
│
├── docs/ # 文档和截图
│ └── images/ # 系统截图
│ ├── login.png
│ ├── dashboard.png
│ ├── document-list.png
│ ├── document-preview.png
│ ├── user-management.png
│ ├── log-audit.png
│ └── sensitive-word-detection.png
│
└── README.md # 项目总体说明(本文件)
```
---
## 🚀 快速开始
### 环境要求
- **Node.js**:20.19.0+
- **Python**:3.13+
- **MySQL**:8.0+
- **浏览器**:Chrome、Edge、Firefox、Safari
### 1. 克隆项目
```bash
git clone https://gitee.com/你的用户名/enterprise-document-system.git
cd enterprise-document-system
```
### 2. 数据库初始化
使用MySQL客户端执行初始化脚本:
```bash
mysql -u root -p < server/database_init.sql
```
这将创建:
- 数据库:`doc_system`
- 9张数据表
- 初始数据(3个角色、5个部门、6个测试用户)
### 3. 启动后端服务
```bash
# 进入后端目录
cd server
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 配置环境变量(修改.env文件)
# 配置数据库连接信息
# 启动服务
python run.py
```
后端服务:`http://localhost:8080`
API文档:`http://localhost:8080/docs`
### 4. 启动前端服务
```bash
# 进入前端目录
cd admin
# 安装依赖
npm install
# 启动开发服务器
npm run dev
```
前端服务:`http://localhost:5173`
### 5. 访问系统
浏览器访问:`http://localhost:5173`
**测试账号**:
| 角色 | 用户名 | 密码 | 说明 |
|------|--------|------|------|
| 超级管理员 | admin | 123456 | 全系统权限 |
| 部门管理员 | tech_manager | 123456 | 科技部管理员 |
| 部门成员 | tech_user1 | 123456 | 科技部成员 |
⚠️ **首次登录后请立即修改密码!**
---
## 📦 生产部署
### 前端构建
```bash
cd admin
npm run build
```
构建产物在 `admin/dist` 目录,可部署到Nginx。
### Nginx配置示例
```nginx
server {
listen 80;
server_name your-domain.com;
# 前端静态资源
location / {
root /path/to/admin/dist;
try_files $uri $uri/ /index.html;
}
# 后端API代理
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
```
### 后端部署
```bash
# 使用Gunicorn部署
pip install gunicorn
gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8080
```
---
## 📚 详细文档
- [前端开发文档](./admin/README.md) - 前端技术栈、项目结构、开发指南
- [后端开发文档](./server/README.md) - 后端技术栈、API接口、数据库设计
- [系统架构文档](./admin/docs/01-系统架构设计文档.md) - 系统架构设计
- [API接口文档](./admin/docs/08-API接口文档.md) - 完整的API接口说明
- [数据库设计文档](./admin/docs/07-数据库设计文档.md) - 数据库表结构设计
- [部署说明文档](./admin/docs/09-部署说明文档.md) - 详细的部署指南
---
## 🔧 开发指南
### 代码规范
```bash
# 前端代码检查
cd admin
npm run lint
# 前端代码格式化
npm run format
# 类型检查
npm run type-check
```
### API接口规范
统一响应格式:
```json
{
"code": 200,
"message": "success",
"data": {}
}
```
### 提交规范
```bash
feat: 新功能
fix: Bug修复
docs: 文档更新
style: 代码格式调整
refactor: 代码重构
perf: 性能优化
test: 测试相关
chore: 构建/工具链相关
```
---
## 📊 性能优化
### 前端优化
- ✅ 路由懒加载
- ✅ 组件按需引入
- ✅ 图片懒加载
- ✅ Gzip压缩
- ✅ 浏览器缓存
### 后端优化
- ✅ 数据库连接池
- ✅ SQL查询优化
- ✅ 异步文件处理
- ✅ 响应数据压缩
- ✅ 接口限流保护
---
## 🐛 常见问题
### 前端启动失败
```bash
# 清除缓存重新安装
npm cache clean --force
rm -rf node_modules package-lock.json
npm install
```
### 后端数据库连接失败
- 检查MySQL服务是否启动
- 确认`.env`文件配置正确
- 检查数据库用户权限
### 文件上传失败
- 检查`uploads`目录权限
- 确认文件大小未超限(50MB)
- 检查文件格式是否支持
---
## 📝 更新日志
### v1.0.0 (2026-01-23)
**新增功能**:
- ✨ 完整的用户认证与授权系统
- ✨ 文档加密存储与在线预览
- ✨ 敏感词实时检测功能
- ✨ 操作日志与登录日志审计
- ✨ IP监控与异常行为检测
- ✨ 数据可视化仪表板
**优化改进**:
- 🎨 现代化UI设计
- ⚡ 前端性能优化
- 🔒 增强安全防护
- 📱 响应式布局
---
## 🤝 贡献指南
欢迎提交Issue和Pull Request!
### 提交规范
```
():
```
---
## 📄 开源协议
本项目采用 [MIT](LICENSE) 协议开源。
---
## 📮 联系方式
- **作者**:[Your Name]
- **邮箱**:your.email@example.com
- **GitHub**:[@yourusername](https://github.com/yourusername)
- **Gitee**:[@yourusername](https://gitee.com/yourusername)
---
## 🙏 致谢
感谢以下开源项目:
- [Vue.js](https://vuejs.org/) - 渐进式JavaScript框架
- [Element Plus](https://element-plus.org/) - Vue 3组件库
- [FastAPI](https://fastapi.tiangolo.com/) - 现代Python Web框架
- [ECharts](https://echarts.apache.org/) - 数据可视化图表库
- [SQLAlchemy](https://www.sqlalchemy.org/) - Python SQL工具包
---
**如果这个项目对你有帮助,请给一个⭐️Star支持一下!**
Made with ❤️ by [宁采臣的剑]