Giter Club home page Giter Club logo

examonline-server's Introduction

在线考试系统(后端)

这个项目已经拖延了好几年了,2024年要重新开始动工,有需要这个项目做参考的同学,可以加我微信:MintBlueD,留言:GitHub + 你的问题

👉:如果你有想做的需求,可以提issue,我会尽量安排~

👉:不会没关系,我可以给你方向,但我不会教你。没有脑子的就别加了!

前端项目:https://github.com/DDDDanny/ExamOnline-Front


功能模块有4大模块:用户管理模块试题管理模块试卷管理模块考试管理模块

系统角色有3类:系统管理员、学生用户和教师用户

功能点

用户管理模块

  • 用户登录
    • 登录接口
    • 登录JWT
  • 用户信息管理
    • 学生信息管理
      • 学生信息新增接口
      • 学生信息编辑接口
      • 学生信息删除接口
      • 学生信息查询接口(List)
      • 学生信息查询接口(Detail)
      • 批量上传学生接口
    • 教师信息管理
      • 教师信息新增接口
      • 教师信息编辑接口
      • 教师信息删除接口
      • 教师信息查询接口(List)
      • 教师信息查询接口(Detail)
  • 用户激活
    • 学生用户批量激活
  • 修改密码
    • 修改学生密码接口
    • 修改教师(管理员)密码接口
  • 批量上传
    • 下载模版文件接口
    • 上传用户接口
  • 用户消息
  • 日志管理

试题管理模块

  • 试题管理
    • 试题新增接口
    • 试题修改接口
    • 试题删除接口
    • 试题查询接口(List)
    • 试题查询接口(Detail)
  • 试题收藏&查询(面向教师用户)
    • 试题收藏接口
    • 试题取消收藏接口
    • 根据用户ID获取所有收藏试题接口
  • 错题查询及筛选(面向学生用户)
    • 错题收藏接口
    • 错题取消收藏接口
    • 编辑错题收藏信息
    • 根据用户ID获取错题收藏信息接口

试卷管理模块

  • 试卷管理
    • 试卷信息新增接口
    • 试卷信息修改接口
    • 试卷信息删除接口(逻辑删除)
    • 试卷信息查询接口
      • 列表信息(查询条件)
      • 根据试卷ID查询试卷信息
  • 试卷 - 模块管理
    • 新增试卷-模块信息接口
    • 编辑试卷-模块信息接口
    • 删除试卷-模块信息接口(物理删除)
    • 根据试卷ID获取模块信息接口
  • 试卷 - 试题管理
    • 新增试卷-试题信息接口
    • 编辑试卷-试题信息接口(修改分数、排序、所属模块)
    • 删除(解绑)试卷-试题信息接口(物理删除)
    • 根据试卷ID获取试题信息接口
  • 复制试卷接口(包含试卷信息、模块信息)

考试管理模块

  • 考试管理
    • 新增考试信息接口
    • 编辑考试信息接口
    • 删除考试信息接口
    • 获取考试信息列表
  • 试卷答题(面向学生用户)

考试成绩管理模块

  • 考试成绩管理
    • 批量新增考试成绩信息接口
    • 编辑考试成绩细腻接口
    • 批量删除考试成绩信息接口
    • 获取考试成绩列表接口
    • 新增考试成绩详情接口
    • 根据考试成绩(学生)获取考试成绩详情接口
  • 考试成绩下载

扩展(功能)需求

  • 项目启动教程
  • 批量上传试题
  • 批量上传学生

技术栈

服务端:Python 3.8 + Django 4.3.8

数据库:MySQL 8.2

MySQL安装

我是用Docker安装的MySQL,更加方便一些,下面👇是下载&启动命令:

下载
docker pull mysql:8.2
启动容器
docker run -p 3306:3307 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.2
导入预制数据

预制菜单项教师用户

python3 manage.py loaddata initial_data.json

⚠️ 注意:导入预制数据前需要先进行migrate。由于预制数据会在开发过程中发生变化,如果更新预制数据,最好先清表,再重新导入。


PS:内容暂定,待完善。。。

关于 Django ORM 的一些知识

模糊查询操作符
  1. __icontains: 包含某个字符串(不区分大小写)的值。
  2. __contains: 包含某个字符串(区分大小写)的值。
  3. __iexact: 等于某个字符串(不区分大小写)的值。
  4. __exact: 等于某个字符串(区分大小写)的值。
  5. __startswith: 以某个字符串开头的值。
  6. __endswith: 以某个字符串结尾的值。

例子:

queryset = Paper.objects.filter(title__icontains='大三')

examonline-server's People

Contributors

ddddanny avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

examonline-server's Issues

试题详情

用图片不好管理,希望能修改成文字存储

thk

挺好的,试题试卷等基本有了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.