setzexe/CyFi
GitHub: setzexe/CyFi
一款基于 Flask 构建的手动个人财务追踪器,让用户在统一仪表板中管理账户、交易和周期性账单。
Stars: 0 | Forks: 0
# CyFi - Cyberseverance 财务追踪器
CyFi 是一款手动个人财务追踪器,旨在让预算管理变得简单:创建您自己的账户、手动输入交易、追踪周期性账单,并从单一仪表板查看总计。
## 链接
您可以在此处访问该应用程序:
[CyFi](https://cyfi-9jzy.onrender.com/login)
## 文档
有关此应用程序的文档,其中包含了关于常规开发和网络安全的更多细节,可以在以下位置找到:
[主文档](documentation/documentation.md)
[安全文档](documentation/security.md)
## 功能
- 具有安全密码哈希的用户账户
- 针对每个用户的银行账户追踪
- 手动存款和支出
- 周期性账单管理
- 近期活动和完整的交易历史记录
- 安全功能,如会话保护、CSRF 保护和登录速率限制
- 适用于桌面和移动端的交互式响应式 UI
## 重要安全功能
- 密码在存储前使用 Werkzeug 进行哈希处理
- Session cookies 通过 `HttpOnly`、`SameSite` 以及仅在生产环境中生效的 `Secure` 进行加固
- CSRF tokens 保护表单提交和 API 请求
- 账户仅对用户本身独占
- 由于暴力破解,对登录尝试进行速率限制
## 技术栈
- 后端:Flask, Flask-Migrate, Flask-SQLAlchemy
- 数据库:生产环境中使用 PostgreSQL;本地开发中使用 SQLite
- 前端:HTML, CSS, & JavaScript
- 部署:Render
## 本地设置
可以通过上面的链接运行,也可以从您的 localhost 进行部署。
1. 创建并激活虚拟环境。
2. 使用 `pip install -r requirements.txt` 安装依赖项。
3. 创建一个 `.env` 文件。已提供 `.env.example`。
4. 使用 `flask db upgrade` 运行数据库迁移。
5. 使用 `flask run` 启动应用程序。
## 环境变量
创建一个包含以下值的 `.env` 文件:
- `SECRET_KEY`
- `DATABASE_URL`
**本地开发:** 如果未设置 `DATABASE_URL`,将自动使用 SQLite。
## 部署
CyFi 设置为从 GitHub 部署到 Render。每当 main 更新时,Render 会拉取所有更改并将其更新到构建中。
## 项目说明
- 该应用程序是纯手动的,不连接到任何银行。
- `documentation/security.md` 中的安全文档更深入地解释了实现细节。
## 许可证
本项目供个人和教育使用。
setzexe
标签:Flask, PostgreSQL, Python, Supabase, 个人理财, 多模态安全, 数据可视化, 无后门, 测试用例, 记账工具, 逆向工具