Skip to content

The back-end part of an accounting tool based on Flutter and Gin's front-end separation

License

Notifications You must be signed in to change notification settings

ZiRunHua/LeapLedger

Repository files navigation

GitHub License GitHub go.mod Go version GitHub Actions Workflow Status GitHub Release Docker Pulls Go Report Card GitHub stars

LeapLedger

English | 简体中文

LeapLedger是一个的前后端分离免费开源的记账软件,flutter带来丝滑流畅的使用体验,在未来轻松扩展至iOS、Mac和Windows,服务端使用Gin框架,基于NatsMysqlRedis实现,带来快速的响应和稳定的服务。使用docker即可快速部署和构建客户端安装包。

Description Description Description Description Description

客户端

flutter客户端项目传送:https://github.com/ZiRunHua/LeapLedger-App

最新体验Android安装包下载:https://github.com/ZiRunHua/LeapLedger-App/releases/tag/v1.0.0 (数据不定期删除)

目录

我们有

  • 📱基于Flutter的强大架构,流畅的使用体验,未来轻松扩展至iOS、Mac和Windows

  • 🐳无论是服务器部署还是客户端打包,一切通过Docker搞定⛱️

功能

  • 👨‍👩‍👧‍👦共享账本,独立记账的同时将记录同步至你的情侣和家庭账本

  • ⏲️定时记账,每月的房租、通讯费费等固定支出,手动记录太麻烦,没问题我们有

  • 💳每月只想处理一次账本,没问题我们可以导入支付宝和微信账单

除了这些我们还有

  • 📚多账本管理和🌍时区账本
  • 清晰的视图来了解近期的情况
  • 轻松浏览的记录和图表 📊

API服务

我们有一个快速响应和稳定的API服务

  • 🛡️基于Gin中间件的账本鉴权和JWT身份认证确保安全

  • ⚡基于Nats的异步和事件驱动带来更快的响应

  • 📫Outbox模式,在异步的同时确保数据的一致性🎯

  • 💾死信队列保证消息不丢失,提高系统的稳定性

  • 🔄基于Gorm的数据库更新和初始化,保证API服务的无缝升级

运行/部署

克隆项目

git clone https://github.com/ZiRunHua/LeapLedger.git

首次先启动mysql

docker-compose up -d leap-ledger-mysql

查看mysql日志,待显示ready for connections再执行docker-compose up -d

docker-compose logs -f leap-ledger-mysql
docker-compose up -d

访问http://localhost:8080/public/health 验证服务

如果不想依赖Docker,可以修改./config.yaml文件中的mysql、nats和redis的请求地址等信息后直接在本地运行

客户端打包详见:https://github.com/ZiRunHua/LeapLedger-App

构建镜像

docker/Dockerfile可以构建携带go编译环境的镜像,但显然go的运行只需要二进制文件即可,所以你可以构建一个最小镜像

最小镜像

docker build -t xiaozirun/leap-ledger:build -f docker/Dockerfile.build .

2345端口的远程调试镜像

docker build -t xiaozirun/leap-ledger:debug -f docker/Dockerfile.debug .

测试镜像

docker build -t xiaozirun/leap-ledger:test -f docker/Dockerfile.test .

请注意镜像标签的不同

API文档

采用了RESTful API设计风格,可以选择查看以下某种形式的文档

协议

协议GNU Affero General Public License v3

可以用来学习或个人使用,不得商业使用

贡献

LeapLedger项目仍在初期开发阶段,许多功能和细节还在不断完善中。

我们欢迎任何形式的贡献,包括但不限于:

  • 代码贡献: 修复 bug、开发新功能、优化代码、编写测试等。

  • 问题反馈: 提交 bug 报告、提出改进建议等。

如果您对LeapLedger感兴趣,请随时加入我们的社区并为LeapLedger的发展做出贡献。

我们会在develop分支进行功能开发和调整,而main分支则用于发布稳定版本。

联系我

邮箱 [email protected]

致谢

感谢我的朋友尤同学帮我测试,这节省了我非常多的精力非常非常感谢。

Stargazers over time

Stargazers over time