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

好资源 Jul 18, 2024

生财有迹(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

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 脚本中:

# 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 build
npm run start

项目除了提供 start 命令外,还包含其他与 pm2 相关的命令:

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

如何开发?

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

# 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 辅助分析功能等。

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

常见问题

为何开启这个项目?

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

跟记账应用有何区别?

传统记账应用主要关注日常收支明细,适合学生等收入有限人群;而「生财有迹」专注于已形成的资产存量,帮助用户了解"现在拥有什么"(现状与未来),而非过往的支出记录(历史)。这种设计更符合在职人士的理财需求,让用户把精力集中在资产的整体规划和增长上。

如何获取汇率 API KEY?

为了获取实时汇率数据,本项目接入了 ExchangeRate-API 服务。您可以:

  1. 访问 ExchangeRate-API 官网 注册免费账号;
  2. 获取 API KEY 并在服务的「设置」中填写;

ExchangeRate-API 支持免费使用,其版特点是:

  • 汇率数据每日更新一次;
  • 每月可调用 1500 次 API;
  • 支持主流货币转换;

注:若未设置 API KEY,系统将使用 2025 年 2 月 15 日的默认汇率数据。

未来有哪些规划?

生财有迹不仅仅是一个资产追踪工具,更期望成为用户的智能财富助手。未来的发展规划主要包括:

  • 知识沉淀:支持用户记录个人的理财心得、投资感悟,形成专属的财富知识库;
  • AI 赋能
    • 结合 RAG (检索增强生成) 技术,让 AI 基于用户的历史记录和知识提供更精准的建议;
    • 引入智能 Agent 及信息过滤体系,为用户提供更匹配的个性化财务规划和投资建议;
    • 持续更新,使得用户可以选择合适的大语言模型,提升 AI 助手的能力;
  • 安全与隐私:确保用户数据的绝对安全性,打造一个自由且私密的财富管理环境;
  • 持续进化:根据用户反馈不断优化功能,让系统随着用户的使用逐步成长,提供越来越智能的服务;

如何快速安装依赖?

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

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 为我们提供了一种简单且直观的方式来管理数据库关系。它的灵活性和功能丰富性使得我们能够轻松实现复杂的数据操作和查询。

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

Tags

nicejade

轩帅,字琼璞,逍遥自在轩城主,晚晴幽草轩轩主,静轩之别苑阁主,悠然宜想亭主持。

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.