V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
CasualYours

各位有记账的需求吗,分享下我给 beancount 封装 API 的探索过程

  •  4
     
  •   CasualYours ·
    BaoXuebin · Dec 21, 2021 · 4940 views
    This topic created in 1588 days ago, the information mentioned may be changed or developed.

    我从去年开始使用 beancount 搭配 fava 来记账,总体效果不错,但也遇到了一些问题。

    上手难度大

    • 安装不方便。需要下载 python 以及通过 pip 去安装 beancount 和 fava
    • 使用难度大。因为 beancount 是基于文本的,所以其对记账内容的格式有严格要求
    • 灵活性。这其实算是 beancount 的优点,但对于刚接触的用户来说,怎么组织文件夹结构,怎么定义账户都是一个需要不断摸索和重构的过程

    便捷性不足

    • 缺乏对移动端的支持
    • 缺乏第三方账单导入

    作为一名后端开发,本能地想到 接口即服务。于是着手把 beancount 的使用抽象为 API 接口。

    beancount 提供了 bean-query 的命令,可以执行 BQL 语句(类似 SQL )输出结构化数据;我只需要把这些结构化的数据解析成 JSON 返回即可。于是我用 NodeJS 快速验证了这个想法( Github 地址:beancount-node-server)。

    Node 虽然开发起来很便捷,但是它给使用者新增了强依赖(用户想要记账需要同时在电脑配置 Python 和 Node ),本着 如无必要,勿增实体 的原则,我又把这个项目用 Go 重构了一遍,在支持多平台的基础上,而无需新增依赖。

    同时我也开发了一个前端界面(勉强兼容移动端)和对 docker 的支持。

    demo

    最终成品如下:beancount-gs 在线体验

    使用文档-完善中
    API Github 地址:beancount-gs
    前端 Github 地址:beancount-web

    上面这些就是我对 beancount API 化的探索,如果大家对这个项目有兴趣,欢迎保持关注。

    Love the world.

    16 replies    2022-04-21 17:29:30 +08:00
    wb129945130
        1
    wb129945130  
       Dec 21, 2021
    看起来不错
    MCVector
        2
    MCVector  
       Dec 21, 2021
    不错呀,我一般一个月通过银行流水导入一次,使用 beancount-import. 需要手动记录的状况一般就只有现金了。
    ddllzz
        3
    ddllzz  
       Dec 21, 2021 via Android
    👍
    Nasei
        4
    Nasei  
       Dec 21, 2021
    支持一个, 我也用 beancount

    但是我用了一下这个网页,感觉图形界面拿来看统计就好了,用来输入反而麻烦

    我觉得 beancount 的用户应该主要是程序员吧,所以你说的那些问题其实都不是什么问题
    CasualYours
        5
    CasualYours  
    OP
       Dec 21, 2021
    @wb129945130
    @MCVector
    @ddllzz
    感谢支持 ~
    CasualYours
        6
    CasualYours  
    OP
       Dec 21, 2021
    > beancount 的用户应该主要是程序员吧

    @Nasei 我之前也是这个想法,但在写过一篇 beancount 的介绍文章后,也经常收到一些非程序员的邮件沟通。beancount 对于大多数人上手门槛还是太高的。
    d873139022
        7
    d873139022  
       Dec 21, 2021
    悄咪咪嫖了一眼,感觉跟记账 app 的记账方式基本完全不一样,哈哈哈
    ybnsjl
        8
    ybnsjl  
       Dec 21, 2021
    界面挺漂亮的。害,我都是每次消费完,人工手动纯文本记录的
    7gugu
        9
    7gugu  
       Dec 21, 2021
    看起来不错👍。最近在尝试使用"Pixiu 记账"这个 App ,年度订阅制,支持在 Mac 和 iPhone 上记账,感觉楼主也可以试试看,恰好可以满足你要的导入第三方账单的需求。不过这个 App 貌似是不支持 API 接入的,这个可能是弊端。(不是广告,单纯就是推荐😂)
    CasualYours
        10
    CasualYours  
    OP
       Dec 21, 2021
    @d873139022 记账 app 一般只专注记录收入和支出,操作也会更简单,各有优劣吧
    @ybnsjl beancount 用习惯了,还是文本操作最舒服
    @7gugu 感谢推荐,"记账 app" 我电脑上安装的有哈,功能非常丰富,也是很赞的作品。
    CasualYours
        11
    CasualYours  
    OP
       Dec 21, 2021
    @CasualYours 手误:"记账 app" -> "Pixiu 记账"
    guyskk0x0
        12
    guyskk0x0  
       Dec 21, 2021
    支持👍,我是每个月用 beancount 记账&对账一次
    lklzm
        13
    lklzm  
       Dec 24, 2021
    我觉得早就该出现的东西总算出现了,支持支持
    xiaowzp
        14
    xiaowzp  
       Feb 24, 2022
    界面很漂亮,已经用上,感谢 ⭐
    peerless
        15
    peerless  
       Apr 19, 2022 via iPhone
    反馈个问题,群晖是 arm 架构的,貌似不支持这个
    CasualYours
        16
    CasualYours  
    OP
       Apr 21, 2022
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3195 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 13:47 · PVG 21:47 · LAX 06:47 · JFK 09:47
    ♥ Do have faith in what you're doing.