Skip to content

An interactive game-based learning application, developed in Python and Flask, designed to deliver a Kahoot!-style competition.

Notifications You must be signed in to change notification settings

mikemelon/flask-kahoot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flask_kahoot! 教育问答游戏(类似Kahoot!)

这是一个类似Kahoot!的教育问答游戏,使用Python和Flask开发,支持实时多人互动,移动端浏览器适配。

功能特点

  • 创建游戏:教师或主持人可以创建自己的问答游戏,添加多个问题和选项
  • 加入游戏:学生或参与者可以通过游戏代码加入正在进行的游戏
  • 实时互动:使用Socket.IO实现实时通信,包括问题展示、答案提交、分数更新等
  • 排行榜:实时显示参与者分数,并在游戏结束时显示最终排名
  • 统计分析:主持人可以看到每个问题的答案统计情况

技术栈

  • 后端:Python、Flask、Flask-SocketIO、Flask-SQLAlchemy
  • 前端:HTML、CSS、JavaScript、Bootstrap
  • 数据库:SQLite(默认)
  • 实时通信:Socket.IO

安装和运行

前提条件

  • Python 3.7或更高版本
  • pip包管理器

步骤1:克隆或下载项目

# 克隆项目(如果使用git)
git clone <项目URL>

# 或者直接下载项目文件

步骤2:安装依赖

# 进入项目目录
cd flask-kahoot!

# 进入server目录
cd server

# 激活虚拟环境(如果已创建)
# Windows
env\Scripts\activate
# macOS/Linux
source env/bin/activate

# 安装依赖包
pip install -r requirements.txt

步骤3:运行应用程序

# 在server目录下运行
python app.py

步骤4:访问应用程序

打开浏览器,访问以下地址:

http://localhost:5000

使用说明

创建游戏

  1. 在首页点击"开始创建"按钮
  2. 输入游戏标题和您的名称
  3. 添加问题和选项,为每个问题选择正确答案
  4. 点击"创建游戏"按钮
  5. 系统会生成一个6位游戏代码,您可以将这个代码分享给参与者

加入游戏

  1. 在首页点击"加入游戏"按钮
  2. 输入主持人提供的6位游戏代码
  3. 输入您的名称
  4. 点击"加入游戏"按钮
  5. 等待主持人开始游戏

游戏流程

  1. 主持人点击"开始游戏"按钮后,游戏开始
  2. 每个问题会显示一定时间(默认30秒)
  3. 参与者选择答案后,系统会立即显示答案是否正确
  4. 主持人可以看到每个问题的答案统计
  5. 所有问题回答完毕后,系统会显示最终排行榜

配置选项

应用程序的主要配置位于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!,一个优秀的教育科技平台。

About

An interactive game-based learning application, developed in Python and Flask, designed to deliver a Kahoot!-style competition.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published