Skip to content

TokyoIAi/CardOps

Repository files navigation

CardOps - 卡片运营管理台

License Python Version

💳 专业的卡片资产管理工具 - 支持卡片、余额、租赁、导出和备份恢复

CardOps 是一款 Apple 风格的桌面端卡片运营管理台,基于 Flask + PyWebView 构建,提供直观的界面和完整的数据管理功能。


✨ 主要特性

  • 🎨 Apple 风格 UI - 简洁美观的界面,统一的设计语言
  • 📊 卡片管理 - 完整的 CRUD 操作,支持搜索和筛选
  • 💰 余额跟踪 - 实时监控余额状态,支持调整记录
  • 📋 租赁管理 - 管理卡片租赁记录,支持收款跟踪
  • 📈 数据分析 - 仪表盘、风险预警、客户汇总
  • 📤 数据导出 - 支持 Excel 格式导出
  • 💾 备份恢复 - 自动/手动数据库备份与恢复
  • 🖥️ 桌面应用 - 单文件 EXE,零依赖部署

📦 安装方式

方式一:便携模式(推荐用于测试)

直接运行 EXE 文件,无需安装:

  1. Releases 下载 CardOps.exe
  2. 双击运行
  3. 数据自动保存到 %LOCALAPPDATA%\CardOps\

方式二:完整安装(推荐用于生产)

使用安装脚本安装到系统目录:

  1. 下载 install_CardOps_v1.1.0.bat
  2. 双击运行安装脚本
  3. 按提示完成安装
  4. 从桌面快捷方式或开始菜单启动

安装位置:%LOCALAPPDATA%\Programs\CardOps\

方式三:从源码运行

# 1. 克隆仓库
git clone https://github.com/yourusername/cardops.git
cd cardops

# 2. 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate

# 3. 安装依赖
pip install -r requirements.txt

# 4. 启动应用
python app.py

访问 http://127.0.0.1:5000 或使用桌面模式:

python desktop.py

🚀 快速开始

首次启动

首次启动时,CardOps 将:

  1. 自动创建数据库(%LOCALAPPDATA%\CardOps\instance\cardops.db
  2. 生成示例数据
  3. 打开桌面窗口(1440x900)

核心功能

卡片管理

  • 查看: 浏览所有卡片,支持搜索和筛选
  • 新增: 点击「新增卡片」填写信息
  • 编辑: 点击操作列的编辑按钮
  • 删除: 点击删除按钮,在确认弹窗中确认

余额管理

  • 查看余额列表和状态
  • 手动调整余额
  • 查看余额历史记录

租赁管理

  • 在卡片详情页查看租赁记录
  • 新增/编辑/删除租赁
  • 跟踪收款情况

数据导出

  • 进入「数据导出」页面
  • 选择导出类型(卡片/租赁/余额/交易)
  • 下载 Excel 文件

备份与恢复

  • 创建备份: 进入「数据维护」,点击「立即备份」
  • 下载备份: 在备份列表中点击下载
  • 恢复备份: 点击恢复按钮并确认
  • 删除备份: 点击删除按钮并确认

⚠️ 恢复操作会自动创建当前数据库的备份,防止数据丢失。


🖥️ 技术栈

  • 后端: Flask 3.0, SQLAlchemy 2.0
  • 前端: Bootstrap 5, DataTables, Chart.js
  • 桌面: PyWebView 6.1
  • 打包: PyInstaller 6.19
  • Python: 3.11+

📁 项目结构

cardops/
├── src/                    # 源代码
│   ├── __init__.py        # Flask 应用工厂
│   ├── config.py          # 配置文件
│   ├── extensions.py      # 扩展初始化
│   ├── path_helper.py     # 路径解析工具
│   ├── seed.py            # 示例数据
│   ├── models/            # 数据模型
│   ├── routes/            # 路由控制器
│   ├── services/          # 业务逻辑
│   ├── templates/         # Jinja2 模板
│   └── static/            # 静态资源
├── assets/                # 资源文件
│   ├── CardOps.ico        # 应用图标
│   ├── CardOps_icon.png   # Logo 图片
│   └── scripts/           # 构建脚本
├── docs/                  # 文档
│   └── CardOps_v1.1-P1_UserGuide.pdf  # 用户指南
├── release/               # 发布文件
│   ├── CardOps.exe        # 便携版 EXE
│   └── install_*.bat      # 安装脚本
├── test/                  # 测试脚本
├── app.py                 # Flask 入口
├── desktop.py             # 桌面模式入口
├── build_exe.bat          # 打包脚本
├── CardOps.spec           # PyInstaller 配置
├── requirements.txt       # Python 依赖
└── README.md              # 本文件

📸 截图

仪表盘

Dashboard

卡片管理

Cards

数据维护

Maintenance


🔧 开发指南

运行测试

# 运行备份恢复测试
python test/test_backup_restore.py

# 运行冻结模式测试
python test/test_frozen_flask.py

# 验证安装包
python test/validate_package.py

打包 EXE

# 使用批处理脚本打包
build_exe.bat

# 或手动运行
python -m PyInstaller --clean CardOps.spec

生成的 EXE 位于 dist/CardOps.exe

生成用户指南 PDF

python assets/scripts/generate_user_guide_pdf.py

生成的 PDF 位于 release/CardOps_v1.1-P1_UserGuide.pdf


🤝 贡献指南

欢迎提交 Pull Request 和 Issue!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

代码规范

  • 遵循 PEP 8 规范
  • 使用 4 空格缩进
  • 添加适当的注释和文档字符串

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


🙏 致谢


📞 联系方式


Made with ❤️ by CardOps Team

About

CardOps: 桌面端卡片运营管理工具,支持卡片 CRUD、租赁、余额管理、导出与数据备份。

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors