这是一个类似Kahoot!的教育问答游戏,使用Python和Flask开发,支持实时多人互动,移动端浏览器适配。
- 创建游戏:教师或主持人可以创建自己的问答游戏,添加多个问题和选项
- 加入游戏:学生或参与者可以通过游戏代码加入正在进行的游戏
- 实时互动:使用Socket.IO实现实时通信,包括问题展示、答案提交、分数更新等
- 排行榜:实时显示参与者分数,并在游戏结束时显示最终排名
- 统计分析:主持人可以看到每个问题的答案统计情况
- 后端:Python、Flask、Flask-SocketIO、Flask-SQLAlchemy
- 前端:HTML、CSS、JavaScript、Bootstrap
- 数据库:SQLite(默认)
- 实时通信:Socket.IO
- Python 3.7或更高版本
- pip包管理器
# 克隆项目(如果使用git)
git clone <项目URL>
# 或者直接下载项目文件
# 进入项目目录
cd flask-kahoot!
# 进入server目录
cd server
# 激活虚拟环境(如果已创建)
# Windows
env\Scripts\activate
# macOS/Linux
source env/bin/activate
# 安装依赖包
pip install -r requirements.txt
# 在server目录下运行
python app.py
打开浏览器,访问以下地址:
http://localhost:5000
- 在首页点击"开始创建"按钮
- 输入游戏标题和您的名称
- 添加问题和选项,为每个问题选择正确答案
- 点击"创建游戏"按钮
- 系统会生成一个6位游戏代码,您可以将这个代码分享给参与者
- 在首页点击"加入游戏"按钮
- 输入主持人提供的6位游戏代码
- 输入您的名称
- 点击"加入游戏"按钮
- 等待主持人开始游戏
- 主持人点击"开始游戏"按钮后,游戏开始
- 每个问题会显示一定时间(默认30秒)
- 参与者选择答案后,系统会立即显示答案是否正确
- 主持人可以看到每个问题的答案统计
- 所有问题回答完毕后,系统会显示最终排行榜
应用程序的主要配置位于server/app.py
文件中:
SECRET_KEY
:用于会话管理的密钥(自动生成)SQLALCHEMY_DATABASE_URI
:数据库连接URI(默认为SQLite)SQLALCHEMY_TRACK_MODIFICATIONS
:是否跟踪数据库修改(默认为False)
education-quiz-app/
├── server/
│ ├── app.py # Flask应用主文件
│ ├── requirements.txt # Python依赖包列表
│ └── venv/ # Python虚拟环境(忽略)
├── client/
│ ├── templates/ # HTML模板文件
│ │ ├── index.html # 首页
│ │ ├── create.html # 创建游戏页面
│ │ ├── join.html # 加入游戏页面
│ │ ├── quiz.html # 参与者游戏页面
│ │ └── host.html # 主持人游戏页面
│ └── static/ # 静态文件
│ ├── css/ # CSS样式文件
│ └── js/ # JavaScript文件
├── .gitignore # Git忽略文件
└── README.md # 项目说明文档
如果您想扩展这个项目,可以考虑以下方向:
- 添加更多问题类型(如填空题、多选题等)
- 实现游戏数据的导入/导出功能
- 添加用户认证系统
- 支持图片、视频等多媒体内容
- 增加更多游戏模式和规则
本项目采用MIT许可证 - 详情请查看LICENSE文件
本项目的开发灵感来自Kahoot!,一个优秀的教育科技平台。