Skip to content

本应用一个综合性的学习平台,它集成了课程学习、资料共享、在线测试等多种功能。用户可以通过它访问丰富的教育资源,进行自主学习,同时支持教师发布课程内容和作业,便于远程教学。此外,本还提供了互动讨论区,促进师生间的沟通交流,是现代教育技术应用的一个便捷工具。 并且提供了一些基本工具帮助老师和学生更好的熟悉课程内容,并且根绝数学学科特点,提供公式编辑器、习题生成器等功能。

Notifications You must be signed in to change notification settings

Park-C159/math_app

Repository files navigation

课程教学

这是一个综合性的代数课程体系学习系统,它集成了课程学习、资料共享、在线测试等多种功能。用户可以通过它访问丰富的教育资源,进行自主学习,同时支持教师发布课程内容和作业,便于远程教学。此外,本还提供了互动讨论区,促进师生间的沟通交流,是现代教育技术应用的一个便捷工具。 并且提供了一些基本工具帮助老师和学生更好的熟悉课程内容,并且根据数学学科特点,提供公式编辑器、习题生成器等功能。

Recommended IDE Setup

VSCode + Volar (and disable Vetur).

技术栈

前端采用vue3+element-ui搭建平台,由于部分组件不兼容问题,还有部分内容采用了vue2的部分兼容模式。

后端采用python的flask框架。

部署计划采用docker+nginx简化部署流程。

数据库采用mysql数据库用来存放基本信息。

运行程序

npm install

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build

数据库表说明

1. course_content

存储课程内容的相关信息。

列名 数据类型 描述
id INT 主键,自增 ID
course_name VARCHAR(255) 课程名称
chapter_title VARCHAR(255) 章节标题
section_title VARCHAR(255) 小节标题(可为空)
planned_hours INT 计划学时
content TEXT 学习内容描述
video_link VARCHAR(255) 相关视频链接

2. question

该表用于存储所有的题目信息,包括选择题、填空题、证明题、流程题等不同类型的题目。

列名 数据类型 描述
id INT 主键,自增 ID
type ENUM('choice','blank','proof','flow') 题目类型(选择题、填空题、证明题、流程题)
question_text TEXT 题目内容
score FLOAT 题目分数
correct_answer TEXT 正确答案
created_at TIMESTAMP 创建时间,默认为当前时间

3. options

存储选择题的选项内容,与 questions 表建立外键关联。

列名 数据类型 描述
id INT 主键,自增 ID
question_id INT 关联的题目 ID
option_label CHAR(1) 选项标识(如 'A', 'B')
option_text TEXT 选项内容

4. flows

存储流程题的步骤内容,与 questions 表建立外键关联。

列名 数据类型 描述
id INT 主键,自增 ID
question_id INT 关联的题目 ID
step_label BIGINT 步骤标签(如 '1', '2')
step_text TEXT 步骤内容
is_hidden BOOLEAN 是否隐藏步骤,默认 FALSE

5. discussions

存储课程讨论内容。

列名 数据类型 描述
id INT 主键,自增 ID
course_name VARCHAR(255) 课程名称
author VARCHAR(255) 发布者
content TEXT 讨论内容
score BIGINT 分数
created_at TIMESTAMP 创建时间,默认当前时间
updated_at TIMESTAMP 更新时间

6. replies

存储对讨论内容的回复,与 discussions 表建立外键关联。

列名 数据类型 描述
id INT 主键,自增 ID
discussion_id INT 关联的讨论 ID
replier VARCHAR(255) 回复者
reply_content TEXT 回复内容
reply_time TIMESTAMP 回复时间,默认当前时间

7. users

存储用户信息,包括用户名、密码、角色等信息。

列名 数据类型 描述
id INT 主键,自增 ID
username VARCHAR(50) 用户名
password VARCHAR(255) 密码(已加密)
user_id VARCHAR(50) 用户 ID
phone_number VARCHAR(15) 电话号码(可为空)
role ENUM('admin', 'teacher', 'student') 用户角色
extra TEXT 额外信息

8. course_question

该表用于存储课程与题目的关系,即每个课程可以有多个题目,关联 course_idquestion_id

列名 数据类型 描述
course_id INT 关联的课程 ID
question_id INT 关联的题目 ID

接口说明

  1. /api/course - 获取课程结构

描述: 根据课程名称返回课程的章节和小节结构。
方法: GET
响应:返回课程结构的树状 JSON 对象 示例:

[
  {
    "id": 1,
    "label": "第一章 绪论",
    "time": 2,
    "children": [
      {
        "label": "小节 1",
        "id": 2,
        "time": 1,
        "children": []
      }
    ]
  }
]
  1. /api/download_users_mark - 获取课程结构

描述: 每道题的统计信息 question_statistics

  • average_score(均值)
  • median_score(中位数)
  • mode_score(众数)
  • standard_deviation(标准差)
  • variance(方差)
  • range(极差)
  • q1(第 25% 分位数)
  • q3(第 75% 分位数)
  • iqr(四分位距 Q3-Q1)
  • coefficient_of_variation(变异系数 CV)
  • skewness(偏度)
  • kurtosis(峰度)

✅ 所有用户总分的统计信息 total_statistics

  • average_total_score
  • median_total_score
  • mode_total_score
  • standard_deviation_total_score
  • variance_total_score
  • range_total_score
  • q1_total_score
  • q3_total_score
  • iqr_total_score
  • coefficient_of_variation
  • skewness_total_score
  • kurtosis_total_score

方法: GET
响应:返回课程结构的树状 JSON 对象

示例:

{
  "user_scores": [
    {
      "user_id": 1,
      "user_name": "张三",
      "question_score": [
        {
          "question_id": 101,
          "question_text": "选择题1",
          "user_score": 5
        },
        {
          "question_id": 102,
          "question_text": "选择题2",
          "user_score": 10
        }
      ],
      "total_score": 15
    }
  ],
  "question_statistics": [
    {
      "question_id": 101,
      "question_text": "选择题1",
      "average_score": 6.5,
      "median_score": 6,
      "mode_score": 5,
      "standard_deviation": 2.3,
      "variance": 5.29,
      "range": 4,
      "q1": 5,
      "q3": 8,
      "iqr": 3,
      "coefficient_of_variation": 35.4,
      "skewness": 0.12,
      "kurtosis": -1.0
    }
  ],
  "total_statistics": {
    "average_total_score": 75,
    "median_total_score": 72,
    "mode_total_score": "无众数",
    "standard_deviation_total_score": 15.2,
    "variance_total_score": 231.04,
    "range_total_score": 50,
    "q1_total_score": 65,
    "q3_total_score": 85,
    "iqr_total_score": 20,
    "coefficient_of_variation": 20.3,
    "skewness_total_score": 0.4,
    "kurtosis_total_score": -0.9
  }
}

设计思路

  1. 需要一个主界面
  2. 可扩展的课程编辑器
  3. 习题编辑器
  4. 公式编辑器功能
  5. 考试出题能力(primary)
  6. 用户分级策略
  7. 习题书写可视化,下载
  8. 分级课程分数汇总

About

本应用一个综合性的学习平台,它集成了课程学习、资料共享、在线测试等多种功能。用户可以通过它访问丰富的教育资源,进行自主学习,同时支持教师发布课程内容和作业,便于远程教学。此外,本还提供了互动讨论区,促进师生间的沟通交流,是现代教育技术应用的一个便捷工具。 并且提供了一些基本工具帮助老师和学生更好的熟悉课程内容,并且根绝数学学科特点,提供公式编辑器、习题生成器等功能。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages