Skip to content
Linshan-BaiPublic

About

流联科技 × 西南交通大学 联合实验室信息同步与管理平台 — 前端 React + 后端 Node.js/Express + SQLite

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

联合实验室管理平台

流联科技 × 西南交通大学 — 校企联合实验室信息同步与管理平台

📋 项目概述

本平台为流联科技与西南交通大学联合实验室的专属信息管理平台,提供双方人员登录查阅、文件管理、信息同步等功能。

核心功能

  • 🔐 用户认证:超级管理员统一管理用户注册,安全登录
  • 📊 仪表盘:项目概览、统计数据、最近动态一目了然
  • 📁 文档管理:分类浏览、全文搜索校企合作所有管理文件
  • 👥 用户管理:超级管理员/管理员可管理用户账号与权限
  • 🔒 权限控制:三级角色(超级管理员/管理员/成员),精细权限管理
  • 🎭 角色权限管理:自定义角色 + 8项细化权限配置(文档浏览/编辑/下载/上传/删除 + 用户管理/分类管理/系统设置)
  • 🏷️ 文档保密等级:五级保密体系(公开/一般/秘密/机密/绝密),按角色控制访问
  • 🖊️ 全局水印:基于 Canvas 的防篡改水印,显示当前登录用户身份
  • 📈 访问统计:文档浏览统计、用户活跃度追踪

🏗️ 技术架构

层级 技术
前端 React 18 + TypeScript + Vite + React Router + Zustand
后端 Node.js + Express + JWT
数据库 SQLite (node:sqlite)
样式 CSS Modules(蓝色科技风)
部署 Docker 支持

📁 项目结构

联合实验室管理平台/
├── client/                  # React 前端
│   ├── src/
│   │   ├── api/             # API 客户端
│   │   ├── components/      # 通用组件
│   │   │   └── Layout/      # 页面布局组件
│   │   ├── pages/           # 页面组件
│   │   │   ├── Login/       # 登录页
│   │   │   ├── Dashboard/   # 仪表盘
│   │   │   ├── Documents/   # 文档管理
│   │   │   ├── Users/       # 用户管理
│   │   │   └── Profile/     # 个人中心
│   │   └── store/           # 状态管理
│   ├── dist/                # 构建产物
│   └── index.html
├── server/                  # Node.js 后端
│   ├── routes/              # API 路由
│   │   ├── auth.js          # 认证(登录/注册/密码修改)
│   │   ├── users.js         # 用户管理(CRUD)
│   │   ├── documents.js     # 文档管理(列表/详情/搜索)
│   │   ├── categories.js    # 分类管理
│   │   ├── roles.js         # 角色权限管理(CRUD + 权限配置)
│   │   └── stats.js         # 统计信息
│   ├── middleware/
│   │   └── auth.js          # JWT 认证中间件
│   ├── db.js                # 数据库连接(含 roles/role_permissions 表)
│   ├── seed.js              # 数据初始化(含默认角色和权限)
│   └── index.js             # 服务入口
├── Dockerfile               # Docker 构建文件
└── README.md

🚀 快速开始

环境要求

  • Node.js >= 22(需要 node:sqlite 内置模块支持)
  • npm >= 9

安装与运行

# 1. 安装后端依赖
cd server
npm install

# 2. 初始化数据库(创建默认管理员账号)
node seed.js

# 3. 安装前端依赖
cd ../client
npm install

# 4. 构建前端
npm run build

# 5. 启动服务
cd ../server
npm start

服务默认运行在 http://localhost:3001

Docker 部署

docker build -t joint-lab-platform .
docker run -p 3001:3001 joint-lab-platform

👤 默认账号

角色 用户名 密码 权限
超级管理员 admin admin123 全部权限,可创建/管理用户

⚠️ 首次登录后请立即修改密码!

🔐 权限体系

三级默认角色

权限 super_admin admin member
登录 ✅ ✅ ✅
查看仪表盘 ✅ ✅ ✅
浏览文档 全部 全部 全部
编辑文档 全部 全部 内部级
下载文档 全部 全部 全部
上传文档 ✅ ✅ ✅
删除文档 ✅ ✅ ❌
管理用户 ✅ ✅ ❌
创建用户 ✅ ❌ ❌
删除用户 ✅ ❌ ❌
管理分类 ✅ ✅ ❌
系统设置 ✅ ❌ ❌
修改密码 ✅ ✅ ✅

角色权限管理(v1.1 新增)

  • 🎭 自定义角色:超级管理员可创建/编辑/删除自定义角色
  • 🔑 8项细化权限:
    • 浏览文档:全局 / 按保密等级(全部 / 绝密 / 机密 / 秘密 / 一般 / 公开 / 无)
    • 编辑文档:全局 / 按保密等级
    • 下载文档:全局 / 按保密等级
    • 上传文档:是 / 否
    • 删除文档:是 / 否
    • 管理用户:是 / 否
    • 管理分类:是 / 否
    • 系统设置:是 / 否

📦 API 接口

认证

  • POST /api/auth/login — 用户登录
  • POST /api/auth/register — 注册用户(仅 super_admin)
  • GET /api/auth/me — 获取当前用户信息
  • PUT /api/auth/password — 修改密码

文档

  • GET /api/documents — 文档列表(支持分类/搜索/分页)
  • GET /api/documents/:id — 文档详情
  • GET /api/documents/search/suggestions — 搜索建议

分类

  • GET /api/categories — 分类列表

用户

  • GET /api/users — 用户列表(admin+)
  • GET /api/users/:id — 用户详情
  • PUT /api/users/:id — 更新用户(super_admin)
  • DELETE /api/users/:id — 删除用户(super_admin)

统计

  • GET /api/stats — 平台统计数据

角色权限(v1.1 新增)

  • GET /api/roles — 角色列表(含权限详情和权限定义)
  • POST /api/roles — 创建角色(仅 super_admin)
  • PUT /api/roles/:id — 更新角色及权限配置(仅 super_admin)
  • DELETE /api/roles/:id — 删除角色(仅 super_admin,不可删除内置角色)
  • GET /api/roles/:id/permissions — 获取角色权限详情

设计配色

蓝色科技风主题:

  • 主色:#2563eb(蓝色)
  • 背景:#f0f4ff(浅蓝)
  • 侧边栏:#1e3a5f(深蓝)
  • 卡片:白色 + 阴影
  • 强调色:#0ea5e9(天蓝)

⚖️ 许可证

本项目为流联科技与西南交通大学联合实验室内部使用。


📝 变更记录

版本 日期 变更内容
v1.3 2026-05 保密等级体系扩展为五级(公开 → 一般 → 秘密 → 机密 → 绝密);文档关系图谱种子数据(8个核心文档 + 8个流程图附件的关联/引用/依赖关系)
v1.2 2026-05 新增全局水印功能(Canvas + MutationObserver 防篡改);文档内容适配 Web 阅读(清除 ASCII 装饰图、添加目录、规范化标题层级);清理 server/ 测试辅助脚本
v1.1 2026-05 角色权限管理系统(自定义角色 + 8项细化权限);文档保密等级体系;用户管理功能修复
v1.0 2026-05 初始版本:登录认证、仪表盘、文档管理、用户管理、三级角色权限

流联科技 × 西南交通大学 | 联合实验室管理平台 v1.3

About

流联科技 × 西南交通大学 联合实验室信息同步与管理平台 — 前端 React + 后端 Node.js/Express + SQLite

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages