跳转至

printhome

暂无简介,欢迎浏览仓库了解更多。

项目信息
仓库 https://github.com/Maicarons/printhome
主要语言 Python
Stars 1
类型 原创项目
许可证 AGPL-3.0
最近更新 2025-05-14

PrintHome 打印零售商城

这是一个专注于打印服务的在线商城应用。用户可以在应用中注册登录,创建打印订单,上传打印内容,追踪订单处理状态,获得打印材料领取位置。

主要功能

  • 用户账号管理
  • 手机号/邮箱注册和登录
  • 账号找回功能
  • 个人信息管理
  • 订单管理
  • 创建打印订单
  • 上传打印文件(自动转PDF)
  • 自动统计打印页数
  • 订单状态追踪
  • 支付系统
  • 微信支付集成
  • 支付宝支付集成
  • 支付状态实时更新
  • 管理员后台
  • 订单信息查看
  • 打印文件下载
  • 订单状态管理
  • 用户管理
  • 通知系统
  • 订单状态更新通知
  • 支付成功邮件通知
  • 打印完成提醒

技术架构

  • 前端:Streamlit
  • 用户认证:Streamlit-Authenticator
  • 响应式界面
  • 实时状态更新
  • 后端:FastAPI
  • RESTful API
  • 异步处理
  • WebSocket 实时通信
  • 数据存储
  • 主数据库:MySQL
  • 缓存:SQLite
  • 文件处理
  • PDF 转换:PyPDF2
  • 图片处理:pdf2image
  • 支付集成
  • 支付宝:python-alipay-sdk
  • 微信支付:wechatpy

项目结构

printhome/
├── backend/             # FastAPI 后端
│   ├── api/            # API 路由
│   ├── core/           # 核心配置
│   ├── db/            # 数据库模型和工具
│   ├── schemas/       # Pydantic 模型
│   └── services/      # 业务逻辑
├── frontend/           # Streamlit 前端
│   ├── pages/         # 页面组件
│   ├── components/    # UI 组件
│   └── utils/         # 工具函数
├── scripts/            # 脚本文件
├── tests/              # 测试文件
├── .env.example        # 环境变量示例
├── requirements.txt    # 项目依赖
└── README.md          # 项目文档

开发计划

  1. 基础架构搭建
  2. 项目结构初始化
  3. 数据库设计
  4. API 接口设计
  5. 用户系统实现
  6. 注册登录功能
  7. 用户认证
  8. 个人信息管理
  9. 文件处理系统
  10. 文件上传
  11. PDF 转换
  12. 页数统计
  13. 订单系统
  14. 订单创建
  15. 状态管理
  16. 通知系统
  17. 支付系统
  18. 支付接口集成
  19. 支付流程优化
  20. 管理后台
  21. 订单管理
  22. 用户管理
  23. 系统监控

环境要求

  • Python 3.8+
  • MySQL 8.0+
  • 支付宝开发者账号
  • 微信支付商户号

项目运行指南

  1. 环境准备

    ## 克隆项目
    git clone https://github.com/yourname/printhome.git
    cd printhome
    
    ## 安装依赖
    pip install -r requirements.txt
    
    ## 复制环境变量文件
    cp backend/.env.example backend/.env
    

  2. 数据库初始化

    ## 创建MySQL数据库
    mysql -u root -p -e "CREATE DATABASE printhome;"
    
    ## 运行迁移脚本
    python scripts/init_db.py
    

  3. 启动服务

    ## 启动后端服务
    uvicorn backend.main:app --reload --port 8000
    
    ## 启动前端服务
    streamlit run frontend/main.py
    

调试与测试

  1. 常见问题排查
  2. 端口冲突:检查8000和8501端口是否被占用
  3. 数据库连接失败:确认.env文件中的数据库配置
  4. 支付回调异常:检查ngrok等内网穿透工具配置

  5. 测试方法

    ## 运行单元测试
    pytest tests/
    
    ## 接口测试(需安装httpie)
    http POST http://localhost:8000/api/v1/auth/register email=test@example.com password=123456
    

许可证

MIT License