--- title: PPTist Huggingface emoji: 📊 colorFrom: blue colorTo: purple sdk: docker pinned: false license: agpl-3.0 app_port: 7860 tags: - presentation - ppt - powerpoint - slides - editor --- # PPTist Huggingface Space 一个基于 PPTist 的在线演示文稿编辑器,部署在 Huggingface Space 上,支持多用户登录和 GitHub 数据存储。 ## 🎯 项目特点 - **多用户支持**: 内置4个测试账号(PS01-PS04) - **GitHub存储**: 使用GitHub仓库作为数据存储后端 - **公网分享**: 每个PPT页面都有独立的公网URL - **完整功能**: 保留PPTist的所有编辑和展示功能 - **Docker部署**: 一键部署到Huggingface Space ## 🔑 测试账号 | 用户名 | 密码 | 角色 | |--------|------|------| | PS01 | admin_cybercity2025 | 管理员 | | PS02 | cybercity2025 | 用户 | | PS03 | cybercity2025 | 用户 | | PS04 | cybercity2025 | 用户 | ## 🚀 部署说明 ### 环境变量配置 在 Huggingface Space 的 Settings 中设置以下环境变量: ```bash GITHUB_TOKEN=你的GitHub访问令牌 GITHUB_REPOS=https://github.com/CaPaCaptain/PPTist_huggingface_db JWT_SECRET=pptist-secret-key-2025-huggingface NODE_ENV=production ``` ### GitHub 仓库设置 1. 创建一个 GitHub 仓库用于存储 PPT 数据 2. 生成 GitHub Personal Access Token,需要 `repo` 权限 3. 在仓库中创建 `users/` 目录结构 ### 数据存储结构 ``` 仓库根目录/ ├── users/ │ ├── PS01/ │ │ ├── ppt1.json │ │ └── ppt2.json │ ├── PS02/ │ │ └── presentation.json │ └── ... ``` ## 📡 API 接口 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `GET /api/auth/verify` - 验证token - `GET /api/auth/user` - 获取用户信息 ### PPT管理接口 - `GET /api/ppt/list` - 获取PPT列表 - `GET /api/ppt/:pptId` - 获取PPT数据 - `POST /api/ppt/save` - 保存PPT - `POST /api/ppt/create` - 创建新PPT - `DELETE /api/ppt/:pptId` - 删除PPT - `POST /api/ppt/:pptId/copy` - 复制PPT ### 公共分享接口 - `GET /api/public/view/:userId/:pptId/:slideIndex` - 公开访问单页 - `GET /api/public/ppt/:userId/:pptId` - 公开访问完整PPT - `POST /api/public/generate-share-link` - 生成分享链接 ## 🔧 本地开发 1. 克隆项目: ```bash git clone cd PPtist-Huggingface ``` 2. 安装依赖: ```bash # 后端 cd backend npm install # 前端 cd ../frontend npm install ``` 3. 配置环境变量: ```bash cp backend/.env.example backend/.env # 编辑 .env 文件,填入你的配置 ``` 4. 启动开发服务器: ```bash # 启动后端 (端口 7860) cd backend npm run dev # 启动前端 (端口 5173) cd frontend npm run dev ``` ## 🏗️ 系统架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 前端 Vue3 │ │ 后端 Express │ │ GitHub 仓库 │ │ PPTist UI │────│ JWT认证 │────│ JSON数据存储 │ │ Vite构建 │ │ RESTful API │ │ 版本控制 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` ## 🌐 公网分享功能 每个PPT页面都可以生成公网访问链接: - **单页链接**: `https://your-space.hf.space/api/public/view/PS01/ppt-id/0` - **完整PPT**: `https://your-space.hf.space/api/public/ppt/PS01/ppt-id` - **前端查看**: `https://your-space.hf.space/public/PS01/ppt-id/0` ## 📝 许可证 本项目基于 AGPL-3.0 许可证开源。