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

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

  •  2
     
  •   markliu2013 · 89 天前 · 3330 次点击
    这是一个创建于 89 天前的主题,其中的信息可能已经有所发展或是发生改变。

    为什么要记账?

    你有很多理由去记账,想知道一年到底花了多少钱,哪些钱是本来可以省下来的钱,随时了解自己的财务状况,我自己记账已经 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 提交,开源出来也是希望大家可以一起用一起完善,想用这套记账的系统,但是没有环境的,也可以私信我在真实的环境开账户,但是需要付费,目前不想让无聊的数据进入真实系统。

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

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

    @gongjinchu GitHub 主页有我的邮箱,你可以给我发邮件。
    gongjinchu
        22
    gongjinchu  
       88 天前
    大佬,你的 flutter 用的什么版本? 我的本地太久没用了,版本不适配得升级。
    markliu2013
        23
    markliu2013  
    OP
       88 天前
    @gongjinchu

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