本项目立项旨在解决普通人记账难以坚持、手机记账 App 常被广告和会员墙打扰、数据上传云端存在隐私顾虑的问题。针对希望管理个人日常开支的中国用户,尤其是注重隐私、希望数据完全留在本机的上班族与学生群体,本项目提供一款打开即用、无需注册登录、无需联网的桌面记账工具。用户可在电脑上快速记录每一笔人民币支出,随时查看账单明细与月度支出走势,帮助养成理财好习惯;所有数据仅保存在本机,不上传任何服务器,在个人财务数据隐私保护方面具有现实意义。
点击空白处退出提示
语言技术
React、TypeScript、Node.js系统类型
Windows行业分类
金融
本项目立项旨在解决普通人记账难以坚持、手机记账 App 常被广告和会员墙打扰、数据上传云端存在隐私顾虑的问题。针对希望管理个人日常开支的中国用户,尤其是注重隐私、希望数据完全留在本机的上班族与学生群体,本项目提供一款打开即用、无需注册登录、无需联网的桌面记账工具。用户可在电脑上快速记录每一笔人民币支出,随时查看账单明细与月度支出走势,帮助养成理财好习惯;所有数据仅保存在本机,不上传任何服务器,在个人财务数据隐私保护方面具有现实意义。
系统包含账单列表、记一笔、月度统计、分类管理四大核心模块,并内置一款贪吃蛇小游戏作为彩蛋。记一笔模块支持录入金额(精确到分)、两级联动选择消费分类、选择日期与填写备注,并对金额范围做校验。账单列表模块按时间倒序展示全部记录,顶部统计全部支出、本月支出与记录笔数,支持按分类筛选、按金额或日期排序、分页浏览,以及编辑和二次确认删除。月度统计模块支持切换月份,展示当月总支出、记录笔数、日均支出,并以环形饼图展示各分类占比,同时用表格列出分类明细。分类管理模块预置 10 大类 44 小类并锁定不可修改,用户可自行新增自定义大类与小类、自选表情图标、改名(自动同步历史账单)与删除(存在记录或子类时禁止删除)。
我负责整个项目的技术选型、架构设计、数据库封装与全部页面开发。项目采用 Electron 44 + React 19 + TypeScript 构建跨平台桌面应用,界面使用 Ant Design 6 组件库,图表使用 ECharts 6,本地数据采用 sql.js(SQLite 的 WebAssembly 版本)。整体分为主进程、预加载脚本(preload)与渲染进程三层,通过 preload 与 contextBridge 安全地向界面暴露接口。技术难点与亮点包括:一是打包后的应用无法读取 WASM 文件,导致「记一笔无法保存」,我改为在 preload 中直接读取本地 WASM 文件并以二进制方式传入渲染进程,彻底解决了该问题;二是数据持久化方案,将 sql.js 数据库整体导出后序列化存入本地存储,实现重启不丢数据,并在数据损坏时自动重建空库、避免应用白屏;三是分类体系的自定义与联动,自定义分类与预置分类动态合并,大类改名时同步更新历史账单与子分类归属,删除前校验是否被账单或子类引用。项目还配套了单元测试、质量门禁脚本与 Windows 安装包打包流程(国内镜像加速)。



评论