为什么要记账?
你有很多理由去记账,想知道一年到底花了多少钱,哪些钱是本来可以省下来的钱,随时了解自己的财务状况,我自己记账已经 1 年多了,发现这一年多的记账数据就是个人的历史数据,相当于就是一个日记本。我现在就是后悔记账意识太晚了,如果我从读大学就开始记账,现在再去翻这些记录,去翻第一次工资收入的记录,这些都会是美好的回忆,我是一个注重个人历史的人。
记账之前的准备
记账之前应该先想清楚自己记账的目的是什么,不同的记账场景和目的,需要搭建一套不同的记账系统。我调研了很多记账 APP ,发现他们默认的记账分类都是这样的,饮食,物业,衣服,交通,娱乐,健身,交际等,这样的分类是无法知道你真实的消费情况的,比如,跟同事一起聚餐,花费 100 元,这 100 元是分类到饮食还是交际?打车去健身,分类是交通还是健身?你会发现在这样的分类系统下,很多日常的消费无法合理归类,原因在于这套分类没有排他性,很多都是交叉的。实际上个人日常的支出只有两个大类,一是刚需,而是非刚需,这个需要你自己去思考,而非刚需就是你本来可以节省的钱,收入分类就是被动收入和非被动收入两个大类,上面说的那些分类在我们的记账系统里面应该用于标签更合适。
在刚需和非刚需的分类基础上,我将自己的支出分成了 4 大类。
- 名称:维持性;备注:维持生活的必须开支。
- 名称:消费性;备注:可以节省的开支,比如旅游,游戏充值等。
- 名称:提升性;备注:提升自己的生存能力或节省时间的开支,比如买书,保险等。
- 名称:社会性;备注:社交类型的支出,比如请朋友吃饭,同事聚餐等。
根据自己的实际情况,分类下面可以再细分出二级分类,比如维持性下面可以分衣食住行等,提升性分为学习和节省时间等。根据实际的支出情况,我添加了饮食,交通,衣服,健身等各找交易标签,标签可以支出分级管理。
建立好自己的记账系统之后,然后就是整理下目前自己的财务账户,包括银行卡,支付宝等,房产和汽车也可以作为资产账户,统计自己的资产状况。
详细的说明可以参考文档,https://docs.jz.jiukuaitech.com/
项目搭建
代码: https://github.com/markliu2013/bookkeeping
测试环境: http://testjz.jiukuaitech.com/register (登录:111/111111 注册邀请码:4590 )
测试环境数据随时清空,请不要当真实环境使用。
系统包括四个部分,后端 API ( Spring Boot ),前端界面( umijs + dva + antd + reactjs ),手机 App ( Flutter ),微信小程序( uniapp )。
如果有自己的服务器可以搭建一套自己的记账系统,数据永久自己保存。
先搭建后端 API 和前端界面
-
docker 如果你的服务器有 docker 和 docker compose 环境,配置好环境变量之后,可以直接一条命令将前端和后端搭建起来,然后用 Nginx 的反向代理将域名转发到对应端口。
-
原生方式 先保证服务器有安装 MySQL 和 Redis ,代码下载到本地之后,修改环境变量,然后将 jar 包和前端分别编译出来,上传到对应的网站目录,这个现在没法详细讲,有需要的话,我抽空录个视频,对于熟悉 Java 和 React 技术的也不是难事。
有两点需要说明一下
- 搭建好环境之后需要将项目文件中的 currency.sql 初始化,不然无法新建账户。
- 图片上传使用的七牛云,这个有 10g 的免费空间可以用,你自己搭建需要申请账户,然后将环境变量修改为你自己七牛的环境。
最后如果觉得记账项目有用的话,麻烦点个 GitHub 关注,在使用过程中有觉得需要完善的功能或者 bug 可以在 GitHub 提交,开源出来也是希望大家可以一起用一起完善,想用这套记账的系统,但是没有环境的,也可以私信我在真实的环境开账户,但是需要付费,目前不想让无聊的数据进入真实系统。