Skip to main content
  1. Posts/

构想一个智能todo项目进度管理软件

·498 words·3 mins·
Eric Linus
Author
Eric Linus
北京邮电大学软件工程专业本科生,主要语言C++,对系统编程,数据库和AI系统交叉感兴趣。熟悉C++/Python/C#/Java/Rust。Github:@n00bme0w
Table of Contents

故事大概就是我突然想做一个todo类软件,在我和deepseek切磋了创新点,功能点等之后,deepseek给出了如下不明觉厉的项目规划说明书

智能任务协同管理平台需求规格说明书
#

文档编号:TDMS-RS-2025-v1.2
发布日期:2025年7月15日


1. 系统概述
#

开发基于Qt/C++与SQLite/PostgreSQL的跨平台任务管理系统,集成AI增强能力,支持个人至团队级任务管理,实现任务规划→执行监控→知识沉淀→智能进化的全生命周期管理。


2. 功能需求
#

2.1 核心任务管理模块
#

功能编号需求描述技术实现要点
TD-0100多视图任务展示QTabWidget + QStackedWidget
- 看板视图(Kanban)QGraphicsView拖拽泳道
- 时间线视图(Gantt)QCustomPlot动态图表
- 列表视图/树状视图QTreeView + QStandardItemModel
TD-0200任务元素管理数据库关系设计
- 任务属性:标题/描述/优先级/标签SQLite BLOB存储富文本
- 子任务分解(无限层级)邻接表结构存储
- 附件管理(文档/图片/链接)QFileSystemWatcher监控目录
TD-0300智能提醒系统QCalendarWidget集成
- 时间提醒(绝对/相对时间)基于cron表达式解析器
- 位置提醒(GPS触发)QtPositioning模块
- 设备状态提醒(空闲时推送)QSystemIdleDetector

2.2 协同工作模块
#

功能编号需求描述技术实现要点
CL-0100团队空间管理OAuth2.0认证体系
- 角色权限控制(所有者/编辑者/查看者)RBAC模型数据库设计
- 项目空间隔离SQLite ATTACH DATABASE
CL-0200实时协作功能WebSocket + Operational Transform
- 任务分配与@提及通知QNetworkSession管理连接
- 协同编辑冲突解决CRDT算法实现
- 版本历史追溯(可回滚)SQLite时间旅行扩展
CL-0300沟通集成libcurl网络库
- 评论线程(Markdown支持)QTextDocument解析
- 邮件同步(任务变更通知)SMTP协议实现

2.3 AI增强模块
#

功能编号需求描述技术实现要点
AI-0100自然语言任务解析ONNX运行时本地推理
- 任务语义解构(提取实体/关系)微调BERT模型(<50MB)
- 自动生成子任务树决策树算法生成
AI-0200动态规划引擎QtConcurrent并行计算
- 时间预估(基于历史效率分析)ARIMA时间序列预测
- 智能排程(资源冲突检测)约束满足问题求解器
- 风险预警(关键路径标识)图论算法应用
AI-0300知识增强系统DuckDB向量数据库
- 任务关联文档推荐Sentence-BERT相似度匹配
- 代码片段自动生成(开发任务)OpenAI Codex本地化模型

2.4 分析预测模块
#

功能编号需求描述技术实现要点
AN-0100生产力分析QtCharts数据可视化
- 个人效能热力图(专注时段分析)QSensor数据采集
- 团队负载均衡图力导向图算法
AN-0200预测性报告SQL窗口函数分析
- 项目完成概率预测蒙特卡洛模拟
- 延期风险指数计算逻辑回归模型

3. 非功能性需求
#

3.1 性能需求
#

gantt
    title 关键性能指标
    dateFormat  YYYY-MM-DD
    section 响应时间
    任务加载(1000条)   :active, p1, 2025-08-01, 1.2s
    AI解析响应(P95)    :         p2, after p1, 0.8s 
    协同操作同步       :         p3, after p2, 0.3s
    
    section 资源占用
    内存常驻          :crit, 2025-08-01, 120MB
    存储压缩比        :         >=5:1

3.2 安全需求
#

  • 数据加密:SQLite页级AES-256加密(SQLCipher扩展)
  • 隐私保护:AI处理本地化(可选关闭云同步)
  • 审计追踪:操作日志HMAC-SHA256签名

3.3 可靠性需求
#

  • 崩溃恢复:自动保存点(15分钟增量备份)
  • 冲突解决:三阶段协同冲突处理策略:
    1. 客户端自动合并(基于CRDT)
    2. 用户决策界面(可视化差异对比)
    3. 版本分支存档

3.4 兼容性需求
#

平台支持级别技术方案
Windows完整功能MSVC 2022编译
macOS完整功能+原生UIQt for macOS
Linux完整功能Wayland/X11双支持
Android核心功能Qt 6.5 Mobile模块
Web只读视图WebAssembly编译

4. 系统架构
#

4.1 逻辑架构
#

+-----------------------+
|     Presentation      |
|  QWidgets / QtQuick   |
+----------+------------+
           | (信号槽)
+----------v------------+
|    Business Logic     |
|  - 任务管理核心       |
|  - AI推理引擎         |
|  - 协同控制器         |
+----------+------------+
           | (DAO接口)
+----------v------------+
|       Data Layer      |
|  - SQLite OLTP        |
|  - DuckDB OLAP        |
|  - 模型文件存储       |
+-----------------------+

4.2 部署架构
#

graph TD
    A[桌面客户端] --> B[本地数据库]
    A --> C[AI模型仓库]
    A <--> D[协同服务器]
    D --> E[(PostgreSQL集群)]
    D --> F[Redis实时队列]
    G[移动端] --> D
    H[Web端] --> D

5. AI集成方案
#

5.1 智能规划工作流
#

sequenceDiagram
    participant User
    participant UI
    participant AI Engine
    participant Database
    
    User->>UI: 输入“开发邮件客户端,需加密模块,两周完成”
    UI->>AI Engine: 发送自然语言请求
    AI Engine->>AI Engine: 实体识别(技术栈/时间/功能)
    AI Engine->>Database: 查询相似任务历史数据
    Database-->>AI Engine: 返回历史执行指标
    AI Engine->>AI Engine: 生成任务分解树
    AI Engine->>UI: 返回结构化规划:
        • 子任务:UI框架/认证模块/加密集成
        • 时间线:甘特图+风险提示
    UI->>User: 可视化展示可编辑方案

5.2 关键技术实现
#

// AI任务解析核心类
class TaskParser : public QObject {
    Q_OBJECT
public:
    explicit TaskParser(QObject *parent = nullptr);
    
    Q_INVOKABLE ParsedTask parseDescription(const QString &text);
    
private:
    // ONNX推理引擎
    Ort::Session *nlpSession; 
    
    // 本地知识图谱
    DuckDBConnection *knowledgeGraph;
};

// 返回数据结构
struct ParsedTask {
    QString title;
    QVector<Subtask> subtasks;
    QMap<QString, QTime> timeEstimates;
    QVector<KnowledgeLink> relatedResources;
};

6. 交付物规划
#

6.1 阶段化交付
#

迭代功能集AI能力周期
MVP基础任务管理+本地AI解析L1:关键词提取8周
v1.0团队协同+动态规划L2:时间预估12周
v1.5预测分析+跨平台L3:风险建模6周
v2.0AR集成+企业级扩展L4:自适应工作流10周

6.2 质量保障
#

  • 自动化测试覆盖率
    • 核心逻辑:≥85%(QTest框架)
    • UI交互:≥70%(Squish自动化)
  • AI模型评估
    • 任务分解准确率:F1-score ≥0.82
    • 时间预估误差:MAPE ≤15%

7. 创新价值矩阵
#

quadrantChart
    title 功能价值分析
    x-axis 开发成本 →
    y-axis 用户价值 ↑
    quadrant-1 战略核心
    quadrant-2 差异化优势
    quadrant-3 基础必备
    quadrant-4 优化选项
    “动态AI规划”: [0.7, 0.95]
    “协同冲突解决”: [0.6, 0.8]
    “多视图看板”: [0.3, 0.9]
    “知识图谱”: [0.65, 0.7]
    “AR集成”: [0.85, 0.6]

本需求书完整涵盖传统任务管理核心功能(看板/协同/提醒)与AI创新点(智能规划/预测分析),建议采用模块化开发策略

  1. 基础框架搭建:实现TD-0100/TD-0200模块(4周)
  2. 协同核心开发:完成CL系列功能(6周)
  3. AI引擎集成:部署AI-0100/AI-0200(8周)
  4. 分析预测扩展:构建AN模块(4周)

具体内容我觉得非常好,所以打算朝这个方向做,虽然很明显我做不成很厉害的样子但至少可以做着玩玩。

起手
#

我肯定不愿意用qt原生的组件,因为太丑,自己搓组件又太麻烦,所以我干脆上网找开源项目。有一个QFluentWidget的项目,但是它的cpp的版本要几千块钱买,所以我只好放弃。后面找到了ElaWidgetTools,今天下午刚配好ElaWidgetTools,预计后面以ElaWidgetTools作为主要UI库。 目前项目刚刚开始,希望我不要又做成一坨。