LeapLedger
is a free and open-source accounting software with a decoupled front-end and back-end. Powered by Flutter
, it provides a smooth and seamless user experience, easily extending to iOS, Mac, and Windows in the future. The server is built using the Gin
framework, implemented with NATS
, MySQL
, and Redis
, offering fast responses and stable services. Deployment and building of client installation packages can be quickly achieved using Docker
.
Flutter client project transfer: LeapLedger-App
Download the latest Android installation package: v1.0.0. Data is periodically deleted, please deploy the server for usage.
- What We Have
- Running/Deployment
- API Documentation
- Protocol
- Contributions
- Contact Me
- Acknowledgements
-
📱 A powerful architecture based on Flutter, providing a smooth user experience, easily extendable to iOS, Mac, and Windows in the future.
-
🐳 Whether it's server deployment or client packaging, everything is handled through Docker. ⛱️
-
👨👩👧👦 Shared ledgers that sync records with your partner and family while maintaining independent bookkeeping.
-
⏲️ Scheduled bookkeeping for fixed monthly expenses like rent and communication fees—no more manual entry hassle!
-
💳 Only want to handle the accounts once a month? No problem, we can import bills from Alipay and WeChat.
In addition to these, we also have:
- 📚 Multi-ledger management and 🌍 timezone-ledgers.
- Clear views to understand recent situations.
- Easily browse records and charts. 📊
We have a fast, responsive, and stable API service.
-
🛡️ Ledger authentication based on the Gin middleware and JWT identity verification ensures security.
-
⚡ Asynchronous and event-driven architecture based on NATS provides faster responses.
-
📫 The Outbox pattern ensures data consistency while operating asynchronously. 🎯
-
💾 Dead-letter queues guarantee message retention, enhancing system stability.
-
🔄 Database updates and initialization based on
Gorm
ensure seamless API service upgrades.
Clone the project:
git clone https://github.com/ZiRunHua/LeapLedger.git
First, start MySQL:
docker-compose up -d leap-ledger-mysql
Check the MySQL logs and wait for ready for connections before executing docker-compose up -d
:
docker-compose logs -f leap-ledger-mysql
docker-compose up -d
Access http://localhost:8080/public/health to verify the service.
If you don't want to rely on Docker, you can modify the request addresses of mysql, nats, and redis in the ./config.yaml file and run it locally
For client packaging details, visit: https://github.com/ZiRunHua/LeapLedger-App
The docker/Dockerfile
can build an image with a Go compilation environment. However, since Go only needs the binary files to run, you can build a minimal image.
Minimal image:
docker build -t xiaozirun/leap-ledger:build -f docker/Dockerfile.build .
Remote debugging image on port 2345:
docker build -t xiaozirun/leap-ledger:debug -f docker/Dockerfile.debug .
Testing image:
docker build -t xiaozirun/leap-ledger:test -f docker/Dockerfile.test .
Please note the differences in image tags.
Adopting a RESTful API design style, you can choose to view the documentation in the following formats:
The License is GNU Affero General Public License v3
It can be used for learning or personal purposes, but not for commercial use.
The LeapLedger project is still in its early development stage, and many features and details are continuously being refined.
We welcome contributions in any form, including but not limited to:
- Code contributions: fixing bugs, developing new features, optimizing code, writing tests, etc.
- Issue feedback: submitting bug reports, suggesting improvements, etc. If you're interested in LeapLedger, feel free to join our community and contribute to its development.
We will develop and adjust features in the develop
branch, while the main
branch is for releasing stable versions.
Email: zeng807046079@gmail.com
Thanks to my friend You for testing, which saved me a lot of effort. I really appreciate it!