V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
markliu2013
V2EX  ›  分享创造

把自己开发了一年的记账项目开源了,需要记账的朋友可以自己部署一套

  •  2
     
  •   markliu2013 · 2022-11-10 15:04:33 +08:00 · 6700 次点击
    这是一个创建于 767 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为什么要记账?

    你有很多理由去记账,想知道一年到底花了多少钱,哪些钱是本来可以省下来的钱,随时了解自己的财务状况,我自己记账已经 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 技术的也不是难事。

    有两点需要说明一下

    1. 搭建好环境之后需要将项目文件中的 currency.sql 初始化,不然无法新建账户。
    2. 图片上传使用的七牛云,这个有 10g 的免费空间可以用,你自己搭建需要申请账户,然后将环境变量修改为你自己七牛的环境。

    最后如果觉得记账项目有用的话,麻烦点个 GitHub 关注,在使用过程中有觉得需要完善的功能或者 bug 可以在 GitHub 提交,开源出来也是希望大家可以一起用一起完善,想用这套记账的系统,但是没有环境的,也可以私信我在真实的环境开账户,但是需要付费,目前不想让无聊的数据进入真实系统。

    第 1 条附言  ·  2023-06-04 21:36:10 +08:00
    46 条回复    2023-01-13 07:54:34 +08:00
    zhouyg
        1
    zhouyg  
       2022-11-10 15:50:32 +08:00
    开源,支持
    bornichildren
        2
    bornichildren  
       2022-11-10 16:37:58 +08:00 via iPhone
    支持。分类居然跟我一摸一样,巧了。
    siriussilen
        3
    siriussilen  
       2022-11-10 16:39:19 +08:00
    支持! 一直都有需求
    dingdangnao
        4
    dingdangnao  
       2022-11-10 16:40:31 +08:00
    楼主牛啊
    我也是想记账看看每个月都花啥钱了,自己做了个简陋的前端用来记录的,配合 iOS 轻点后背能快速打开 然后记录
    手机上写了几个小组件用来看状态的
    后台的 admin 还没写😂打算先把数据流下来再说😂😂
    villivateur
        5
    villivateur  
       2022-11-10 16:51:04 +08:00
    支持楼主!现在我在用 beancount 记账,感觉太专业了。话说你这个能支持从 beancount 导入吗
    gongjinchu
        6
    gongjinchu  
       2022-11-10 16:59:27 +08:00
    大佬太牛了。我要部署一套出来。已经 star 了。 我自己做了一个记账 app 已经上架了,但是没有后端,我可以把你的后端可客户端逻辑拿去用用么?
    markliu2013
        7
    markliu2013  
    OP
       2022-11-10 17:00:35 +08:00
    @gongjinchu 随便用,你后面要有商业化也可以。
    markliu2013
        8
    markliu2013  
    OP
       2022-11-10 17:02:25 +08:00
    @gongjinchu 不支持任何格式的导入哦,你可以自己二次开发,这个也不难的。
    markliu2013
        9
    markliu2013  
    OP
       2022-11-10 17:03:51 +08:00
    @villivateur 不好意思,at 错了人, 请看上面的回复。
    lasko
        10
    lasko  
       2022-11-10 17:10:02 +08:00
    靠谱啊
    shuxhan
        11
    shuxhan  
       2022-11-10 17:11:36 +08:00
    提两个个小优化,侧边栏应该和右边主体部分分开,不然下拉的时候全部下来,导致右边看不了
    以及顶部这一栏最好可以置顶吧,不然也是下拉的时候想点击还得滑到最上面

    https://cdn.staticaly.com/gh/zburu/pic-cdn@main/20221110/1668071360581.4qmlexwn5400.jpg
    https://cdn.staticaly.com/gh/zburu/pic-cdn@main/20221110/image.6652dfgchfc0.jpg
    markliu2013
        12
    markliu2013  
    OP
       2022-11-10 17:22:06 +08:00
    @shuxhan 谢谢你的意见,我看了一下,也对比了其他的网站,你这两个优化都是合理的。
    really28
        13
    really28  
       2022-11-10 17:59:39 +08:00
    emm ,直接用支付软件或者银行的统计不香吗。
    toomoy
        14
    toomoy  
       2022-11-10 18:32:54 +08:00
    金额加货币的币种吧
    gaodeng
        15
    gaodeng  
       2022-11-10 19:12:17 +08:00
    👍
    markliu2013
        16
    markliu2013  
    OP
       2022-11-10 19:16:23 +08:00
    @toomoy 支持币种,只是目前不能自动换算,需要手动收入换算后的金额。
    Dganzh
        17
    Dganzh  
       2022-11-11 10:06:29 +08:00
    看起来工作量好大👍
    qweqqwe
        18
    qweqqwe  
       2022-11-11 10:23:03 +08:00
    分类学习到了!
    mydingyan
        19
    mydingyan  
       2022-11-11 10:55:08 +08:00
    急需记账工具,今年每个月都是半天时间去手动统计账单。
    上面说的支付软件或者银行的统计,喜欢薅羊毛的我并不适用,各种 APP 和支付方式消费混乱很难统计。
    [img]https://cos.loveloveme.cn/2022/11/11/588e35834aa19.png[/img]
    gongjinchu
        20
    gongjinchu  
       2022-11-11 10:58:54 +08:00
    怎么能联系到你,好想和你交个朋友,是不是你可以搞个交流群,哈哈
    markliu2013
        21
    markliu2013  
    OP
       2022-11-11 11:08:09 +08:00
    @mydingyan 在复杂的消费场景也可以记录,但是要花时间,你可以把优惠钱的金额记录成支出金额,然后把养猫优惠劵的金额记录成收入,这样你就可以轻松统计你每个月薅羊毛赚了多少。

    @gongjinchu GitHub 主页有我的邮箱,你可以给我发邮件。
    gongjinchu
        22
    gongjinchu  
       2022-11-11 11:40:02 +08:00
    大佬,你的 flutter 用的什么版本? 我的本地太久没用了,版本不适配得升级。
    markliu2013
        23
    markliu2013  
    OP
       2022-11-11 11:46:21 +08:00
    @gongjinchu

    Dart version 2.18.4
    Flutter version 3.3.7 on channel stable
    levin1001
        24
    levin1001  
       2022-11-11 13:37:24 +08:00
    @markliu2013 没啥必要,一次性有年份的卡继承支出,羊毛算就计优惠之后的价格好了。 多薅的羊毛又不能算赚钱,没有人年底出个清单算我今年占了多少便宜,只会看今年实打实的支出了多少,有没有必要
    dayage
        25
    dayage  
       2022-11-11 15:23:11 +08:00
    支持各种数据的导入就好了,一笔笔记能把人急死
    RnzxTpyeoSwh7
        26
    RnzxTpyeoSwh7  
       2022-11-11 15:44:01 +08:00
    支持!
    gongjinchu
        27
    gongjinchu  
       2022-11-11 18:13:09 +08:00
    怎么默认的账本和账号和分类都是空的,建议默认初始化好。不然用户刚进来无法记账
    darkr4y
        28
    darkr4y  
       2022-11-11 18:53:36 +08:00 via iPhone
    最大的需求还是解析各类账单
    导入就好说了,有原始数据问题不大
    对于各类 pdf 中不规则表格解析有经验的同学可以交流一
    MaxFang
        29
    MaxFang  
       2022-11-11 19:21:50 +08:00
    支持,我现在都尽可能用一种支付渠道,然后用他的统计。
    littlewing
        30
    littlewing  
       2022-11-11 19:54:26 +08:00
    股票投资亏损 50%算啥消费
    dgmgso
        31
    dgmgso  
       2022-11-12 11:16:09 +08:00
    这个好啊。我想问下,能不能自建服务器啊,我有群晖想本地同步,ios 登录。就跟 bitwarden 一样
    dgmgso
        32
    dgmgso  
       2022-11-12 11:17:00 +08:00
    @dgmgso 没看清题,可以自建服务器,求教程
    markliu2013
        33
    markliu2013  
    OP
       2022-11-12 11:23:32 +08:00   ❤️ 1
    @dgmgso 关注下 GitHub 的源码更新,帮忙点个 star ,后续会出自己建服务器和记账的视频
    ouou0701
        34
    ouou0701  
       2022-11-12 13:40:55 +08:00
    本来想部署在自己的 nas 上的,看了下似乎没有教程
    dgmgso
        35
    dgmgso  
       2022-11-12 13:53:08 +08:00
    亮了,快出教程吧
    wolong
        36
    wolong  
       2022-11-12 17:16:16 +08:00
    这个厉害了。
    daimaosix
        37
    daimaosix  
       2022-11-15 03:56:28 +08:00 via Android
    牛逼老哥,
    daimaosix
        38
    daimaosix  
       2022-11-15 03:57:36 +08:00 via Android
    要是能上传 pdf 文件就好了,微信和支付宝的凭证都是 pdf ,感谢
    russ44
        39
    russ44  
       2022-11-15 10:32:55 +08:00
    good
    geekjin
        40
    geekjin  
       2022-11-29 16:06:18 +08:00
    @markliu2013 代码里没有建表 sql ,只有 insert
    markliu2013
        41
    markliu2013  
    OP
       2022-11-29 18:44:10 +08:00
    @geekjin spring boot 自动建表
    garyvalue
        42
    garyvalue  
       2022-12-02 18:44:03 +08:00
    @markliu2013 自己建服务器和记账的视频
    等一个教程
    LoneFireBlossom
        43
    LoneFireBlossom  
       2022-12-10 12:39:52 +08:00 via iPhone
    分类方式一样🤝
    个人感觉维持性,社会性这些适合作为标签。吃饭电子产品这些适合作为分类。
    justdolove
        44
    justdolove  
       2022-12-26 16:49:57 +08:00
    流批呀老哥,粗略登录后台看了下以为只有 web 端,还寻思想我要不根据 api 写个 app 或小程序,进 github 才发现全有了。
    f1ynnv2
        45
    f1ynnv2  
       2023-01-06 15:03:01 +08:00
    楼主很棒,我有时间打算部署一套和我的记账打通一下。
    我现在是搞了个微信机器人+随手记实现了 99%的自动记账。
    微信机器人订阅了所有信用卡和借记卡的官方公众号,这样就能拦截解析所有的消费支出和转账,然后通过 web api 自动记录到随手记。
    后面打算看能不能和楼主的系统打通一下,准备脱离随手记。
    wxyrrcj
        46
    wxyrrcj  
       2023-01-13 07:54:34 +08:00 via Android
    前段适配下手机端就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3309 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:50 · PVG 08:50 · LAX 16:50 · JFK 19:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.