全栈校园社交平台 — Vue 3 + Flask + Android + AI | 作者 占俊凡 | 部署配置指南 | 代码索引
| 层级 | 技术栈 | 说明 |
|---|---|---|
| 后端 | Python Flask + SQLAlchemy + SQLite + Socket.IO | RESTful API (100+端点),JWT认证,bcrypt密码哈希 |
| 前端 | Vue 3 (Composition API) + Vite + Element Plus + Tailwind CSS | 毛玻璃拟态UI,11种主题配色,9种帖子特效 |
| 移动端 | Android (Kotlin/Java) + WebView | JPush原生推送,JSBridge交互,应用内更新 |
| AI | DeepSeek V4 Pro | 内容审核、评论巡逻、私信毒性检测、自动发帖 |
| 推送 | JPush (Android) + 163邮箱 SMTP | 双通道互补,iOS/Web端走邮件 |
| 加密 | AES-256-GCM + bcrypt | 敏感字段可逆加密,传输层加密,密码不可逆哈希 |
| 部署 | Nginx 反向代理 + systemd | 一键部署脚本,Let's Encrypt 证书 |
| 模块 | 核心功能 | 技术亮点 |
|---|---|---|
| 用户系统 | 校园密钥注册、JWT 30天登录、单设备强制、个人资料编辑、头像框装饰(8种动/静态)、主题背景(11色)、等级经验值、在线心跳 | Token版本号机制,bcrypt哈希 |
| 内容发布 | 图文/视频帖子(最多9图)、自动压缩(1920px/82%品质)、ffmpeg视频优化、8种文字颜色、9种静态特效(彩虹/发光/霓虹/火焰/极光/日落/海洋/紫罗兰/金色)、匿名发帖、失物招领 | 前端canvas压缩+后端Pillow二次压缩 |
| 社交互动 | 楼中楼评论、@提及、帖子/评论点赞、关注/粉丝、用户私密备注、用户搜索 | Pinia状态管理,WebSocket实时推送 |
| 表白墙 | 月度热门排行、墙帖投票 | 定时任务自动归档 |
| 社团频道 | 用户自建(默认上限3个)、加入/退出、频道主管理 | 频道权限模型 |
| 私信群聊 | 1v1私信(支持图片/视频)、群聊CRUD、邀请码加群、踢人/改名/解散 | Socket.IO实时通信 |
| 投票评选 | 分类投票、审核流程、管理端CRUD | 默认食堂美食/商店评选 |
| 举报系统 | 霸凌举报、内容违规举报、管理端处理 | AES-256-GCM加密存储举报人信息 |
| 心理咨询 | 匿名咨询、管理员回复、评价、导出 | 加密存储,匿名保护 |
| AI管理 | 评论巡逻、私信毒性检测、自动封禁建议、帖子预审(AI快审)、AI自动发帖(可配置话题)、AI操作全量审计日志 | DeepSeek多模型分任务调度 |
| 管理后台 | 数据仪表盘、帖子审核队列(AI快审)、用户管理(封禁/解封/角色变更)、广播推送、AI审核开关、AI发帖配置、AI封禁审批、私信巡查(超管专属) | 二次密码验证,分权管理 |
| 消息推送 | 站内信、JPush(Android)、邮件(iOS/Web)、未读计数 | 三通道互补覆盖 |
| 推广系统 | 落地页管理(/p/tv等)、开关控制 | 管理端动态配置 |
| 安全机制 | AES-256-GCM字段加密、传输加密、bcrypt密码、Flask-Limiter限流、IP封禁、WebSocket洪水防护(CONNECT限流+握手频率控制)、CORS白名单、JWT版本号、管理二次验证 | 纵深防御,7层安全 |
├── backend_flask/ Flask 后端 — 49个文件, 100+ API端点
│ ├── app.py 主入口 + Socket.IO + 初始化
│ ├── config.py 全局配置 (密钥/邮件/CORS/限流/WS防护)
│ ├── models.py SQLAlchemy 数据模型 (用户/帖子/评论/消息等)
│ ├── auth.py 认证蓝图 (/x7k9m/v1/uc/)
│ ├── posts.py 帖子+评论+点赞蓝图 (/x7k9m/v1/fd/)
│ ├── social_api.py 社交蓝图 (/x7k9m/v1/sc/ — 关注/私信/群聊)
│ ├── admin_api.py 管理后台蓝图 (/x7k9m/v1/cp/)
│ ├── campus_api.py 校园管理蓝图 (/x7k9m/v1/cm/)
│ ├── channel_api.py 社团频道蓝图 (/x7k9m/v1/ic/)
│ ├── vote_api.py 投票蓝图 (/x7k9m/v1/vt/)
│ ├── promo_api.py 推广落地页蓝图 (/x7k9m/v1/promo/)
│ ├── quiz_api.py 注册问答蓝图 (/x7k9m/v1/qz/)
│ ├── reports.py 举报蓝图 (/x7k9m/v1/rp/)
│ ├── consult.py 心理咨询蓝图 (/x7k9m/v1/cs/)
│ ├── messages_api.py 站内消息蓝图 (/x7k9m/v1/nx/)
│ ├── ai_moderator.py AI内容审核+巡逻 (19KB)
│ ├── ai_poster.py AI自动发帖 (16KB)
│ ├── ai_review.py AI内容审查
│ ├── deepseek_http.py DeepSeek API 客户端
│ ├── websocket_events.py WebSocket 实时事件处理
│ ├── ws_guard.py WebSocket 连接洪水防护
│ ├── security.py 安全中间件 (限流/IP封禁/XSS防护)
│ ├── encryption.py AES-256-GCM 字段级加解密
│ ├── transport_crypto.py 前后端传输加解密
│ ├── push_jpush.py 极光推送服务端
│ ├── push_email.py 邮件推送 (暗色HTML模板)
│ ├── presence.py 用户在线状态
│ ├── levels.py 等级经验系统
│ ├── storage.py 文件存储管理
│ ├── compress.py 图片压缩 (Pillow)
│ ├── video_optimize.py ffmpeg视频优化
│ ├── monitor.py 服务器监控+邮件报告
│ ├── db_watcher.py 数据库变更监控
│ ├── dbtool.py 数据库命令行工具
│ ├── .env.example 环境变量模板
│ └── nginx-*.conf Nginx配置片段
├── frontend/ Vue 3 前端 — 24页面, 17组件
│ ├── src/views/ 24个页面组件
│ ├── src/components/ 17个通用组件 (common/layout/post/profile)
│ ├── src/stores/ 4个Pinia模块 (user/post/message/consult)
│ ├── src/utils/ 12个工具模块 (api/ws/transport/themeBg...)
│ ├── src/router/ Vue Router 路由配置
│ ├── src/styles/ 3个样式文件 (主样式/帖子特效/移动端适配)
│ ├── public/ 静态资源+5个落地页
│ ├── tailwind.config.js Tailwind主题色配置
│ └── vite.config.js Vite构建配置 (代理/分包)
├── erxiao/ Android 客户端
│ ├── app/src/main/java/com/zjf/erxiao/
│ │ ├── MainActivity.java WebView主Activity
│ │ ├── ErxiaoApp.java Application类
│ │ ├── ErxiaoNativeBridge.java JSBridge (JS↔Native)
│ │ └── ErxiaoJPushReceiver.java JPush推送接收器
│ ├── app/src/main/AndroidManifest.xml
│ └── app/build.gradle v1.0.5, JPush集成
├── 一键部署.sh Linux自动部署 (依赖安装+systemd+Nginx)
├── requirements.txt Python依赖清单
├── 部署配置指南.md 所有配置项说明与获取方式
├── 代码索引.md 所有文件功能说明
├── API端口清单.md 100+ API接口文档
├── 设计风格与主色调.md UI/UX设计系统文档
├── ProfileCover.vue 个人封面组件
├── icon.jpeg 应用图标
└── LICENSE CC BY-NC 4.0
# 后端
cd backend_flask && pip install -r requirements.txt && cp .env.example .env
nano .env # 修改所有密钥 → 参见 部署配置指南.md
python app.py # → http://localhost:8000
# 前端
cd frontend && npm install && npm run dev # → http://localhost:3000
# 一键部署 (Linux)
sudo bash 一键部署.shCC BY-NC 4.0 — ✅ 非商业使用 | ❌ 禁止商用 |