## 📌 项目简介 本项目是一个基于 **FastAPI + Next.js** 构建的工单管理系统,支持用户提交工单、实时聊天沟通、权限控制等功能。 系统采用前后端分离架构,并集成 **JWT 身份认证 + WebSocket 实时通信**,模拟企业级客服/工单处理流程。 适用于: - 客服系统 - IT 支持系统 - 企业内部问题反馈平台 --- ## 🚀 功能亮点 - 🔐 用户注册 / 登录(JWT认证) - 👤 权限控制(普通用户 / 管理员) - 🎫 工单创建与管理 - 💬 实时聊天(WebSocket) - 📜 聊天记录持久化(数据库) - 📡 前后端分离架构 - 🎨 现代化管理后台 UI - 🔄 多用户实时消息广播 --- ## 🧱 技术栈 ### 后端 - FastAPI - SQLAlchemy - SQLite(支持扩展 MySQL) - JWT(身份认证) - WebSocket(实时通信) ### 前端 - Next.js(React) - TypeScript - WebSocket API - Fetch API ### 架构 - RESTful API - 前后端分离 --- ## 🏗️ 系统架构 前端(Next.js) ↓ HTTP / REST API 后端(FastAPI) ↓ 数据库(SQLite) 实时通信: 前端 ⇄ WebSocket ⇄ 后端 --- ## 📂 项目结构 ### 后端(fastapi-demo)
fastapi-demo/ ├── main.py ├── models.py ├── schemas.py ├── database.py ├── utils.py
### 前端(ticket-web)ticket-web/ ├── app/ ├── components/ ├── lib/request.ts
--- ## ⚙️ 本地运行 ### 1️⃣ 启动后端 ```bash cd fastapi-demo pip install -r requirements.txt uvicorn main:app --reload访问: http://127.0.0.1:8000
2️⃣ 启动前端
cd ticket-web npm install npm run dev
访问: http://localhost:3000
🔐 登录说明
登录成功后返回 JWT Token:
- 用于接口鉴权(Authorization: Bearer token)
- WebSocket 连接通过 query 传递 token
ws://127.0.0.1:8000/ws/{ticket_id}?token=你的token📸 项目示例图
screenshots/ ├── tickets.png ├── admin.png ├── chat.png
📈 项目亮点
- 使用 WebSocket 实现实时聊天(非轮询)
- 基于 JWT 的统一身份认证体系
- 支持多用户按工单隔离聊天
- 前后端完全解耦
- 具备基础权限管理能力
🔮 后续优化
- 消息未读提醒
- 工单状态流转(待处理 / 已完成)
- 文件上传(附件支持)
- Docker 部署
- 引入 Redis 提升性能
- AI 自动回复(智能客服)
👨💻 作者
lijiahao
如果这个项目对你有帮助,欢迎点个 ⭐ Star 支持一下!
前往仓库https://github.com/jilijhao/ticket-system-backend