2021年 9月
“老公,随手记广告太多了,上次从网易有钱换过来,我账本全没了”
来自我当主管会计的老婆的吐槽给了我些许灵感,时值工作空窗期,百无聊赖,不如做点什么
记账,这点事
得益于我媳妇大学专业就是会计,自打大学大二起,她就开始走上记账这件漫长枯燥(在我看来)的路,到后来的一起毕业、工作,再到见家长、买房、装修、买车、婚纱照、结婚、过日子、生娃,大事小事,点点滴滴,记账,从未中断过
可以说,账本记录了我们恋爱的全过程,也记录了人生大事的全过程,不知道你们是不是有同样的经历
当然,工具也从未间断过,从花花绿绿手工帐到返璞归真的Excel表格,再到五花八门APP。工具的确在进化,但是有一个很大的问题就是,账本可是不好保留的,我媳妇用的最久的就是网易有钱,据她说不好用也不难用,但是架不住这个项目黄了,我连夜下载的这些年的账本,生成excel,但是不巧的是,这点excel还是没什没用
于是2021年10月,我对我媳妇立下豪言:
“洒家给你开发一个可否?”
“可”
记账,这件事
关于开发和开源过程先不说,先讨论下记账这件事
其实记账这件事,大部分人是不记账的,剩下记账的人,又各有各的思路和流程,拿我家举例子,我媳妇想要的是最简单的记账,其余的花里胡哨的功能,全部都不要
而且记账这件事情,从内容来看,完全就是投影了自己的生活规律,从行为来看,反映了自己的生活态度
关于怎么记账这件事,我自己最大的想法就是,不要被乱七八糟的记账软件来绑架住自己的生活,要明白自己是为什么记账而记账,事无巨细的记账,只会加重自己心理负担,就拿我唯一的用户来说(目前不是唯一了,有些网友也部署我的项目),她就是抓大放小,把生活的大方面控制好了,月中月末分别记一次,就很轻松了
记账开发篇
产品功能设计
最初的想法是,模仿人家的app来做,后来发现很多功能都用不上,例如登录(bushi)
再后来,定下来了全部功能:
功能定了后,决定用什么形式展示,最终,经过一系列与媳妇和同事朋友的讨论
决定用 手机端记账 ,因为现代人大部分闲暇之余不会总是窝在电脑前面,手机是最方便的,所以最终结果就是开发 可以在手机上使用,受众是家庭及非专业的个人用户使用的记账软件
项目最终命名为EasyAccounts
功能亮点
最主要的亮点就是能够生成excel文件,并且推送到自己的邮箱
用我媳妇的一句话就是,你只要给我excel,别的你就别管了
还有数据库备份功能
有了备份文件,无论将来怎么折腾,只要重新下载项目,用户都可以原封不动恢复数据,这个功能我实验了很久很久,现在已经很稳定了
至于其他功能
提供接口文档,有能力的,可以自行调用接口,获取数据
提供Nginx下载界面,可以自行下载生成的文件和备份的sql文件
版本
其实版本这个东西也可以当做我自娱自乐,也可以说是职业病,我毕竟是个专业的软件开发,从业很多年了,版本控制是我本职工作的一部分,不管有没有用户,我都需要让功能最起码有个对应的版本号
上面思维导图的功能都是从0.5版本,到现在2.1.1版本一路更新过来的
版本 | 功能 |
0.5 | 基础配置项 & 记账流程 |
1.0 | 筛选功能 & Excel功能 |
1.5 | 数据库备份 & 邮箱推送 & 容器化 |
1.6 | 追加分账单 |
1.8 | 财务分析(好像有bug) |
2.0 | 开源 & 剥离发送邮件服务 & 编写文档 |
2.1 | 模板功能 & 美化界面 & 备注搜索 |
产品设计过程中,一开始对产品做了很多加法,什么都想要
后来被媳妇说了几句,都没用,全给顶回来了,又开始做减法
不会用产品设计工具,就自己拿草稿纸画草图,遇到瓶颈,就看看别人的app
技术选型
这块开始,就属于相对半专业一些的内容了
一开始想法很简单,基于文本或者基于Excel的记账软件,写了一个小Demo验证可行性,发现单纯拿文本文件记录,我这不是写了个JDBC么,遂更换专业数据库
技术选型最终为经典的开发几件套
- 前端:VUE 2
- 服务端:SpringBoot
- 数据库:Mysql 8.0.31
- Webhook: Python
- 部署:前期原生服务器部署、后期docker容器化
技术开发
技术开发这块应该是没什么好说的,正常的就是一个模块一个模块的推进
值得一提的是,一个人独自完成如下开发
数据库设计、后端服务搭建、前端页面编写、python服务编写、制作容器
这些对于我一个曾经的Android工程师来说,着实有点超纲了,把自己愣是变成了半吊子全栈
页面上一个数据显示不对,调试链条,从浏览器到idea再到datagrip
jetbrain家的产品就在我程序坞中没消失过
以至于在我开源的源码项目中,有如下场景
到后来的打包部署又增加了一个Vscode
代码就不贴了,也没什么人感兴趣,源码链接贴在文中最下面,感兴趣可以看一眼
技术开源
我本意是想自己用,开发这个项目一个是想自己探索一下不熟悉的领域,二来枕边人确实有需求
事情的转机是因为我在某乎分享过我自己开发的这个项目,有几位老哥表示感兴趣
我又是个不太好拒绝别人的人,就把开源提上日程了
24年5月份左右,我改了代码,写了文档,录了视频,上了github,上了gitee,适逢docker hub国内被禁,我又自己弄了个aliyun的免费镜像,前前后后折腾了两个多星期
最终形成了两个开源工程
主工程EasyAccounts,git下载,docker-compose配置文件按照部署文档修改一下,即可直接使用项目
源码工程 EasyAccountsOpenSource,git下载完可以修改对应的源码,自行下载依赖,并编译镜像
目前来看应该是有一部分镜像下载量,以及一部分别的镜像站的同步下载量
最后
项目开源地址:
https://github.com/QingHeYang/EasyAccounts
项目源码地址:
https://github.com/QingHeYang/EasyAccountsOpenSource
目前有20个Star,这个是真的出乎我的意料了
最后,写这个文章其实就是记录一下这个事情的过程
没什么能够帮到大家的,就给大家拜个早年吧,记账开心,财源广进