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

2021-12-21 10:34:15 +08:00
 CasualYours

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

上手难度大

便捷性不足

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

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

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

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

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

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

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

Love the world.

3670 次点击
所在节点    分享创造
16 条回复
wb129945130
2021-12-21 13:08:09 +08:00
看起来不错
MCVector
2021-12-21 13:22:55 +08:00
不错呀,我一般一个月通过银行流水导入一次,使用 beancount-import. 需要手动记录的状况一般就只有现金了。
ddllzz
2021-12-21 13:31:08 +08:00
👍
Nasei
2021-12-21 13:40:08 +08:00
支持一个, 我也用 beancount

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

我觉得 beancount 的用户应该主要是程序员吧,所以你说的那些问题其实都不是什么问题
CasualYours
2021-12-21 14:25:14 +08:00
@wb129945130
@MCVector
@ddllzz
感谢支持 ~
CasualYours
2021-12-21 14:28:34 +08:00
> beancount 的用户应该主要是程序员吧

@Nasei 我之前也是这个想法,但在写过一篇 beancount 的介绍文章后,也经常收到一些非程序员的邮件沟通。beancount 对于大多数人上手门槛还是太高的。
d873139022
2021-12-21 15:06:37 +08:00
悄咪咪嫖了一眼,感觉跟记账 app 的记账方式基本完全不一样,哈哈哈
ybnsjl
2021-12-21 15:17:05 +08:00
界面挺漂亮的。害,我都是每次消费完,人工手动纯文本记录的
7gugu
2021-12-21 15:54:49 +08:00
看起来不错👍。最近在尝试使用"Pixiu 记账"这个 App ,年度订阅制,支持在 Mac 和 iPhone 上记账,感觉楼主也可以试试看,恰好可以满足你要的导入第三方账单的需求。不过这个 App 貌似是不支持 API 接入的,这个可能是弊端。(不是广告,单纯就是推荐😂)
CasualYours
2021-12-21 17:58:54 +08:00
@d873139022 记账 app 一般只专注记录收入和支出,操作也会更简单,各有优劣吧
@ybnsjl beancount 用习惯了,还是文本操作最舒服
@7gugu 感谢推荐,"记账 app" 我电脑上安装的有哈,功能非常丰富,也是很赞的作品。
CasualYours
2021-12-21 18:00:01 +08:00
@CasualYours 手误:"记账 app" -> "Pixiu 记账"
guyskk0x0
2021-12-21 21:44:04 +08:00
支持👍,我是每个月用 beancount 记账&对账一次
lklzm
2021-12-24 14:52:40 +08:00
我觉得早就该出现的东西总算出现了,支持支持
xiaowzp
2022-02-24 13:50:09 +08:00
界面很漂亮,已经用上,感谢 ⭐
peerless
2022-04-19 13:39:42 +08:00
反馈个问题,群晖是 arm 架构的,貌似不支持这个
CasualYours
2022-04-21 17:29:30 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/823477

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX