个人知识管理项目
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.
 
 
hewh 2098cae38c 增加实体类 11 months ago
.vscode 创建命令界面 11 months ago
src 增加实体类 11 months ago
target Hello world! 11 months ago
.gitignore 增加实体类 11 months ago
README.md 增加实体类 11 months ago
clean.bat 初始化项目 11 months ago
pkm.bat 创建命令界面 11 months ago
pom.xml 创建命令界面 11 months ago
run.bat 创建命令界面 11 months ago
test_export.json 增加实体类 11 months ago
test_export.txt 增加实体类 11 months ago
test_notes.txt 增加实体类 11 months ago
项目说明(命令行版本).md 初始化项目 11 months ago

README.md

个人知识管理系统 - 命令行版本 (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 (用于测试)

许可证

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