项目地址
项目特色
- 数据完全自主,支持本地化部署,可使用编译好的 docker 镜像部署在自己的 NAS 或云服务器上
- 支持多人协助,将账本分享给其它家庭成员,和其它家庭成员一起记账记事,且支持针对家庭成员账本权限管理(目前支持:账本:编辑、删除、账目:编辑删除)
- 跨平台支持(目前仅测试 IOS 端及 Android 端)
- 深浅色主题支持,及几种预置的颜色主题
- 基于 MIT 协议,项目完全开源
项目介绍
- 客户端基于 flutter 开发,理论上支持跨平台(目前仅测试了 IOS 与 android 端,release 中仅编译了 windows 、linux 、android 三个平台二进制文件)
- 后端同步服务基于 nodejs+typescript+nestjs ,支持本地托管,可托管在 NAS 上(需支持 docker )或自己的云服务器上,由于整个数据同步采用日志同步的方式,故而后端同步服务仅保存数据日志及其它少量用户数据,无太多密集 CPU 运算,所以即使配置很低的机器也可以正常运行使用;
项目开发历程
整个项目于使用 cursor 开发大概耗时 2 个月,其实主要开发时间大约 2~3 周应该就能完成,中间经过了好几次重构,还经历过一次推翻重来;
第一版(已经废弃)
本来采用调用后端接口的方式:所有数据存在服务端,即所有数据都是客户端都通过 API 调用获取展示,这样的话要有公网 IP 或需要通过内网穿透技术将后端服务暴露出来,在外面使用时体验不是很好且后端服务若宕机,整个客户端即处于不可用的状态,也考虑过使用客户端缓存,但是这样做整个设计就复杂了,旧版客户端地址https://github.com/clssw1004/clsswjz-app
第二版
本地存储有完整数据,后端仅暴露同步、鉴权等接口,在需要时进行数据同步,数据同步契机如下:
- 有新增行为时
- APP 启动时
这样后端服务即使无法公网访问也可正常使用,只需要在后端服务可访问时同步数据即可;
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/1135136
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.