个人知识管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

5.1 KiB

个人知识管理系统 - 命令行版本 (PKM CLI)

这是一个基于Java的个人知识管理系统,提供完整的命令行界面来管理你的笔记和知识库。

项目结构

PKM/
├── pom.xml                                    # Maven配置文件
├── src/
│   ├── main/
│   │   └── java/
│   │       └── com/
│   │           └── example/
│   │               ├── App.java              # 主应用程序入口
│   │               ├── cli/
│   │               │   └── CommandParser.java # 命令解析器
│   │               ├── model/
│   │               │   ├── Note.java         # 笔记实体类
│   │               │   └── ExportFormat.java # 导出格式枚举
│   │               └── service/
│   │                   ├── storage/
│   │                   │   ├── StorageService.java      # 存储服务接口
│   │                   │   ├── StorageException.java    # 存储异常类
│   │                   │   └── JsonStorageService.java  # JSON存储实现
│   │                   ├── export/
│   │                   │   ├── Exporter.java           # 导出器接口
│   │                   │   ├── ExportException.java    # 导出异常类
│   │                   │   ├── ExporterFactory.java    # 导出器工厂
│   │                   │   ├── TxtExporter.java        # TXT导出器
│   │                   │   └── JsonExporter.java       # JSON导出器
│   │                   └── search/
│   │                       └── SearchService.java      # 搜索服务
│   └── test/
│       └── java/
│           └── com/
│               └── example/
│                   ├── AppTest.java          # 应用测试类
│                   └── test/
│                       └── EntityTest.java  # 实体类测试
├── target/classes/                           # 编译输出目录
├── pkm.bat                                   # PKM快捷启动脚本
├── run.bat                                   # 运行脚本
├── clean.bat                                 # 清理脚本
├── notes.txt                                 # 笔记数据文件
└── README.md                                 # 项目说明文件

功能特性

核心命令

  • new - 创建新笔记
  • list - 列出所有笔记(支持标签过滤)
  • view - 查看笔记详情
  • edit - 编辑笔记内容
  • delete - 删除笔记

标签管理

  • tag - 为笔记添加标签
  • untag - 从笔记移除标签

搜索功能

  • search - 按关键词搜索笔记

导出功能

  • export - 导出单个笔记
  • export-all - 导出所有笔记
  • 支持格式:TXT、JSON

其他

  • help - 显示帮助信息
  • exit/quit - 退出程序

如何运行

前提条件

  • 安装Java 17或更高版本
  • 确保Java在系统PATH中

快速启动

使用PKM快捷脚本(推荐):

# 交互模式
pkm.bat

# 命令模式
pkm.bat help
pkm.bat new "我的笔记" "笔记内容"
pkm.bat list --tag java

手动编译运行

# 编译项目
javac -cp src\main\java -d target\classes src\main\java\com\example\*.java src\main\java\com\example\cli\*.java src\main\java\com\example\model\*.java

# 运行程序
java -cp target\classes com.example.App [命令]

使用run.bat脚本

# 自动编译并运行
run.bat

使用示例

交互模式

> pkm.bat
欢迎使用个人知识管理系统 (CLI版)
输入 help 查看可用命令

pkm> new "Java学习笔记" "今天学习了面向对象编程..."
创建笔记: Java学习笔记
内容: 今天学习了面向对象编程...

pkm> list
列出所有笔记:
[1] Java笔记 (2023-10-01) [编程, 学习]
[2] 设计模式笔记 (2023-10-05) [编程, 架构]

pkm> exit
感谢使用个人知识管理系统!

命令模式

# 创建笔记
pkm.bat new "Python学习" "学习Python基础语法"

# 列出笔记
pkm.bat list

# 按标签过滤
pkm.bat list --tag programming

# 搜索笔记
pkm.bat search "设计模式"

# 导出笔记
pkm.bat export 123e4567 txt my-note.txt

# 查看帮助
pkm.bat help

开发状态

当前版本已完成以下功能:

已实现

  • 完整的命令行界面和命令解析功能
  • Note实体类(包含完整的属性和方法)
  • 存储服务接口和实现(JsonStorageService)
  • 导出功能(TXT和JSON格式,使用工厂模式)
  • 搜索服务(关键词、标签、模糊搜索等)
  • 异常处理机制
  • 单元测试和验证

🚧 开发中

  • 将命令解析器与业务服务集成
  • 笔记控制器和标签控制器
  • 配置管理

📋 待开发

  • 批处理操作
  • 数据导入功能
  • 更丰富的搜索选项
  • 统计功能(笔记数量、标签云)

技术栈

  • Java 17
  • Maven 3.x
  • JUnit 5 (用于测试)

许可证

此项目仅用于学习和演示目的。