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版本管理->调试输出

技术架构

  1. 技术栈
    • 后端:Python 语言,搭配 Flask 或 FastAPI 等轻量级框架。
    • 前端:可使用现代前端框架(如 React, Vue)或原生 JS。
    • 数据存储:使用 Seafile 的文件管理功能作为后端存储,取代传统数据库。
  2. 数据流与存储方式
    • 会议数据:所有会议数据以文件形式存储在 Seafile 的指定目录下。

    • 文件结构:每个会议对应一个唯一的文件夹,文件夹内包含:

      • meeting_data.json:存储会议主题、时间、密码哈希、签到人员(含成绩)、意见和附件列表等核心信息。
      • quiz.json:存储会议相关的试题和答案。
      • meeting_minutes.md:存储自动生成的会议纪要。
      • attachments/:一个专门用于存储会议附件的子文件夹。
    • 后端服务:后端充当 Seafile 和前端之间的中间层。所有请求(如创建、查询、提交)都由后端处理,后端通过 Seafile 的 API 或命令行工具对文件进行读写操作。

    • 访问控制:所有对会议详情的访问都需要后端进行密码验证。会议列表等公开信息则无需密码。

问题记录

  1. 问题1:项目过于复杂,步骤太多,导致编码效率低下。模块之间无法衔接。先做界面,然后才调试seafile连接。

    • 解决方式:分成多个模块,每个模块单独开发,然后进行集成。
  2. 问题2:seafile对接问题总结

    • 主要问题:
      • 文件上传格式错误 - 默认httpx客户端设置了Content-Type: application/json导致multipart上传失败
      • 文件读取返回链接而非内容 - API返回下载链接需要二次请求获取实际文件内容
      • 根目录权限限制 - 部分根目录操作返回401但不影响子目录功能
    • 解决方式:
      • 修复上传 - 移除httpx客户端默认headers,让multipart请求自动设置正确Content-Type
      • 修复读取 - read_file方法改为先获取下载链接再下载实际文件内容
      • 权限处理 - 添加错误捕获和回退机制,确保核心功能不受影响
  3. seafile版本的问题,由于是其他人安装的seafile,版本号也未知,调试过程出了很多问题。

    • 解决方式:通过cursor对话,让他去查询seafile的版本号,然后进行调试。
  4. 还是seafile,创建会议文件夹时,会多创建一个上级文件夹,怎么都搞不定。

    • 解决方式:浪费了30多次次数后,增加了删除上一级多余目录的功能。

使用心得

  1. 复杂项目,一定要分模块开发,而不是让cursor一次性完成所有功能。

  2. 一个问题模型如果一直搞不定,可以尝试换一个模型或者新开启一个对话。

项目详细步骤

  1. 与LLM沟通需求,使用google gemini 2.5flash模型,得到详细的需求文档
我想做一个轻量化的会议管理系统,用户免登录。可以发起会议,通过链接的方式的将会议的时间和内容分享出去。同时会议支持签到(二维码),意见发表,会议纪要格式自动生成等功能。

请帮我设计一下架构。后端我想尽可能轻便,不用数据库(本地有安装一个seafile,是否可以使用?)。

->得到详细的需求文档,pj-requirement.md

需求图片 需求图片 2. 在cursor中,要求查询需求文档,进行开发 ``` Review the requirements documentation and proceed with system design. ``` 查看需求文档,进行系统设计 设计 设计
  1. 完整了环境搭建和脚手架的安装。

  2. 卡在seafile的对接上,一直在调试。来回拉扯中...

  3. 还在拉扯,重复创建目录,用了个递归的方法,cursor怎么都找不到原因,痛苦!!

  4. 一阶段完成

    一阶段完成
  5. 有些崩溃.... 明天再继续优化。 详见 《Cursor实践项目-04-轻量级会议管理工具(2)》