项目简介
校园二手交易系统是一个基于Django 5.2框架开发的智能二手交易平台,专为校园场景设计。系统集成了AI协同过滤推荐算法、WebSocket实时通讯、完整的商品审核机制等先进功能,为校园师生提供安全、便捷的二手物品交易服务。
项目特点
- 🤖 AI智能推荐: 基于协同过滤算法的个性化商品推荐
- 💬 实时通讯: WebSocket实时私聊,QQ式聊天界面
- 📊 数据可视化: Chart.js图表展示交易分析
技术栈
后端技术
- Django Channels 4.0: WebSocket支持
- SQLite: 数据库(可以无缝切换成mysql)
购买联系:alex522622
项目预览
部分前台页面
前台首页:
我的商品:
我的订单:
通知中心:
聊天界面:
部分后台页面:
后台管理_商品管理
商品审核:
后台管理_交易分析:
技术架构
系统架构图
┌─────────────────────────────────────────────┐│ 用户浏览器 ││ (Chrome/Edge/Firefox/Safari) │└─────────────────┬───────────────────────────┘ │ ├─── HTTP/HTTPS (页面请求) ├─── WebSocket (实时通讯) └─── Ajax (动态加载) │┌─────────────────▼───────────────────────────┐│ Daphne ASGI服务器 ││ (127.0.0.1:8000) │└─────────────────┬───────────────────────────┘ │ ┌─────────────┼─────────────┐ │ │ │ ▼ ▼ ▼┌────────┐ ┌──────────┐ ┌──────────┐│ HTTP │ │WebSocket │ │ 静态 ││ 请求 │ │ 通道 │ │ 文件 │└───┬────┘ └────┬─────┘ └────┬─────┘ │ │ │ ▼ ▼ ▼┌─────────────────────────────────────┐│ Django 应用层 ││ ┌──────────┐ ┌──────────┐ ││ │ 视图层 │ │ 消费者 │ ││ │ (Views) │ │(Consumer)│ ││ └────┬─────┘ └────┬─────┘ ││ │ │ ││ ┌────▼─────────────▼─────┐ ││ │ 业务逻辑层 │ ││ │ (Services/Models) │ ││ └────┬───────────────────┘ ││ │ ││ ┌────▼───────────────────┐ ││ │ 数据访问层(ORM) │ ││ └────┬───────────────────┘ │└───────┼─────────────────────────────┘ │ ▼┌─────────────────┐│ SQLite数据库 ││ (db.sqlite3) │└─────────────────┘
应用模块划分
apps/├── accounts/ # 用户认证模块├── products/ # 商品管理模块├── orders/ # 订单交易模块├── messages_app/ # 消息通讯模块├── recommendations/ # 推荐算法模块└── admin_panel/ # 管理后台模块
功能模块
前台系统
1. 用户系统
2. 商品功能
3. 交易功能
4. 通讯功能
5. 推荐系统
管理后台
1. 数据仪表盘
- 核心指标: 活跃用户、新增商品、交易额、AI转化率
2. 用户管理
3. 商品管理
4. 商品审核
5. 订单管理
6. 交易分析
数据库设计
核心数据表
1. User (用户表)
字段:- username: 用户名(唯一)- email: 邮箱(唯一)- password: 密码(加密)- student_id: 学号- college: 学院- phone: 手机号- avatar: 头像- bio: 个人简介- campus_location: 校区位置- credit_score: 信用分数- is_active: 是否激活- is_staff: 是否管理员- created_at: 创建时间
2. Category (商品分类表)
字段:- name: 分类名称- icon: 图标类名- description: 描述- is_active: 是否启用- order: 排序
3. Product (商品表)
字段:- title: 商品标题- description: 商品描述- price: 价格- seller: 卖家(外键User)- category: 分类(外键Category)- condition: 成色- status: 状态(available/reserved/sold/removed)- review_status: 审核状态(pending/active/rejected)- location: 交易地点- views_count: 浏览次数- favorites_count: 收藏次数- is_featured: 是否推荐- created_at: 发布时间- updated_at: 更新时间
核心功能详解
1. 协同过滤推荐算法
算法原理
基于物品的协同过滤(Item-based Collaborative Filtering):
相似度计算
defcalculate_similarity(product1, product2): score = 0# 1. 分类相同 +50分if product1.category == product2.category: score += 50# 2. 价格相近 +30分 price_diff = abs(product1.price - product2.price)if price_diff < 100: score += 30elif price_diff < 500: score += 15# 3. 成色相同 +20分if product1.condition == product2.condition: score += 20return score
推荐流程
1. 获取用户浏览历史 ↓2. 找出浏览过的商品 ↓3. 计算与其他商品的相似度 ↓4. 按相似度排序 ↓5. 返回Top N推荐结果
2. WebSocket实时通讯
技术实现
- Django Channels: WebSocket支持
- InMemoryChannelLayer: 内存通道层(开发环境)
消息流程
用户A发送消息 ↓WebSocket → ChatConsumer ↓保存到数据库 ↓通过Channel Layer广播 ↓用户B的WebSocket接收 ↓前端渲染消息
连接管理
// 前端连接const chatSocket = new WebSocket('ws://' + window.location.host + '/ws/chat/' + conversationId + '/');chatSocket.onmessage = function(e) {const data = JSON.parse(e.data);// 渲染消息};
3. 商品审核机制
审核流程
用户发布商品 ↓状态: pending (待审核) ↓创建"商品审核中"通知 ↓管理员审核 ├─ 通过 → status: active → 创建"审核通过"通知 └─ 驳回 → status: rejected → 创建"审核未通过"通知(含理由)
审核状态
通知推送
# 审核通过Notification.objects.create( recipient=product.seller, notification_type='product_approved', title='商品审核通过', content=f'恭喜!您发布的商品《{product.title}》已通过审核...', related_product=product)# 发送WebSocket通知NotificationService.send_realtime_notification(product.seller.id)
4. Ajax动态加载
实现方式
// 前端请求fetch(`/api/products/?page=${page}&sort=${sort}`) .then(response => response.json()) .then(data => {// 渲染商品卡片 data.products.forEach(product => { container.innerHTML += createProductCard(product); }); });
后端API
defproducts_api(request): page = int(request.GET.get('page', 1)) sort = request.GET.get('sort', 'latest')# 排序逻辑if sort == 'price_high': queryset = queryset.order_by('-price')elif sort == 'price_low': queryset = queryset.order_by('price')# 返回JSONreturn JsonResponse({'products': products_data,'has_next': has_next, })
安装部署
访问系统
- 前台: http://127.0.0.1:8000
- 管理后台: http://127.0.0.1:8000/admin-panel/
手动安装
1. 创建虚拟环境
# Windowspython -m venv envenv\Scripts\activate# Linux/Macpython3 -m venv envsource env/bin/activate
2. 安装依赖
pip install -r requirements.txt
3. 数据库迁移
python manage.py makemigrationspython manage.py migrate
4. 启动服务器
daphne -b 127.0.0.1 -p 8000 config.asgi:application
使用指南
前台用户操作
注册登录
浏览商品
发布商品
购买商品
私聊卖家
管理员操作
登录后台
- 访问 http://127.0.0.1:8000/admin-panel/
审核商品
管理用户
查看数据分析
API接口
商品API
获取商品列表
GET /api/products/参数: - page: 页码(默认1) - sort: 排序(latest/price_high/price_low)响应:{"products": [ {"id": 1,"title": "iPhone 13","price": "3999.00","status": "available","main_image": "/media/products/product_1.jpg","seller_name": "user001","seller_college": "计算机学院","location": "东区宿舍" } ],"has_next": true,"current_page": 1}
消息API
获取未读消息数
GET /messages/api/unread-count/响应:{"count": 5}
管理后台API
获取待审核商品数
GET /admin-panel/review/pending-count/响应:{"count": 3}
项目亮点
技术亮点
业务亮点
设计亮点
技术支持
文档资源
支持服务
联系方式
版权声明
知识产权
使用许可
总结
项目优势
- 技术先进: Django 5.2 + WebSocket + AI推荐
适用场景
学习价值