Cursor实践项目-04-轻量级会议管理工具(1)
项目说明
cursor项目实践-04
耗费时间:10小时左右
Cursor使用次数:项目复杂模块太多,必须要分模块,一阶段花费80左右。
这是一个旨在简化会议组织的极简会议系统。它专为追求高效、无繁琐流程的用户而设计,核心优势在于无需注册登录,即开即用。
轻量化架构,灵活易部署: 彻底抛弃传统数据库,创新性地利用 Seafile 作为文件存储后端。所有会议数据(包括内容、参会者、测试成绩等)都以文件形式保存,使系统架构极致轻便,部署和管理都非常简单。
无障碍参会体验: 通过唯一的会议链接和密码即可访问,无需任何账号。系统支持二维码快速签到,且参会者能在会前会后随时发表意见,打破了时间和空间的限制,确保沟通的持续性。
一站式功能集成: 系统不仅提供基础的会议管理,还内置了强大的在线测试功能。会议发起者可轻松导入试题,参会者在线答题,系统自动记录并统计成绩。这使得项目能够轻松扩展至培训、研讨会等需要评估学习效果的场景。
阶段成果展示(1)
-
一阶段实现功能
-
基础框架搭建
-
实现本地seafile的对接
-
实现会议的创建
-
网页查询会议列表、详情信息
-
-
二阶段(待进行)功能
- 实现会议的签到
- 实现会议的意见发表
- 实现会议的纪要生成
- 会议测试评分功能
前置准备
-
Cursor
- 版本:1.2.4
- cursor rules : Cursor Rules
- agent: claude-4-sonnet-thinking
-
整体流程
- 设置cursor规则->描述需求->cursor编码->git版本管理->调试输出
技术架构
- 技术栈
- 后端:Python 语言,搭配 Flask 或 FastAPI 等轻量级框架。
- 前端:可使用现代前端框架(如 React, Vue)或原生 JS。
- 数据存储:使用 Seafile 的文件管理功能作为后端存储,取代传统数据库。
- 数据流与存储方式
-
会议数据:所有会议数据以文件形式存储在 Seafile 的指定目录下。
-
文件结构:每个会议对应一个唯一的文件夹,文件夹内包含:
- meeting_data.json:存储会议主题、时间、密码哈希、签到人员(含成绩)、意见和附件列表等核心信息。
- quiz.json:存储会议相关的试题和答案。
- meeting_minutes.md:存储自动生成的会议纪要。
- attachments/:一个专门用于存储会议附件的子文件夹。
-
后端服务:后端充当 Seafile 和前端之间的中间层。所有请求(如创建、查询、提交)都由后端处理,后端通过 Seafile 的 API 或命令行工具对文件进行读写操作。
-
访问控制:所有对会议详情的访问都需要后端进行密码验证。会议列表等公开信息则无需密码。
-
问题记录
-
问题1:项目过于复杂,步骤太多,导致编码效率低下。模块之间无法衔接。先做界面,然后才调试seafile连接。
- 解决方式:分成多个模块,每个模块单独开发,然后进行集成。
-
问题2:seafile对接问题总结
- 主要问题:
- 文件上传格式错误 - 默认httpx客户端设置了Content-Type: application/json导致multipart上传失败
- 文件读取返回链接而非内容 - API返回下载链接需要二次请求获取实际文件内容
- 根目录权限限制 - 部分根目录操作返回401但不影响子目录功能
- 解决方式:
- 修复上传 - 移除httpx客户端默认headers,让multipart请求自动设置正确Content-Type
- 修复读取 - read_file方法改为先获取下载链接再下载实际文件内容
- 权限处理 - 添加错误捕获和回退机制,确保核心功能不受影响
- 主要问题:
-
seafile版本的问题,由于是其他人安装的seafile,版本号也未知,调试过程出了很多问题。
- 解决方式:通过cursor对话,让他去查询seafile的版本号,然后进行调试。
-
还是seafile,创建会议文件夹时,会多创建一个上级文件夹,怎么都搞不定。
- 解决方式:浪费了30多次次数后,增加了删除上一级多余目录的功能。
使用心得
-
复杂项目,一定要分模块开发,而不是让cursor一次性完成所有功能。
-
一个问题模型如果一直搞不定,可以尝试换一个模型或者新开启一个对话。
项目详细步骤
- 与LLM沟通需求,使用google gemini 2.5flash模型,得到详细的需求文档
我想做一个轻量化的会议管理系统,用户免登录。可以发起会议,通过链接的方式的将会议的时间和内容分享出去。同时会议支持签到(二维码),意见发表,会议纪要格式自动生成等功能。
请帮我设计一下架构。后端我想尽可能轻便,不用数据库(本地有安装一个seafile,是否可以使用?)。
->得到详细的需求文档,pj-requirement.md
2. 在cursor中,要求查询需求文档,进行开发
```
Review the requirements documentation and proceed with system design.
```
查看需求文档,进行系统设计
-
完整了环境搭建和脚手架的安装。
-
卡在seafile的对接上,一直在调试。来回拉扯中...
-
还在拉扯,重复创建目录,用了个递归的方法,cursor怎么都找不到原因,痛苦!!
-
一阶段完成
-
有些崩溃.... 明天再继续优化。 详见 《Cursor实践项目-04-轻量级会议管理工具(2)》