76 lines
2.9 KiB
Markdown
76 lines
2.9 KiB
Markdown
## Language
|
||
|
||
zh_cn
|
||
|
||
## Programming Language
|
||
|
||
Python
|
||
|
||
## Original Requirements
|
||
|
||
创建一个Python命令行TODO应用,支持增删改查,数据存JSON文件
|
||
|
||
## Project Name
|
||
|
||
todo_cli
|
||
|
||
## Product Goals
|
||
|
||
- 提供简洁高效的命令行交互体验
|
||
- 确保数据持久化与可靠性
|
||
- 支持快速增删改查操作
|
||
|
||
## User Stories
|
||
|
||
- 作为用户,我希望能够通过命令行快速添加新的待办事项
|
||
- 作为用户,我希望能够查看所有待办事项及其完成状态
|
||
- 作为用户,我希望能够标记待办事项为已完成
|
||
- 作为用户,我希望能够删除不再需要的待办事项
|
||
- 作为用户,我希望能够修改已有待办事项的内容
|
||
|
||
## Competitive Analysis
|
||
|
||
- Todo.txt CLI: 纯文本文件存储,支持标签和优先级,但无JSON格式
|
||
- Taskwarrior: 功能强大的命令行任务管理,但学习曲线较陡
|
||
- t: 轻量级TODO工具,使用JSON存储,但功能单一
|
||
- GitHub Issues CLI: 与GitHub集成,不适合本地简单使用
|
||
- Microsoft To Do CLI: 非官方,依赖云服务,离线不可用
|
||
|
||
## Competitive Quadrant Chart
|
||
|
||
quadrantChart
|
||
title "命令行TODO工具竞争力分析"
|
||
x-axis "功能简单" --> "功能丰富"
|
||
y-axis "易用性低" --> "易用性高"
|
||
quadrant-1 "功能丰富且易用"
|
||
quadrant-2 "功能简单但易用"
|
||
quadrant-3 "功能简单且难用"
|
||
quadrant-4 "功能丰富但难用"
|
||
"Todo.txt CLI": [0.3, 0.7]
|
||
"Taskwarrior": [0.8, 0.3]
|
||
"t": [0.2, 0.6]
|
||
"GitHub Issues CLI": [0.7, 0.4]
|
||
"Microsoft To Do CLI": [0.5, 0.5]
|
||
"Our Target Product": [0.4, 0.8]
|
||
|
||
## Requirement Analysis
|
||
|
||
本项目要求开发一个Python命令行TODO应用,核心功能包括增删改查(CRUD),数据以JSON文件形式持久化存储。用户通过命令行参数或交互式菜单操作。需要支持:添加任务(标题、描述、截止日期等可选字段)、列出所有任务(可筛选状态)、标记完成/未完成、删除任务、编辑任务内容。数据存储于本地JSON文件,需处理文件读写异常。命令行界面应清晰易用,提供帮助信息。
|
||
|
||
## Requirement Pool
|
||
|
||
- ['P0', '实现添加待办事项功能,支持输入标题,可选描述和截止日期']
|
||
- ['P0', '实现查看所有待办事项列表,显示ID、标题、状态、创建时间等']
|
||
- ['P0', '实现删除待办事项功能,通过ID或索引删除']
|
||
- ['P0', '实现修改待办事项功能,支持更新标题、描述、截止日期、状态']
|
||
- ['P1', '实现数据持久化,使用JSON文件存储,支持自动加载和保存']
|
||
|
||
## UI Design draft
|
||
|
||
命令行界面,无图形UI。用户通过命令参数操作,例如:todo add "任务标题" -d "描述" -due 2025-01-01;todo list [--all|--done|--pending];todo done <id>;todo delete <id>;todo edit <id> --title "新标题"。支持--help查看帮助。输出格式为表格或列表,清晰显示任务信息。
|
||
|
||
## Anything UNCLEAR
|
||
|
||
无
|
||
|