Cursor實踐專案-04-輕量級會議管理工具(1)

專案說明

cursor專案實踐-04

耗費時間:10小時左右

Cursor使用次數:專案複雜模組太多,必須要分模組,一階段花費80左右。

這是一個旨在簡化會議組織的極簡會議系統。它專為追求高效、無繁瑣流程的用戶而設計,核心優勢在於無需註冊登入,即開即用。

輕量化架構,靈活易部署: 徹底拋棄傳統數據庫,創新性地利用 Seafile 作為文件儲存後端。所有會議數據(包括內容、與會者、測試成績等)都以文件形式保存,使系統架構極致輕便,部署和管理都非常簡單。

無障礙與會體驗: 通過唯一的會議連結和密碼即可訪問,無需任何帳號。系統支援QR碼快速簽到,且與會者能在會前會後隨時發表意見,打破了時間和空間的限制,確保溝通的持續性。

一站式功能整合: 系統不僅提供基礎的會議管理,還內建了強大的線上測試功能。會議發起者可輕鬆導入試題,與會者線上答題,系統自動記錄並統計成績。這使得專案能夠輕鬆擴展至培訓、研討會等需要評估學習效果的場景。

階段成果展示(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模型,得到詳細的需求文檔
我想做一個輕量化的會議管理系統,用戶免登入。可以發起會議,通過連結的方式的將會議的時間和內容分享出去。同時會議支援簽到(QR碼),意見發表,會議紀要格式自動生成等功能。

請幫我設計一下架構。後端我想盡可能輕便,不用數據庫(本地有安裝一個seafile,是否可以使用?)。

->得到詳細的需求文檔,pj-requirement.md

需求圖片 需求圖片
  1. 在cursor中,要求查詢需求文檔,進行開發
Review the requirements documentation and proceed with system design.

查看需求文檔,進行系統設計

設計 設計
  1. 完整了環境搭建和腳手架的安裝。

  2. 卡在seafile的對接上,一直在調試。來回拉扯中...

  3. 還在拉扯,重複創建目錄,用了個遞歸的方法,cursor怎麼都找不到原因,痛苦!!

  4. 一階段完成

一階段完成
  1. 有些崩潰.... 明天再繼續優化。 詳見 《Cursor實踐專案-04-輕量級會議管理工具(2)》