✨ InfoGenie 万象口袋
🎨 一个多功能的聚合软件应用 💬
📋 项目概述
InfoGenie 是一个前后端分离的多功能聚合应用,提供实时数据接口、休闲游戏、AI工具等丰富功能。
🌐 部署环境
- 前端部署地址: https://infogenie.shumengya.top
- 后端部署地址: https://infogenie.api.shumengya.top
🏗️ 技术架构
前端技术栈
- 核心框架: React 18.2.0 + React Router DOM 6.15.0
- 样式方案: Styled Components 6.0.7 (CSS-in-JS)
- HTTP客户端: Axios 1.5.0
- UI组件: React Icons 4.11.0 + React Hot Toast 2.4.1
- 状态管理: React Context API
- 构建工具: Create React App
- PWA支持: Service Worker
后端技术栈
- Web框架: Flask 2.3.3 (轻量、灵活、可扩展)
- 数据库: MongoDB + PyMongo 4.5.0 (文档型数据存储)
- 认证机制: JWT Token (PyJWT 2.8.0,7天有效期)
- 密码安全: Werkzeug 2.3.7 (高强度密码哈希)
- 跨域支持: Flask-CORS 4.0.0
- API限流: Flask-Limiter 3.5.0 (防止API滥用)
- 环境配置: python-dotenv 1.0.0
- 邮件服务: 基于SMTP协议的原生实现
架构特点
- 前后端分离: RESTful API架构,无状态通信
- 混合架构: React SPA + 静态HTML页面无缝集成
- 模块化设计: Flask蓝图 + React组件化
- 容器化部署: Docker + docker-compose支持
- 多环境配置: 开发/测试/生产环境分离
🌟 主要功能
📡 60s API 模块
- 热搜榜单: 抖音、微博、猫眼票房、头条、网易云、知乎、HackerNews等实时热搜
- 日更资讯: 60秒读懂世界、必应每日壁纸、历史上的今天、每日国际汇率
- 实用功能: 百度百科词条、公网IP地址、哈希解压压缩、链接OG信息、农历信息、生成二维码、天气预报、EpicGames免费游戏
- 娱乐消遣: 随机唱歌音频、随机发病文学、随机搞笑段子、随机冷笑话、随机一言、随机运势、随机JavaScript趣味题、随机KFC文案
🎮 小游戏模块
- 2048游戏
- 别踩白方块
- 俄罗斯方块
- 移动端优化
- 即点即玩
🤖 AI模型模块
- AI变量命名助手: 智能生成编程变量名
- AI写诗小助手: 基于主题创作诗歌
- AI姓名评测: 姓名寓意分析和评分
- 萌芽币消费系统: 每次AI调用消耗100萌芽币
- 多模型支持: 集成DeepSeek、Kimi等AI服务
- 需要登录验证: JWT Token认证
👤 用户系统
- 邮箱验证注册: QQ邮箱验证码注册登录
- 用户资料管理: 头像、用户名等个人信息
- 签到系统: 每日签到获取经验值和萌芽币
- 等级系统: 基于经验值的用户等级计算
- 萌芽币管理: 虚拟货币系统,用于AI功能消费
- 使用统计: AI调用次数和萌芽币消费记录
🏛️ 架构设计亮点
🔄 混合架构创新
- React SPA核心层: 处理用户认证、全局状态管理和主要导航逻辑
- 静态HTML模块: 大量功能模块使用原生HTML/CSS/JS实现,降低加载时间
- 通信机制: 通过postMessage API实现SPA与静态页面的数据交换
🧩 模块化设计
- 前端组件化: 基于React的原子设计系统,从原子级别到页面级别
- 后端蓝图架构: Flask蓝图实现功能模块解耦,提高可维护性
- 装饰器模式: 横切关注点(认证、萌芽币消费)集中处理
🔒 安全与性能
- 多层次认证: JWT Token + 邮箱验证码双因素认证
- API限流保护: 防止暴力攻击和资源耗尽
- 性能优化: 代码分割、懒加载、PWA缓存策略
- 数据安全: 密码哈希存储、敏感配置外部化
🚀 部署与扩展
- 容器化部署: Docker + docker-compose支持
- 多环境配置: 开发/测试/生产环境分离
- 微服务友好: 模块化设计便于未来微服务拆分
🚀 快速开始
📋 环境要求
- Python: 3.8+
- Node.js: 14+
- MongoDB: 4.0+
- npm: 6.0+
📦 安装依赖
后端依赖
cd InfoGenie-backend
pip install -r requirements.txt
前端依赖
cd InfoGenie-frontend
npm install
主要依赖包:
- React 18.2.0
- React Router DOM 6.15.0
- Styled Components 6.0.7
- Axios 1.5.0
- React Hot Toast 2.4.1
- React Icons 4.11.0
🖥️ 前端部署
- 进入前端目录:
cd InfoGenie-frontend - 安装依赖:
npm install - 构建生产环境应用:
npm run build - 将
build目录下的所有文件上传到前端服务器的网站根目录
也可以直接运行 InfoGenie-frontend/build_frontend.bat 脚本进行构建。
⚙️ 后端部署
方式一:传统部署
- 进入后端目录:
cd InfoGenie-backend - 安装依赖:
pip install -r requirements.txt - 配置环境变量或创建
.env文件:# 数据库配置 MONGO_URI=mongodb://localhost:27017/infogenie # 邮件服务配置 MAIL_USERNAME=your_email@qq.com MAIL_PASSWORD=your_email_auth_code MAIL_SERVER=smtp.qq.com MAIL_PORT=587 # 应用配置 SECRET_KEY=your_secret_key_here SESSION_COOKIE_SECURE=True FLASK_ENV=production # AI服务配置 DEEPSEEK_API_KEY=your_deepseek_api_key KIMI_API_KEY=your_kimi_api_key - 使用 Gunicorn 启动应用:
gunicorn -w 4 -b 0.0.0.0:5000 "app:create_app()"
方式二:Docker部署(推荐)
- 进入后端目录:
cd InfoGenie-backend - 构建Docker镜像:
docker build -t infogenie-backend . - 使用docker-compose启动:
docker-compose up -d - 或者直接运行构建脚本:
./build_docker.sh # Linux/Mac # 或 build_docker.bat # Windows
环境配置说明
- 开发环境: 使用
.env文件配置本地开发环境 - 生产环境: 使用
.env.production文件或环境变量注入 - 反向代理: 配置Nginx将
https://infogenie.api.shumengya.top反向代理到后端服务
⚙️ 配置说明
前端配置
前端通过环境变量配置API基础URL:
- 开发环境:
.env.development文件中设置REACT_APP_API_URL=http://localhost:5000 - 生产环境:
.env.production文件中设置REACT_APP_API_URL=https://infogenie.api.shumengya.top
后端配置
后端通过 config.py 和环境变量进行配置:
- MongoDB连接:通过环境变量
MONGO_URI设置 - 邮件服务:通过环境变量
MAIL_USERNAME和MAIL_PASSWORD设置(支持QQ邮箱) - 认证配置:支持QQ邮箱验证登录
- CORS配置:在
app.py中配置允许的前端域名
60sAPI配置
60sAPI模块的静态文件位于 frontend/60sapi 目录,通过后端的静态文件服务提供访问。
各API模块的接口地址已配置为 https://infogenie.api.shumengya.top/api/60s。
项目结构
InfoGenie/
├── InfoGenie-backend/ # 后端Python Flask应用
│ ├── app.py # 主应用入口
│ ├── config.py # 配置文件
│ ├── requirements.txt # Python依赖
│ ├── Dockerfile # Docker构建文件
│ ├── docker-compose.yml # Docker编排文件
│ ├── .env # 环境变量配置
│ ├── modules/ # 功能模块
│ │ ├── auth.py # 用户认证
│ │ ├── user_management.py # 用户管理
│ │ ├── email_service.py # 邮件服务
│ │ └── aimodelapp.py # AI模型应用
│ ├── test/ # 测试文件
│ └── 后端架构文档.md # 后端架构文档
├── InfoGenie-frontend/ # 前端应用
│ ├── src/ # React源码
│ │ ├── components/ # 公共组件
│ │ ├── pages/ # 页面组件
│ │ ├── contexts/ # React Context
│ │ ├── utils/ # 工具函数
│ │ └── styles/ # 全局样式
│ ├── public/ # 静态资源
│ │ ├── 60sapi/ # 60s API静态页面
│ │ ├── aimodelapp/ # AI模型应用页面
│ │ └── smallgame/ # 小游戏页面
│ ├── package.json # 前端依赖
│ ├── setting.json # 前端配置
│ └── 前端架构文档.md # 前端架构文档
├── README.md # 项目说明
├── LICENSE # 许可证
└── 项目架构说明.txt # 项目架构说明
前端依赖
cd frontend/react-app
npm install
🎯 启动服务
方式一:使用启动器(推荐)
# 双击运行 启动器.bat
# 选择相应的启动选项
方式二:手动启动
启动后端服务
cd InfoGenie-backend
python app.py
# 后端服务: http://localhost:5002
启动前端服务
cd InfoGenie-frontend
npm start
# 前端服务: http://localhost:3000
📞 联系方式
- 开发者: 万象口袋
- 项目地址: https://github.com/shumengya/InfoGenie
- 演示地址: https://infogenie.shumengya.top
- API地址: https://infogenie.api.shumengya.top
- 反馈邮箱: 请通过GitHub Issues反馈
- ICP备案: 蜀ICP备2025151694号
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
✨ 感谢使用 InfoGenie 万象口袋 ✨
🎨 一个多功能的聚合软件应用 💬
支持Web、Windows、Android多平台
Description
Languages
JavaScript
45.2%
CSS
37%
HTML
11.7%
Python
5.9%
Shell
0.2%