# memeking
**Repository Path**: fbinba3955/memeking
## Basic Information
- **Project Name**: memeking
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-04-03
- **Last Updated**: 2025-04-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 斗图王 - 表情包创建与分享平台
斗图王是一个全栈Web应用程序,用于创建、分享和发现表情包。该应用由Vue.js前端和Flask后端组成,支持表情包的浏览、搜索、下载和标签管理。
## 项目结构
```
memeking/
├── frontend/ # Vue.js前端应用
│ ├── src/ # 源代码
│ │ ├── api/ # API客户端模块
│ │ ├── assets/ # 静态资源
│ │ ├── components/# Vue组件
│ │ ├── config/ # 配置文件
│ │ ├── composables/# 组合式API
│ │ ├── plugins/ # Vue插件
│ │ ├── router/ # Vue Router配置
│ │ ├── views/ # Vue视图/页面
│ │ ├── App.vue # 根组件
│ │ └── main.js # 入口点
│ ├── index.html # HTML模板
│ ├── package.json # 依赖项和脚本
│ └── vite.config.js # Vite配置
└── backend/ # Flask后端应用
├── app.py # 主Flask应用
├── config/ # 配置文件
├── models/ # 数据模型
├── routes/ # API路由
├── services/ # 业务逻辑服务
├── utils/ # 实用工具函数
├── requirements.txt # Python依赖项
└── uploads/ # 上传表情包的文件夹
```
## 功能特点
- 浏览和搜索表情包库
- 按标签分类表情包
- 下载和分享表情包
- 管理员界面进行表情包导入和管理
- AI自动为表情包生成标签
- 支持MySQL数据库存储
## 环境要求
- Node.js (v16+)
- Python 3.8+
- MySQL数据库 (可选)
- npm或yarn
- OpenAI API密钥 (用于AI标签生成)
## 安装说明
### 前端设置
1. 进入前端目录:
```
cd memeking/frontend
```
2. 安装依赖:
```
npm install
```
3. 启动开发服务器:
```
npm run dev
```
4. 前端将在 http://localhost:13966 可用
### 后端设置
1. 进入后端目录:
```
cd memeking/backend
```
2. 创建虚拟环境(推荐):
```
python -m venv venv
source venv/bin/activate # Windows系统: venv\Scripts\activate
```
3. 安装依赖:
```
pip install -r requirements.txt
```
4. 创建.env文件(可从.env.example复制)并配置:
```
# 主要配置
PORT=13955
OPENAI_API_KEY=your_api_key_here
# 数据库配置(MySQL可选)
USE_MYSQL=true
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_DB=db_memeking
```
5. 如果使用MySQL,创建数据库:
```
mysql -u root -p
CREATE DATABASE db_memeking;
```
6. 启动Flask服务器:
```
python app.py
```
7. 后端API将在 http://localhost:13955 可用
## API端点
### 表情包管理
- `GET /api/memes` - 获取所有表情包
- `GET /api/memes/` - 获取特定表情包
- `GET /api/memes/search/tag` - 按标签搜索表情包
- `GET /api/memes/popular` - 获取热门表情包
- `GET /api/latest-memes` - 获取最新表情包
### 标签管理
- `GET /api/tags` - 获取所有标签
- `GET /api/tags/stats` - 获取标签统计数据
- `POST /api/tags/sync` - 同步标签数据
### 上传和导入
- `POST /api/upload` - 上传新文件
- `POST /api/import-files` - 从import目录导入表情包
- `GET /api/uploads/recent-imports` - 获取最近导入的表情包
- `PUT /api/uploads//tags` - 更新表情包标签
## 生产环境部署
### 前端部署
1. 修改API配置:
在 `frontend/src/config/api.js` 中设置生产环境API地址:
```javascript
export const API_BASE_URL = 'http://your-production-api.com';
```
2. 构建前端:
```
cd memeking/frontend
npm run build
```
3. 部署dist目录:
- 可以使用Nginx服务器托管dist目录
- 或者使用其他静态文件托管服务
### 后端部署
1. 为Flask后端设置生产服务器:
```
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:13955 app:app
```
2. 使用Nginx作为反向代理
3. 确保MySQL数据库已正确配置
## 许可证
本项目根据MIT许可证授权。