当前位置: 首页 > news >正文

OJ目录饿

OJSystem/
├─ app.py                  # 主程序入口,配置Flask、注册蓝图、数据库初始化等
├─ config.py               # 配置文件,存放数据库连接、大模型API密钥等配置
├─ models/                 # 数据库模型,定义各表结构及关系
│  ├─ user.py              # 用户(学生、教师、管理员)、用户角色、权限相关模型
│  ├─ problem.py           # 题目(编程题、简答题等)、题目类型、测试用例相关模型
│  ├─ homework.py          # 作业、作业-题目关联、作业提交记录相关模型
│  └─ course.py            # 课程、教师-课程关联相关模型
├─ routes/                 # 后端路由,处理HTTP请求,分模块管理
│  ├─ auth/                # 认证相关路由
│  │  ├─ student_auth.py   # 学生登录、密码修改路由
│  │  ├─ teacher_auth.py   # 教师登录、密码找回(可选)路由
│  │  └─ admin_auth.py     # 管理员登录路由
│  ├─ admin/               # 管理员功能路由
│  │  ├─ teacher_manage.py # 教师账号添加、课程权限分配路由
│  │  └─ course_manage.py  # 课程管理路由
│  ├─ teacher/             # 教师功能路由
│  │  ├─ user_manage/      # 用户管理子路由
│  │  │  ├─ single_import.py  # 单用户录入、修改、删除、移动、复制路由
│  │  │  └─ batch_import.py   # 批量用户导入(含分类导入)路由
│  │  ├─ problem_manage/   # 题目管理子路由
│  │  │  ├─ generate.py    # 题目智能生成(调用大模型)路由
│  │  │  ├─ edit.py        # 题目编辑、提交前自检路由
│  │  │  └─ encrypt.py     # 代码加密(避免非法关键字)工具类(或在对应逻辑中)
│  │  └─ homework_manage/  # 作业管理子路由
│  │     ├─ manual_select.py # 手工选题布置作业路由
│  │     └─ auto_select.py   # 自动选题(调用大模型筛选)布置作业路由
│  └─ student/             # 学生功能路由
│     ├─ homework.py       # 作业查看、提交路由
│     └─ password.py       # 学生密码修改路由
├─ services/               # 业务逻辑服务,封装核心业务操作
│  ├─ auth_service.py      # 认证相关业务逻辑(登录验证、密码加密等)
│  ├─ user_service.py      # 用户管理业务逻辑(单用户、批量用户操作)
│  ├─ llm_service.py       # 大模型调用服务(题目生成、简答题评分、自动选题)
│  ├─ judge_service.py     # 判题服务(C/C++、Python评测,代码解密、编译运行等)
│  └─ homework_service.py  # 作业相关业务逻辑(作业创建、查询等)
├─ static/                 # 前端静态资源
│  ├─ student/             # 学生端页面及资源
│  ├─ teacher/             # 教师端页面及资源
│  └─ admin/               # 管理员端页面及资源
└─ templates/              # 模板文件(若使用服务端渲染,如Jinja2)├─ student/├─ teacher/└─ admin/

各目录 / 文件功能说明

  • config.py:集中管理项目配置,比如数据库的连接 URL(如 MySQL 的连接地址、用户名、密码)、大模型(如 OpenAI)的 API 密钥等,方便统一修改和维护。
  • models/
    • user.py:定义用户表,包含用户 ID、姓名、密码(加密存储)、角色(学生、教师、管理员)等字段;还有用户角色表,用于管理不同角色的权限;以及可能的用户与课程关联表,记录教师所负责的课程。
    • problem.py:定义题目表,包含题目 ID、类型(选择题、填空题、简答题、编程题、片段编程题)、题干、难度等字段;题目类型表,对题目类型进行分类管理;测试用例表,存储各题目的测试用例,包括输入、输出、是否为样例等信息。
    • homework.py:定义作业表,包含作业 ID、标题、截止时间、布置对象等字段;作业 - 题目关联表,记录作业包含的题目;作业提交记录表,存储学生提交作业的相关信息,如提交时间、得分等。
    • course.py:定义课程表,包含课程 ID、课程名称等字段;教师 - 课程关联表,记录教师与课程的对应关系,用于管理员分配课程权限。
  • routes/
    • auth/:分别处理不同角色的登录逻辑,学生、教师、管理员登录后会进入不同的功能页面,同时学生登录后可在此模块下进行密码修改操作,教师也可在此进行密码找回(若实现该可选功能)。
    • admin/:管理员可通过teacher_manage.py添加教师账号,通过course_manage.py为教师分配课程权限,管理课程信息。
    • teacher/
      • user_manage/single_import.py实现单用户的录入、信息修改、删除、用户信息在不同类别间的移动和复制;batch_import.py实现多用户的批量导入,支持按类别、子类等层级结构导入用户。
      • problem_manage/generate.py调用大模型生成各类题目(编程题、简答题等);edit.py对生成或已有题目进行编辑,在题目提交前进行自检,确保测试案例正确;encrypt.py(或在相关逻辑中)对编程题代码进行加密,避免出现非法关键字。
      • homework_manage/manual_select.py从已有题目中手工挑选布置作业,设置作业时间、对象等;auto_select.py调用大模型根据需求描述自动筛选题目来布置作业。
    • student/homework.py供学生查看作业、提交作业;password.py实现学生修改自己密码的功能。
  • services/
    • auth_service.py:处理登录验证的业务逻辑,如密码加密与验证,生成登录凭证(如 JWT)等。
    • user_service.py:封装用户管理的业务逻辑,包括单用户和批量用户的增删改查等操作。
    • llm_service.py:封装大模型调用的逻辑,包括调用大模型生成题目、对简答题进行评分、根据需求自动筛选题目等。
    • judge_service.py:处理判题的业务逻辑,对 C/C++、Python 代码进行解密、编译、运行,与测试用例比对,给出评测结果。
    • homework_service.py:封装作业相关的业务逻辑,如作业的创建、查询学生作业提交情况等。
  • static/ 和 templates/:存放前端页面和相关资源,static放 CSS、JavaScript、图片等静态文件,templates放服务端渲染用的 HTML 模板,分别为学生、教师、管理员提供不同的页面界面,展示各自功能。
http://www.dtcms.com/a/336314.html

相关文章:

  • Python 基础语法(二)
  • Kubernetes存储迁移实战:从NFS到阿里云NAS完整指南
  • 【踩坑笔记】50系显卡适配的 PyTorch 安装
  • XF 306-2025 阻燃耐火电线电缆检测
  • JavaScript 性能优化实战:从评估到落地的全链路指南
  • Docker Compose 安装 Neo4j 的详细步骤
  • 福彩双色球第2025094期号码分析
  • Jenkins - CICD 注入环境变量避免明文密码暴露
  • 用MTEB对Embedding模型进行benchmark
  • Pell数列
  • 基本的设计原则
  • SONiC (4) - redis的介绍以及应用
  • 远程协作绘图:借助 cpolar 内网穿透服务访问 Excalidraw
  • 用PaddleDetection套件训练自己的数据集,PP-YOLO-SOD训练全流程
  • 领域快速入门过程记录之--电力网络
  • ROS常用命令手册
  • # C++ 中的 `string_view` 和 `span`:现代安全视图指南
  • GaussDB常用术语缩写及释义
  • 【Linux】IO多路复用
  • nodejs 错误处理
  • Shell脚本-条件判断相关参数
  • 任务型Agent架构简介
  • JUC并发编程04 - 同步/syn-ed(01)
  • prototype 和 _ _ proto _ _的关联
  • 计算机网络 OSI 七层模型和 TCP 五层模型
  • 【Linux系列】如何在 Linux 服务器上快速获取公网
  • 遥感数据介绍——MODIS、VIIRS、Sentinel-2
  • 飞算JavaAI结合Redis实现高性能存储:从数据瓶颈到极速读写的实战之旅
  • 三种变量类型在局部与全局作用域的区别
  • 大模型算法岗面试准备经验分享