Skip to content

极客时间-代码之丑专栏课前练习 一个待办事项命令应用

Notifications You must be signed in to change notification settings

quzehu/todo-command

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 

Repository files navigation

极客时间—代码之丑练习项目

实现一个待办事项管理软件,是以命令行应用的方式存在

第一阶段需求 基本功能

  1. 添加Todo项
  2. 完成Todo项
  3. 查看Todo列表,缺省情况下,只列出未完成的Todo项
  4. 使用all参数,查看所有的Todo项目
todo add <item>
1. <item>
Item <itemIndex> added
todo done <itemIndex>
Item <itemIndex> done.
todo list
1. <item1>
2. <item2>
Total: 2 items
todo list --all
1. <item1>
2. <item2>
3. [Done] <item3>
Total: 3 items, 1 item done

要求:

  1. Todo项存储在本地文件中;
  2. Todo项索引逐一递增。

第二阶段需求 支持多用户

  1. 用户登录
  2. 用户退出
todo login -u user
Password:

Login success!
todo logout

Logout success!

要求:

  1. 只能看到当前用户的Todo列表
  2. 同一个用户的Todo索引逐一递增
  3. 当前用户信息存储在配置文件中 .todo-config

第三阶段需求 支持Todo列表导入和导出

  1. Todo列表导出
  2. Todo列表导入
todo export > todolist
todo import -f todolist

第四阶段需求 支持数据库持久化

在配置文件中,配置数据库连接信息

  1. 初始化数据库
todo init

要求:

  1. 没有数据库的情况下,使用本地文件
  2. 在有数据库的情况下,使用数据库
  3. 在本地文件已经存在的情况,将本地信息导入到数据库中

附加说明

  1. 支持“todo help”的帮助命令。
  2. 支持输入密码五次校验,校验不通过强制退出,校验次数可以在配置文件中修改。
  3. 导入文件仅支持Excel文件导入。
  4. 导出支持Txt文件和Excel文件,默认导出Excel文件,配置文件可修改
  5. 持久化策略有Mysql数据库、本地txt文件、仅内存(不能持久化)三种方式, 默认使用Mysql数据库持久化,配置文件中可以修改使用的持久化策略。
  6. 支持内存缓存读取策略(目前无论数据量多少,都从内存缓存读取), 后期增加数据量大不使用内存缓存功能。
  7. 支持缓存加载时机策略,提供启动项目加载所有用户、懒加载两种方式, 默认采用懒加载方式,可在配置文件中修改。
  8. 内置系统用户在todo-config.txt配置文件中
  9. 支持注册新用户(当前只能在项目中注册,当以jar包方式运行时,会报异常)
  10. 查看当前所有用户列表。
  11. 用户必须登录,才能使用此应用。

备注

此命令行应用,暂不支持同一用户,多窗口登录。

运行项目

mvn spring-boot:run

构建打包 部署

mvn clean package

java -jar target/todo-command.jar

About

极客时间-代码之丑专栏课前练习 一个待办事项命令应用

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages