Skip to content

TokenTeam/iwut-classroom-backend

Repository files navigation

自习室后端

简介

这里是新自习室功能的后端,具有爬取教室列表,获取具体教室占用信息并解析的功能,并且使用 mysql 存储处理好了的学期自习室信息,并且使用 redis 进行每天的动态更新

如何使用

后端运行起来时,你可以发送如下请求

  1. GET /get_classrooms 获取具体校区,具体楼栋,今天具体时间的空教室信息

    参数:

    • campus_code :校区代码,详情见下

    • building_code: 楼栋代码

    • start_time: 第几节开始

    • end_time: 第几节结束

      返回"data" 里是空闲教室列表

  2. GET /get_available_buildings 获取具体校区,今天具体时间的 有空教室的楼栋

    参数:

    • campus_code :校区代码,详情见下

    • start_time: 第几节开始

    • end_time: 第几节结束

      返回"data" 里是空闲教室列表

  3. POST /update-list 重新爬取详细课程信息,耗时较长

    参数: token,在docker 构建时设定

文件结构

  • /details/xxx.json 存储每间教室的课程信息,文件名为教室代码
  • api.py fastapi 模块
  • databaseQuery.py 数据库查询模块,用于提供每天的查询
  • detail_example.py 每间教室的详细课程信息
  • detials.zip 一版所有教室的详细信息的打包
  • list.json 一版教室列表
  • parseDetail.py 解析每间教室的详细信息,并把解析好的信息存到 mysql 数据库
  • requestJson.py 获取教室列表以及每间教室的详细课表
  • update_redis.py 每天运行,更新每天的 Redis 数据

数据库

  • mysql 数据库:用于存储处理好的空教室信息

    格式:周数 - 星期几 - 校区代码 - 楼栋代码 - 第几节课 - 空教室列表

    其中:教室代码列表如下

building_code_to_string = {
    "010102": "弘毅楼(附楼)",
    "010103": "弘毅楼(主楼)",
    "010106": "致远楼",

    "010201": "东教学楼",

    "020101": "爱特楼",
    "020102": "北教一",
    "020103": "北教二",
    "020104": "北教三",
    "020105": "学海楼",

    "020201": "博学北楼",
    "020202": "博学东楼",
    "020203": "博学西楼",
    "020204": "博学主楼",

    "030102": "教学大楼",
    "030201": "航海楼",
}

校区代码如下:

building_code_to_campus = {
    "0101": "东院",
    "0102": "西院",
    "0201": "鉴湖校区",
    "0202": "南湖校区",
    "0301": "余家头校区",
    "0302": "余家头校区",
}
  • redis 数据库: 存储当天的自习室信息,每天更新

    格式:“校区号,教学楼号,第几节课” : 空教室列表

About

自习室后端

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •