接口演示Demo地址
Github地址

介绍

beancount 是一个优秀的开源复式记账工具,在使用方面,fava 提供了很好的可视化体验,但是难以拓展到移动端;本项目旨在将常见的记账行为提取出接口以供网络调用。

本仓库使用 node 进行文本的读写和网络服务支持。

关于 beancount 的一些基本介绍,可以参考 尝试使用 beancount 进行复式记账

配置

config/config.json

title: 账本名称
dataPath: 账本存储位置,初始化账本时使用
operatingCurrency: 账本币种
startDate: 账本创建时间,初始化账本时使用

使用

  1. 安装 python3 环境,下载 beancountpip3 install beancount
  2. 克隆本项目到本地
  3. 切换到项目根目录,执行 node server.js 启动服务(server.js 中执行 init.js,该脚本会在账本不存在时,初始化基本的 beancount 账单结构和账户,你可以在 config/init_data.json 中查看和修改初始内容)
  4. 浏览器访问 http://localhost:3001 访问

本项目中将 账户 默认设置为三级结构:Assets|Incom|Libilities|Expenses|Equity:Type:Name(可使用中文)
Type 在 config/account_cata_list.json 中定义,如需添加,可以修改该文件

可用接口(V1.0 计划开发接口)

  1. GET:/account/valid?key=早餐 查询可用账户
  2. GET:/account/all 查询所有账户(包括账户金额)
  3. POST:/account?account&date 新增账户
  4. POST:/account/close?account&date 关闭账户
  5. GET:/month/stats?year&month 月度统计信息
  6. GET:/entry?type&year&month 查询账单
  7. POST:/entry 记录账单
  8. GET:/stats 账单统计(待实现)
  9. POST:/account/recover?account 账户恢复(待实现)
  10. PUT:/entry 账目修改(待实现)
  11. DELETE:/entry?id= 账目删除(待实现)

Docker 部署

  1. git clone 项目到本地
  2. cd beancount-node-server 切换到项目根目录
  3. docker build -t beancount-node-server . 打包镜像
  4. docker-compose up -d 容器运行

docker-compose.yml 中可修改本地数据挂载目录(默认:/data/beancount)和端口号(默认:10000)