# 记账本
个人开发的简易记账应用,前端基于 **Vue 3** + **Tailwind CSS**,后端采用 **Flask** 与 **SQLite**。项目既可以在浏览器中运行,也能通过 PyWebView 打包为桌面程序,适合学习和自用。
## 功能概览
- 邮箱验证码登录
- 新增、编辑、删除账单
- 自定义收支分类
- 查看分类统计图表
## 本地运行(直接复制全部代码粘贴到终端即可启动/打包项目)
### 进入项目根目录终端执行(确保存在node和python坏境)
```bash
cd backend
pip install -r requirements.txt
cd ../frontend
npm install
npm run build
xcopy dist\* ..\backend\frontend_dist\ /E /I /Y
cd ../backend
python run.py
```
### 在backend目录下执行以下命令可打包项目为.exe文件
```bash
pyinstaller ^
--onefile ^
--windowed ^
--name jz_app ^
--icon app.ico ^
--add-data "app;app" ^
--add-data "frontend_dist;frontend_dist" ^
run.py
```
执行完毕后`backend/dist` 目录会提供 Windows 可执行文件 `jz_app.exe`,无需安装环境即可启动。
## 数据存储位置
开发模式下数据库文件位于 `backend/app/db.sqlite3`。打包运行时,数据会保存到用户主目录 `~/.jizhang/db.sqlite3`,关闭应用后数据依然存在。
## 已修复问题
- 缺少收支类型定义字段
- 修改“添加账单”页面的分类时编辑接口不适配
- 列表账单页面:排序未调整,编辑和删除未连接后端,“所有时间”下拉列表改为“所有时间”
- 登录流程及导航栏 UI 优化
- 图表分析页面的分类统计图调整
- 登录验证码五分钟后自动失效
## 个人开发声明
本项目为个人学习和兴趣所作,代码和功能仍在持续完善中,暂不保证适用于生产环境。如有建议或问题,欢迎提出。