关于 Sessionplan
Sessionplan 是面向工作坊、培训、会议和活动组织者的浏览器日程规划工具,使用交互式时间线编排环节,并支持现场跟踪、离线使用和浏览器本地保存。
主要功能
- 01拖放式日程时间线
- 02自动计算时间
- 03现场模式跟踪进度
- 04可复用环节与模板
- 05并行分组与分会场
- 06通过链接分享并导出 PDF 或 JSON
适用场景
- 01规划工作坊日程
- 02现场跟踪环节时间
- 03安排并行分会活动
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://sessionplan.de/mcp/claude mcp add --transport http de-sessionplan-sessionplan https://sessionplan.de/mcp/{"mcpServers":{"de-sessionplan-sessionplan":{"type":"http","url":"https://sessionplan.de/mcp/"}}}在 Cursor 中打开{"servers":{"de-sessionplan-sessionplan":{"type":"http","url":"https://sessionplan.de/mcp/"}}}在 VS Code 中打开{"mcpServers":{"de-sessionplan-sessionplan":{"type":"http","url":"https://sessionplan.de/mcp/"}}}{"mcpServers":{"de-sessionplan-sessionplan":{"serverUrl":"https://sessionplan.de/mcp/"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Sessionplan
Sessionplan 是一款免费的浏览器端渐进式 Web 应用,可通过交互式时间线直观地规划工作坊、培训、会议和活动。
功能
- 可视化时间线 — 拖放区块以构建议程
- 自动计算时间 — 开始时间和时长会即时更新
- 实时模式 — 在活动期间实时跟进计划
- 区块类型和模板 — 自定义类别、默认库、可重复使用的模板
- 分组和分组讨论 — 并行场次、可配置分区、每个分区可指定引导者
- 分享和导出 — 快照链接、JSON 导出/导入、可直接打印的 PDF
- 离线优先 — 首次加载后可完全离线使用(PWA)
- 无需注册 — 默认情况下,所有数据都保留在浏览器中
技术栈
- Vite · TypeScript · React 18 · Tailwind CSS · shadcn/ui
- react-router-dom · react-i18next · @dnd-kit · Vitest
开始使用
git clone <repository-url>
cd sessionplan
npm install
npm run dev
在浏览器中打开 http://localhost:5173(或 Vite 分配的端口)。
自托管
Sessionplan 是一款静态 Web 应用。安装依赖、构建应用,然后通过任意静态 Web 服务提供生成的文件。计划会保留在浏览器中,也可以通过 URL 链接分享或导出为 JSON。
Dynamic-Link 会话 API(可选)
公开发行版包含一个 PHP API:data/sessions.php,以及它所需的
_shared 模块。该 API 严格不接触服务器端明文 — 每个 Dynamic Link
都会先在浏览器中加密,然后再上传;服务器仅存储加密信封、标题、技术元数据和写入权限的哈希,绝不会存储加密密钥。此版本不提供恢复密钥托管,也未集成服务器端分析或事件日志记录。
想要使用持久化 Dynamic Link 的自托管用户需要一个能够提供 data/ 目录的 PHP 运行时:
- 部署
data/目录,以便 PHP 能够执行data/sessions.php(端点会加载data/_shared/下的共享模块)。 - 在 PHP 进程中将
SP_SESSIONS_DIR设置为 webroot 之外 的路径(例如/var/lib/sessionplan/sessions)。该目录必须可由 PHP 进程写入;API 会在其中为每个会话保存一个 JSON 文件。 - 如果规划器通过暂存主机名或其他主机名提供服务,可选择将
SP_ALLOWED_ORIGIN设置为一个额外的来源(精确匹配)。 - 阻止直接通过 Web 访问
data/_shared/(例如通过 Apache/Nginx 配置)——共享模块是data/sessions.php所需的依赖,但不应作为独立 URL 提供服务。
其他可选环境变量(两者默认值均安全,可在直接面向互联网部署时留空):
SP_PUBLIC_BASE_URL— 覆盖用于重建跟踪动态链接 URL 的基础 URL,以供分析使用。默认为https://sessionplan.de。SP_TRUSTED_CLIENT_IP_HEADER— 设置为安全的标头名称时(例如CF-Connecting-IP、X-Real-IP),速率限制和每 IP 容量计数器会使用该标头的值,而非REMOTE_ADDR。仅当 API 前方有受信任的前端代理时才启用。
参考 Apache 配置见 public/.htaccess。如果没有 PHP 运行时,规划器仍可在本地正常使用,并可通过 URL 片段或 JSON 导出分享计划。
使用 API 进行本地开发(npm run dev:full)
若要在本地同时开发 planner 和 sessions API:
- 运行
npm run dev:full——同时启动 Vite 开发服务器(端口 8080)和用于 API 的 PHP 内置服务器(端口 8081)。 - 将前端指向 API:
VITE_SESSIONS_API=http://localhost:8081/data/sessions.php(参见.env.example;在同源部署中,planner 会回退到同源data/sessions.php路径,但 Vite 开发服务器无法提供此路径)。 - CORS:
dev:api会设置SP_ENV=development,从而额外允许来自localhost/127.0.0.1的来源(任意端口)。若要检查非 localhost 的预发布环境,请改为设置SP_ALLOWED_ORIGIN。 - 存储:sessions 默认存放在仓库根目录的
sessions_data/(已加入 git 忽略)。除本地实验之外,请将SP_SESSIONS_DIR指向任何已提供文档根目录之外的目录。
如果你更喜欢在不同终端中分别运行两个服务器,请使用 npm run dev 和 npm run dev:api(需要 PHP ≥ 7.4)。
许可证
Sessionplan 采用 GNU Affero General Public License v3.0 (AGPL-3.0) 许可。
AGPL 确保以网络服务形式分发的修改也必须开源,从而保护项目免受商业分叉,同时允许免费自托管。
完整文本请参阅 LICENSE。
贡献
欢迎提交 Bug 报告和拉取请求!详情请参阅 CONTRIBUTING.md。
安全
有关漏洞报告方式,请参阅 SECURITY.md。
公开分发
此仓库包含前端应用和中性的示例内容。
其中不包含分析集成、特定运营方的联系方式、法律页面或服务器实现。public/data/ 中的静态示例内容独立于生产内容。
.public-export.json 列出此导出中生成的文件,并附带基于内容生成的 publicRevision 标记和 generated 日期。它用于标识此分发版本,而不会暴露私有提交引用或逐文件哈希。
working-tree-preview 来源仅供审查;已发布的导出应来自已提交的发布版本。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。