跳转到内容

生财有迹 | 您专属的资产跟踪与分析工具

生财有迹(Wealth Tracker)是一款专注于个人资产分析的应用程序。其核心功能是:全面记录并展示用户的资产状况,帮助用户轻松了解财务现状;运用 AI 能力,结合每种资产的特性和当前环境,提供适宜的财务建议。

生财有迹 - 效果预览

项目愿景

在当今多元化的经济环境中,个人资产管理变得日益重要。它往往分散于各类金融账户和服务中,例如银行存款与理财产品、移动支付平台(如微信支付、支付宝)、公积金、医保账户、货币基金(例如余额宝)、债券、各种股票及基金产品、房地产、贵金属、外部借款(尽量不做此配置🤫)以及其他投资等等(对于部分朋友,或许还有贷款、欠款等负债)。这些账户中的数额在不断变动,使得快速准确地了解个人总资产状况成为一项挑战。

本项目旨在提供一个高效、直观的解决方案,以应对个人资产管理中的分散性和复杂性。生财有迹专注于账户余额及整体数额,避免深陷于单笔收支的琐碎细节。其目标是通过简化操作流程,帮助用户揭示个人资产的整体变化趋势,并通过友好的用户界面,使用户能够轻松记录和洞悉自己的财务信息。如欲了解更多,可移步至博文:生财有迹 | 您专属的资产跟踪与分析工具

核心特性

  • 简洁易用的操作界面:用户可以通过几个简单的步骤快速上手,无需任何复杂的财务知识。
  • 丰富的数据可视化:通过图表和图形,直观展示资产变化,帮助用户轻松掌握财务状况。
  • 本地部署的灵活性:部署在哪里由用户决定,确保数据的私密性、安全性,以及可扩展性。
  • 开源的代码架构:项目的源代码完全开放,欢迎参与贡献,以不断改进和完善工具的功能。

通过这些特性,希望建立一个用户友好、透明且可信赖的个人财分析工具,帮助用户更全面地掌握自己的财务状况。

在线体验

为了让您更直观地了解 生财有迹 的功能和特性,已在服务器上使用 pm2 部署了一个演示版本。该演示环境填充了模拟数据,方便您全面体验各项功能。无论您是想评估工具的实用性,还是出于好奇想一探究竟,欢迎访问以下链接进行体验:

https://fund.lovejade.cn/

请注意,这是一个公共演示环境,因此请勿在其中输入任何真实的个人财务信息。建议您在体验后,考虑按照本文档的指导,在自己的环境中部署和使用”生财有迹”,以确保您的财务数据的隐私和安全。

如果您在使用过程中遇到任何问题或有反馈意见,欢迎通过项目的  GitHub 页面与我们联系。您的宝贵意见将帮助我们不断改进这一工具,以更好地满足用户的需求。

如何使用?

使用 Docker

使用 docker compose

version: '3.8'
services:
wealth-tracker:
image: nicejade/wealth-tracker
container_name: wealth-tracker
ports:
- '8888:8888'
volumes:
- ./data:/app/data
restart: unless-stopped
volumes:
data:

这将在后台启动服务,并且效果与下面的 docker run 命令相同。使用 Docker Compose 可以更方便地管理多个容器,并且配置更易读和维护。

或者 docker run

Terminal window
docker run -d -p 8888:8888 -v "$(pwd)/data:/app/data" nicejade/wealth-tracker

如果您在本地部署,只需打开网址——http://localhost:8888 即可访问。如果在服务器运行,可通过 http://[Server-IP]:8888 来访问,您也可以指定其他端口。

采用 pm2 部署

PM2 是一个强大的生产环境进程管理器,它不仅支持通过命令行启动应用,还可以使用配置文件(通常名为 ecosystem.config.js)来管理复杂的部署场景。为了简化部署流程并确保一致性,本项目已将所有必要的 PM2 配置和启动命令封装到了 npm 脚本中:

Terminal window
# clone project
git clone https://github.com/nicejade/wealth-tracker.git
cd wealth-tracker
# globally install pm2 pnpm & lerna
npm i pm2 pnpm lerna -g
# install dependencies(client & server)
pnpm i
# start your service
npm run deploy

除了 deploy 命令,项目还提供了其他几个常用的 npm 脚本:

  • npm run start: 使用 PM2 启动应用;
  • npm run stop: 停止 PM2 管理的应用;
  • npm run restart: 重启应用;
  • npm run logs: 查看应用日志。

如何开发?

说明用户在安装和使用前,需要准备的一些先决条件,譬如:您需要安装或升级 Node.js(>= 16.*),推荐使用 PnpmYarn 作为首选包管理工具。本项目采用 pnpm(利用其 workspace 功能)结合 Lerna@8.1 来管理项目依赖,以实现更高效的包管理和工作流程。为确保您的开发环境与项目要求一致,建议您全局安装这两个工具:

Terminal window
# clone project
git clone https://github.com/nicejade/wealth-tracker.git
cd wealth-tracker
# globally install pm2 pnpm & lerna
npm i pm2 pnpm lerna -g
# install dependencies(client & server)
pnpm i
# install & run for client
cd client && pnpm start
# install & run for srever
cd server && pnpm start

本项目客户端采用 Svelte 框架,基于 Vite 所构建,默认 5173 端口,只需打开网址—— http://localhost:5173 即可访问。

命名由来

在项目开发初期,有为应用取中文名为:“财富追踪器”(英文名:Wealth Tracker)。这个名称初看简洁明了,似乎完美契合产品理念。然而,随着开发深入,逐渐显现出其局限性:

  • 概念范畴过广:“财富”一词涵盖范围极广,不仅包括金钱资产,还可能指代时间、知识、经历,甚至是绝美容颜等无形价值。
  • 功能定位不够精准:该应用实际上专注于能被精确计算和记录、且已经形成的有形资产,而非泛泛追踪所有形式的”财富”。

这种认知更新促使重新思考产品定位和命名。偶然想到了两个颇具启发性的成语:“生财有道”和”生财有术”;而应用的核心功能恰恰是记录资产增长的轨迹。基于这一灵感,最终确定将应用命名为”生财有迹”。这个名字巧妙地结合了几个要素:

  1. “迹”与”记”同音,暗示了记录的功能。
  2. “生”与”升”同音,象征着资产的增长。
  3. 整体保留了”生财”的概念,与原有的资产主题保持一致。

“生财有迹”这个新名称不仅准确反映出产品功能定位,传达了产品理念,还蕴含了对用户资产增长的美好祝愿,希望您也会喜欢。

给予支持

生财有迹项目开源且免费,然而设计与编码需耗费时间和精力。如若您对其使用感到满意,请考虑通过以下方式进行小额捐赠:

生财有迹 - 微信赞赏码

微信扫码赞助

Buy Me A Coffee

路线图

”生财有迹”项目正处于积极的设计和研发阶段,致力于在功能丰富与易用性之间寻求平衡,以满足用户日益增长的个人财务管理需求。未来开发重点包括增强数据可视化能力、加强数据安全性、以及提升 AI 辅助分析功能等。

  • 更新资产数据记录;
  • 资产数据分布可视化;
  • 账户变化趋势可视化;
  • 资产变化趋势可视化;
  • 查阅数据记录详情;
  • 修改或销毁记录;
  • 内置多语言支持;
  • 设置阶段性目标;
  • 资产数据安全性;
  • 借助 AI 辅助分析;

常见问题

为何开启这个项目?

知人者智,自知者明:清晰了解自身的资产状况,才能更好地规划未来。面对日益复杂、多元化的资产管理需求,提供一个高效的解决方案尤为关键。本项目旨在为用户提供全面的支持,帮助他们实现更精准的财务规划和明智决策,从而有效促进个人财富的持续增长。

如何快速安装依赖?

推荐使用 pnpm 来安装依赖,执行命令 pnpm i。如遇到网络问题,可使用国内镜像加速(如 阿里云 npmmirror 镜像站),以确保快速顺利完成安装,具体命令如下:

Terminal window
pnpm i --registry=https://registry.npmmirror.com

为何采用 SQLite3 存储数据?

SQLite3 是一款轻量级数据库,无需额外配置,简单易用且高效。由于本项目不需要存储大量数据,SQLite3 非常适合。此外,它支持快速的数据同步和迁移,能够满足项目的灵活性和性能需求。

特别鸣谢

本项目的开发过程中,依赖并受益于以下优秀的开源技术和工具(未包含全部)。它们不仅提供了强大的功能,还促进了项目的高效开发和稳定运行。

  • Svelte: 作为一种新兴的前端框架,Svelte 通过其创新的编译时技术,让我们的 Web 应用更加轻量和高效。它减少了我们需要编写的样板代码,同时提高了运行时的性能。
  • TailwindCSS: 通过提供实用主义的 CSS 类,TailwindCSS 极大地简化了样式设计的过程。它使得我们能够快速构建美观且响应式的用户界面,同时保持代码的清晰和维护性。
  • Vite: 作为一个现代化的前端构建工具,Vite 通过其快速的冷启动和即时的模块热更新,极大地提高了我们的开发效率。它利用了原生 ES 模块特性,使得项目构建更加高效。
  • Flowbite: 提供了一系列预构建的组件和模板,Flowbite 极大地加快了我们的开发流程。它帮助我们快速实现了复杂的用户界面元素,同时保持了代码的可定制性和可维护性。
  • Axios: 作为一个基于 Promise 的 HTTP 客户端,Axios 简化了我们的 Web 应用中与 API 的交互。它的易用性和广泛的功能集使得我们能够轻松处理 HTTP 请求和响应。
  • Day.js: 作为一个轻量级的 JavaScript 日期库,Day.js 提供了直观的 API 来处理日期和时间。它使得我们在应用中处理复杂的日期计算变得简单且可靠。
  • Node.js: 作为一个高效的 JavaScript 运行环境,Node.js 使得服务器端开发变得前所未有的简单和快速。它的事件驱动和非阻塞 I/O 模型极大地提高了我们的应用性能和响应速度。
  • Fastify: 这个高性能的 Node.js Web 框架为我们提供了一个简单且强大的接口来构建 RESTful API。它的低开销和高度可扩展性使得我们的后端服务既快速又稳定。
  • SQLite3: 作为一个轻量级的数据库引擎,SQLite3 为我们提供了一个无需配置的本地存储解决方案。它的简单性和高效性使得开发者在本地部署应用时能够轻松管理数据。
  • Sequelize: 作为一个强大的 ORM 框架,Sequelize 为我们提供了一种简单且直观的方式来管理数据库关系。它的灵活性和功能丰富性使得我们能够轻松实现复杂的数据操作和查询。

在此,对上述技术和工具的开发者和社区,致以崇高的敬意和衷心的感谢❤️。正是得益于他们的卓越贡献,生财有迹才能得以成功构建并持续优化。同时,也要感谢如 ChatGPT、Github Copilot、PoeKimi 等 AI 工具在开发过程中提供的宝贵支持,它们显著提高了工作效率和体验。