2018-07-01-project-selfmanager个人管理系统

这个是自己写的一个个人管理项目,已经开源在github中。

Live Demo 演示地址,github地址

演示地址

github地址

由来

大学的时候,自己有写日记,稍微记一下账单,但是苦于没有好工具可用。有找过类似日事清等一些软件,但这些软件

  • 只能/擅长做某件事(日事清一般用来做行程安排),要几个软件都用才能满足自己各个方法的需求。
  • 数据由他们保存,这是最重要的一点。
    • 一方面是保密问题,像日记这些东西虽然不是什么很机密的,还是存在自己本地的放心。
    • 另一方面导出不是很方便,有的软件提供导出,但可能只能导出成他们专用的格式,这样很不方便转移平台。

所以我基本上很少使用这些工具,总的来说原因就是这些工具并没有给我带来方便。

最开始的时候使用的txt文本来记录,这样的缺点也很明显:

  • 数据需要手动对齐数据。
  • 数据量不能太多不好管理,那个时候基本上一个月一个txt,就像 2018-06-日记2018-06-账单 2018-07-日记 2018-07-账单 个样子,结果后面数量太多。
  • 数据不好获取,其实整理这些日记是为了以后看,账单可能要做一下统计。整在txt中想要查看指定日记和统计不方便。

中间有段时间把日记,账单,行程安排等全部在同一个excel的不同sheet中做,在excel中做有很多好处,解决了txt的缺点:

  • 单元格自带对齐功能。
  • 就一个文件,备份也只需备份这个文件。不管全量还是增量都方便了很多。

  • 使用excel的自带的统计功能也能做一些简单的统计。

但到后面也觉得不方便:

  • 比如行程安排,我在excel中很难一眼看出哪些任务做了没做。如果用不同的背景色标注,一眼过去花花绿绿也难受,某天有什么任务没有完成,还要拉到对应的一天去看,比较麻烦。
  • 后期加入其他一些东西,差不多6,7个sheet,管理起来也比较麻烦了。
  • ……

所以大学期间就想做一个这样的系统,用来管理自己的一些东西。最近乘着有空,就根据自己的需求做了一个简单版本的。虽然这个项目并不是什么优秀的项目,但一方面是如果有人和我一样正在寻找一种解决方案,希望这个项目可以帮到你(虽然这个项目是按着我自己的需求做的,不过日记账单这些应该是通用的,同时如果需要你可以任意修改代码)。另一方面我是一个开源爱好者,在享受到其它开源项目的便利时,我也希望参与其中。

我自己也将持续使用这个项目作为个人管理,如果想到什么好主意也会持续添加到项目中。

介绍

该项目使用到了以下技术/工具

  • ssm框架,spring + springmvc + mybatis
  • maven构建
  • mysql数据库
  • layui界面

日记管理

日记列表:中规中矩的列表界面,可按日期范围进行搜索

注:该项目直接使用layui后台模板,不过做了一些修改:把顶端导航栏缩小,只留下左边和导航栏一样的宽度,给主面板留下足够的空间。

日记列表

添加日记:根据我自己的需求,有日期,天气,写日记地点,心情,日记内容这五项需要输入。

添加日记

账单管理

账单列表:提供根据账单的日期,账单的标签(每个账单只能有一个标签,标签在配置页面中增删改)进行查询日期。

账单列表

添加账单:日期,金额,支付类型(现付/未现付 有些可能使用支付宝的花呗或者京东白条进行支付的),标签(一个账单只能选择一个标签)

添加账单

任务模块

在构建任务模块的时候考虑的比较多。

然后根据我自己的需求,主要分为长期任务,周任务和天任务。

长期任务

长期任务很简单,就任务内容,状态,开始时间和结束时间。主要写一些需要长时间完成的任务,或者留到日后再进行的任务。

长期任务

周任务

周任务大部分是参考长期任务的,该周完成正在进行中的长期任务的部分。

但是因为周任务可能不仅仅包括长期任务,可能还有其他一些本周需要做的但不处于长期任务之列,所以我这里没有将长期任务直接列入周任务,而需要手动添加周任务。

周任务列表

添加周任务,此处是根据PDCA来的,虽然只是四个简单的文本域。

  • plan:我是本周周日写下周的plan。PS:Plan中,不要泛泛而写,目标要很明确(以前我刚开始使用PDCA就犯过这个毛病,被老师批评过)。不写完成某功能,要写产出是什么。比如:不写“完成某项目的功能的划分”,要写“产出该项目的功能结构思维导图”(产出的是思维导图)。 “学习netty框架,到达入门会用”,到底什么程度才算是入门会用?或者写成“学习netty框架,完成一个使用netty提供文件下载小项目“,你会觉得更有成就感?类似的,很清楚最终你完成了该任务,会有什么成果出来即可。
  • do:然后在下周的过程中如果完成了某个任务,就在do中写下完成的日期及完成任务的编号/名称。
  • check:最后下周周日写check,看看自己本周任务完成的情况。分析未完成某项任务的原因,是自己没尽力?还是确实不可阻止的外力导致无法完成?还是自己对任务用时估计错误?进行反思总结,这样可以培养自己对任务进度的估算能力,也有助于认清自己的能力,渐渐的以后安排任务会得心应手。
  • action: 安排下周的action,本周未完成的可以顺延下周,以及安排下周的新任务。

添加周任务

天任务

在介绍天任务之前需要看一下任务管理和任务安排两个模块。

任务管理

任务管理列表页面,根据任务优先级倒序排列。我根据自己的需求,创建任务时按照如下优先级创建任务

  • 紧急任务,优先级10
  • 天任务,优先级为9
  • 周任务,优先级8
  • 月任务,优先级7
  • 年任务,优先级6
  • 临时任务,优先级1

任务管理

任务安排

任务安排,在任务管理的添加的任务,都能够在这里进行安排。安排某任务可以选择一个日期范围。

通常,我会在

  • 今年年末安排下一年的年任务。

  • 本月月末安排下一月的月任务。

  • 本周末安排下周的周任务和天任务。

任务安排

天任务

在天任务列表,使用右侧日期选择器查看某一天的任务。任务有是否完成按钮(完成后勾选)和状态按钮(放弃/未能完成该任务后时去掉勾选)。

所以整个任务模块的思路:长期任务(进行中的长期任务)–>周任务(进行中的长期任务的部分+本周需要完成的其他任务)–>天任务(周任务+固定的周任务+固定的天任务)

这样,只需要每周末安排,然后接下来的一周每天看当天任务即可。

天任务

下面这些模块是为了个人定制的,所以可能不太适合。

图书模块

看书难免有一些读后感,比如读胡适文集,就特别有一些感想吧。之前有在excel中记录读了哪些书以及一些读后感。所以这次也在这个系统中加了一个图书管理模块。

添加图书界面,书名,作者,标签(和账单标签一样在配置页面中增删改),读后感。

添加图书

图书列表

图书列表

大事件管理

添加大事件:日期,类型(固定了三个类型:关于我,认识的人,社会上),事件,感想

添加事件

大事件列表:这个是为了记录一些特别的时间点,也有部分原因是由于发现layui有timeline的功能,所以才打算加入这个模块。

大事件列表

未来的信

0.0 每个时期的心理都不同,写一写,未来看一看,回味一下。

未来的信列表

认识的人管理

其实这几个模块都是根据我自己的excel中的记录变化而来。因为脑子是不可靠的,没办法记住每个人的一些细节,所以我会在这里进行一些记录。

  • 关于人物小传,我常常问长辈一些过去的事,比如我爸妈是怎么认识的,我小时候做过一些什么傻事之类的。所以我会给某些人添加他的小传,记录一些我经历的,听到的事情吧。这些事情不适合写在日记中,所以才有了这个人物小传吧。
  • 关于密语,有的时候会突然想起某个人,同学啊,某个人认识的,我就会到这里写上一些话。

认识的人列表

喜欢的话

总有一些喜欢的话,所以特地弄了一个页面来记录。

喜欢的话列表

配置

下图中,

  • 类型表示该记录属于哪一个类型,当前类型就是一下四种
    • url,每个页面中使用到的url,基本上无需变动。
    • menu,菜单管理,根据需要可以变动
    • bookTag,图书标签
    • billTag,账单标签
  • 分组ID:分组所在ID
  • 属性ID:属性对应id
  • 属性值:属性对应值

配置列表

url

这个一般不需要变动,除非你自己添加了功能,则需要在其中进行配置。

分组ID用于指示该url属于哪个分组

  • 分组ID=bigThing就是大事件,这个名字当然是自己取得,不过页面中获得大事件相关URL是通过 type=url&groupId=bigThing这两个条件来获取的

属性ID用于指示url的用途,比如

  • 属性ID=goAdd就是前往添加页面
  • 属性ID=add就是添加对应记录

这个我都有统一命名。

配置列表

  • 菜单的type为menu。

  • 分组ID:相同分组ID将会出现在同一个菜单栏下。根据分组ID正序排列。

  • 分组名称:会成为父菜单栏的名称,比如当前左侧的导航栏的父菜单栏根据配置有:日常,个人,配置三项
  • 属性ID:根据属性ID正序排列。
  • 属性名称:当前的属性名会变成对应子菜单的名称,比如当前左侧导航栏中日常菜单项下有:日记管理,账单管理等。
  • 属性值:对应页面的url

配置列表

配置列表

bookTag图书标签

图书标签根据自己的需要进行新建,注意类型一定要为bookTag即可。

配置列表

分组ID相同的会被视为同一组,在图书列表界面同一组的会排在一起,如下图

图书列表

billTag账单标签

也和bookTag差不多

配置列表

另外注意的

只有日记和人物小传的字段使用了text,可以输入较多文字。

其他一些文本字段使用的是varchar,文字数量是有限制的。

如果觉得哪个字段长度不够用,可以进行相应的扩大。(注意要事先备份好数据)

安装

目录结构:

  • mysql_script : mysql脚本
  • source :源码
  • war : war包

有两种方式,一种是部署源码,一种是直接使用war包。

部署源码

环境要求

  • JDK1.6及以上
  • tomcat6及以上
  • eclipse/myeclipse
  • mysql数据库
  • maven

步骤:

  • 在Mysql中运行mysql_script/selfmanager.sql脚本,其中有建库命令,建表命令,以及配置表的初始化数据。

  • 解压source文件夹中的selfmananger.rar文件。

  • 将解压后的项目导入加入到你的IDE中,比如eclipse/myeclipse
  • 修改src/main/resources/config/database/mysql.properties中的下面几项为你自己的配置。
    • JDBC.URL
    • JDBC.User
    • JDBC.Password
  • 启动tomcat服务器访问 http://localhost:8080/selfmanager 即可

部署war包

  • 在Mysql中运行mysql_script/selfmanager.sql脚本,其中有建库命令,建表命令,以及配置表的初始化数据。

  • 复制war/selfmanager.war你的tomcat目录/webapps/目录下

  • 进入selfmanager.war中,修改src/main/resources/config/database/mysql.properties中的下面几项为你自己的配置。
    • JDBC.URL
    • JDBC.User
    • JDBC.Password
  • 启动tomcat服务器访问 http://localhost:8080/selfmanager 即可

关于备份建议

备份很重要,备份太勤快又累,懒于备份又要时时刻刻当心数据的丢失。

现在我是一周一备份,丢失一周的数据对我来说是可承受的。之前也次误操作删除了一月的数据,那心情简直沮丧到极点,尤其是日记数据的丢失。

后期可能考虑加入

  • 图表展示:账单,任务完成情况等后期可能加入图表展示。

  • 报表数据导出/导入。

  • 移动版:借用Bootstrap的移动优先概念,大部分人可能会比较习惯使用手机而不是电脑吧。

致谢

感谢 layui ,使用既有的前端框架使得开发速度变快了很多。

感谢404页面的提供者

当然像maven,spring这些工具/框架就更不用说了。

联系我

如果发现bug或者有什么好的建议或意见(比如添加什么模块之类的),可以给我发邮件。

我的邮箱:[email protected]

License

MIT

猜你喜欢

转载自blog.csdn.net/jkl852qaz/article/details/80874414