# SSpkuAgent **Repository Path**: frechen026/sspku-agent ## Basic Information - **Project Name**: SSpkuAgent - **Description**: sspku互联网软件开发技术与实践课程仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-24 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 全栈项目(一键 Docker 部署) 管理员账号:`admin`,密码:`123456` 本仓库包含: - 后端:Spring Boot(Java 17) + MyBatis + MySQL - 前端:Vue 3(构建后由 Nginx 静态托管,并反代 `/api` 到后端) - 数据库:MySQL 8(初始化脚本见 `docker-mysql/main.sql`) ## 目录结构 - `backend/`:Spring Boot 后端 - `vue-frontend/`:Vue 前端 - `docker-mysql/`:MySQL 初始化脚本(`main.sql`) - `docker-compose.yml`:一键部署编排文件(根目录) - `deploy.sh`:一键构建并启动脚本(根目录) ## 一键部署(推荐) 前置条件:已安装 Docker Desktop (Windows/Mac) 或 Docker Engine (Linux),并确保可以使用 `docker compose` 或 `docker-compose`。 ### 1. 启动命令 **Linux / macOS (Bash):** ```bash # 标准启动 bash deploy.sh # 【国内网络推荐】使用镜像加速: sudo REGISTRY=docker.m.daocloud.io bash deploy.sh ``` **Windows (PowerShell):** ```powershell # 标准启动 .\deploy.ps1 # 【国内网络推荐】使用镜像加速: $env:REGISTRY="docker.m.daocloud.io"; .\deploy.ps1 ``` ### 2. 访问服务 启动后访问: - 前端:http://localhost/ - 后端:http://localhost:8080/(API 前缀 `/api`) - MySQL:`localhost:3306`(db=`demo_db`, user=`demo_user`) ## 重要说明:MySQL 初始化脚本只在首次生效 `docker-mysql/main.sql` 会通过 `docker-compose.yml` 挂载到容器的 `/docker-entrypoint-initdb.d/`。 MySQL 官方镜像的规则是:**仅当数据卷是全新的(没有历史数据)时,才会执行初始化脚本**。 如果你修改了 `docker-mysql/main.sql`,想让它重新初始化数据库,请执行: ```bash docker compose down -v # 或者 # docker-compose down -v ``` 然后再运行: ```bash bash deploy.sh ``` ## 端口与服务 - `frontend`:容器内 80,映射到宿主机 80 - `backend`:容器内 8080,映射到宿主机 8080 - `mysql`:容器内 3306,映射到宿主机 3306 ## Docker 构建文件 - 后端 Dockerfile:`backend/Dockerfile`(Maven + Java 17 多阶段构建) - 前端 Dockerfile:`vue-frontend/Dockerfile`(Node 构建 + Nginx 托管) - Nginx 配置:`vue-frontend/nginx.conf`(支持 Vue history 路由 + `/api` 反代) ## 系统截图 ### 登录注册 ![登录注册](assets/登陆注册.png) ### 系统主页 ![主页](assets/主页.png) ### 智能体对话 ![对话](assets/对话.png) ## 功能模块详解 本项目是一个集成了应用管理、团队协作、RBAC 权限控制和系统审计的全栈管理平台。 ### 1. 智能体应用中心 (Application Center) - **应用展示**:首页卡片式展示所有发布的 AI 智能体应用,支持按分类筛选。 - **应用详情**:点击应用卡片进入详情页,展示应用描述、作者、发布时间、评分和下载量。 - **大模型配置**:在应用详情页,管理员或有权限的用户可以配置该应用对应的 LLM 参数: - **Base URL**:大模型 API 的服务地址。 - **API Key**:调用大模型的凭证(支持敏感存储)。 - **Model Name**:使用的模型名称(如 `qwen-flash`)。 - **System Prompt**:系统预设提示词,用于定义智能体的人设和行为准则。 ### 2. 团队协作 (Team Collaboration) - **团队管理**:支持创建、编辑、删除团队。团队分为公开和私有两种可见性。 - **成员邀请**:支持生成邀请码邀请新成员加入团队,包括链接有效期设置。 - **申请审批**:管理员可审批用户的加入申请,支持通过或拒绝。 ### 3. 用户与权限 (RBAC) - **多维度管理**:提供用户管理、角色管理和权限(资源操作)管理的完整界面。 - **动态菜单**:根据用户角色的权限,前端动态渲染左侧菜单栏,实现千人千面的访问控制。 ### 4. 系统审计与日志 - **操作日志**:记录关键业务操作(如创建团队、修改配置),包含操作人、时间、IP 和状态。 - **登录日志**:记录所有用户的登录行为(成功/失败),便于安全审计。 - **系统配置**:全局系统参数的可视化配置,如系统名称、注册开关等。 ## 权限管理与页面可见性 本项目实现了基于 RBAC (Role-Based Access Control) 的权限控制体系,包含用户、角色、权限、菜单四层结构。 ### 1. 角色体系 (Roles) 系统预置了以下角色: | 角色名称 | 角色代码 | 职责描述 | 权限范围 | | :------------- | :------------ | :------------------- | :----------------------------------------------------------------- | | **超级管理员** | `super_admin` | 系统最高权限 | 拥有所有权限 | | **系统管理员** | `admin` | 平台级运维与管理 | 用户管理、角色管理、权限管理、系统配置、日志查看、团队管理(部分) | | **团队负责人** | `team_owner` | 团队的创建者与管理者 | 团队的增删改查、成员管理、邀请成员、审批加入请求 | | **团队管理员** | `team_admin` | 协助管理团队 | 团队信息更新、成员管理、邀请与审批(无删除团队权限) | | **普通用户** | `user` | 普通注册用户 | 仅拥有查看团队列表、创建团队的基本权限 | ### 2. 页面可见性规则 (Menu & Permissions) 左侧菜单栏根据当前用户拥有的权限动态显示: | 菜单模块 | 子菜单 | 路径 | 所需权限 | 典型对应角色 | | :------------- | :------- | :------------------- | :---------------------- | :--------------------- | | **应用中心** | - | `/home` | `team:list` | 所有用户 | | **用户与角色** | 用户管理 | `/users` | `user:list` | admin, super_admin | | | 角色管理 | `/roles` | `role:list` | admin, super_admin | | | 权限管理 | `/permissions` | `permission:list` | admin, super_admin | | **团队管理** | 团队列表 | `/teams` | `team:list` | 所有用户 | | | 邀请成员 | `/teams/invite` | `team:invite` | team_owner, team_admin | | | 审批申请 | `/teams/approve` | `team:approve_request` | team_owner, team_admin | | **系统管理** | 系统配置 | `/system/config` | `system:config:read` | admin, super_admin | | | 操作日志 | `/system/logs` | `system:log:read` | admin, super_admin | | | 登录日志 | `/system/login-logs` | `system:login_log:read` | admin, super_admin | ### 3. 测试账号 系统初始化时内置了以下测试账号(默认密码均为 `123456`,请根据 `main.sql` 中的 Hash 确认): | 用户名 | 角色 | 说明 | | :--------- | :---------------- | :----------------- | | `admin` | 系统管理员 | 可访问所有管理页面 | | `zhangsan` | 团队负责人 | 前端团队负责人 | | `lisi` | 团队负责人/管理员 | 后端团队负责人 | | `wangwu` | 团队负责人 | DevOps 团队负责人 |