# 私募股权投资管理系统

一个功能完整的私募股权投资公司投资项目管理系统，基于 Node.js + Express + SQLite + React + Ant Design 构建。

## 功能特性

### 📊 核心功能
- **项目管理** - 完整的投资项目全生命周期管理
  - 项目立项、跟踪、里程碑管理
  - 任务分配与进度追踪
  - 投资者关联管理
  - 文档管理
  - 项目动态更新

- **投资者管理** - 投资者信息全维度管理
  - 个人/机构投资者信息维护
  - 投资记录追踪
  - 风险等级评估
  - 联系方式管理

- **用户管理** - 完善的权限控制系统
  - 多角色支持（管理员、投资经理、分析师、普通用户）
  - 用户账户管理
  - 权限控制

- **行业舆情** - 行业新闻与资讯管理
  - 新闻资讯采集与展示
  - 按行业分类筛选
  - 新闻源管理

- **通知中心** - 消息提醒与通知
  - 系统通知
  - 消息已读/未读状态
  - 批量操作

- **操作日志** - 完整的审计追踪
  - 用户操作记录
  - 操作时间、IP地址
  - 按模块/操作类型筛选

### 🛠 技术特性
- **后端** - Node.js + Express + SQLite
- **前端** - React 18 + Ant Design 5 + React Router 6
- **认证** - JWT Token 认证
- **权限** - 基于角色的访问控制（RBAC）
- **数据持久化** - SQLite 数据库
- **响应式设计** - 支持桌面端访问

## 快速开始

### 环境要求
- Node.js 16+
- npm 或 yarn

### 安装与运行

1. **安装依赖**
```bash
npm run install-all
```

2. **开发模式运行（前后端同时启动）**
```bash
npm run dev
```

3. **单独启动后端**
```bash
npm run server
```

4. **单独启动前端**
```bash
npm run client
```

5. **生产环境构建**
```bash
npm run build
npm start
```

## 默认账户

系统启动后会自动创建默认管理员账户：

- **用户名**: `admin`
- **密码**: `admin123`

⚠️ **重要**: 首次登录后请立即修改默认密码！

## 项目结构

```
.
├── server/                 # 后端代码
│   ├── config/            # 配置文件
│   │   └── database.js    # 数据库配置
│   ├── middleware/        # 中间件
│   │   ├── auth.js        # 认证中间件
│   │   └── logger.js      # 日志中间件
│   ├── routes/            # 路由
│   │   ├── auth.js        # 认证路由
│   │   ├── users.js       # 用户管理路由
│   │   ├── projects.js    # 项目管理路由
│   │   ├── investors.js   # 投资者管理路由
│   │   ├── news.js        # 新闻舆情路由
│   │   ├── notifications.js # 通知路由
│   │   └── activity.js    # 操作日志路由
│   └── index.js           # 服务器入口
├── client/                 # 前端代码
│   ├── public/            # 静态资源
│   ├── src/
│   │   ├── components/    # 组件
│   │   ├── contexts/      # React Context
│   │   ├── pages/         # 页面组件
│   │   ├── services/      # API 服务
│   │   ├── App.js         # 应用入口
│   │   └── index.js       # React 入口
│   └── package.json
├── data/                   # 数据库文件目录（自动创建）
├── package.json
└── README.md
```

## 角色权限说明

| 角色 | 权限 |
|------|------|
| 超级管理员 (admin) | 所有功能，包括用户管理、操作日志查看 |
| 投资经理 (investment_manager) | 项目管理、投资者管理、新闻管理 |
| 分析师 (analyst) | 项目查看、新闻查看 |
| 普通用户 (user) | 项目查看 |

## 数据库表结构

- **users** - 用户表
- **roles** - 角色表
- **projects** - 项目表
- **investors** - 投资者表
- **project_investors** - 项目-投资者关联表
- **project_tasks** - 项目任务表
- **project_milestones** - 项目里程碑表
- **project_updates** - 项目动态表
- **project_documents** - 项目文档表
- **industry_news** - 行业新闻表
- **notifications** - 通知表
- **activity_logs** - 操作日志表

## 开发说明

### 后端 API 端点

| 模块 | 方法 | 端点 | 说明 |
|------|------|------|------|
| 认证 | POST | /api/auth/login | 用户登录 |
| 认证 | POST | /api/auth/register | 用户注册 |
| 认证 | GET | /api/auth/me | 获取当前用户信息 |
| 用户 | GET/POST/PUT/DELETE | /api/users | 用户CRUD |
| 项目 | GET/POST/PUT/DELETE | /api/projects | 项目CRUD |
| 投资者 | GET/POST/PUT/DELETE | /api/investors | 投资者CRUD |
| 新闻 | GET/POST/PUT/DELETE | /api/news | 新闻CRUD |
| 通知 | GET/PUT/DELETE | /api/notifications | 通知管理 |
| 日志 | GET | /api/activity | 操作日志 |

### 前端路由

- `/` - 仪表板
- `/projects` - 项目列表
- `/projects/:id` - 项目详情
- `/investors` - 投资者列表
- `/investors/:id` - 投资者详情
- `/news` - 行业舆情
- `/notifications` - 通知中心
- `/users` - 用户管理（仅管理员）
- `/activity` - 操作日志（仅管理员）

## 许可证

MIT License

## 免责声明

本系统仅供学习和参考使用，请根据实际业务需求进行安全加固和功能扩展。
