Giter Site home page Giter Site logo

luhc228 / eecs-online Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 5.0 5.41 MB

EECS在线评分系统

Home Page: http://47.97.215.154:3000/

License: MIT License

TypeScript 62.88% CSS 1.46% HTML 0.09% Python 35.33% JavaScript 0.23%
react antd redux dva django python typescript

eecs-online's Introduction

EECS-online

EECS 在线评分系统

预览地址

Background

Introduction to EECS I课程以Python为教学语言,其中每周一次的Software Lab和Nano Quiz考察对原理、算法、编程的掌握程度。本系统为PC端软件,实现对Software Lab和Nano Quiz中每个问题的显示、答案提交和自动判分。

ENV

frontend
  • node: >=10.15.0 (LTS)

  • react: ^16.8.6

  • dva: ^2.6.0-beta.6

  • antd: ^3.19.5

backend
  • django: 2.2.6

Quick Preview

Backend admin dashboard

image.png

User login page

image.png

Teacher page

image.png

image.png

image.png

Student page

image.png

image.png

Quick Start

  • clone repository

    git clone https://github.com/luhc228/eecs-online.git
  • cd eecs-online

    cd eecs-online
  • install frontend dependencies

    cd eecs-online-client
    npm install
  • start frontend project

    npm start
  • install backend dependencies

    cd eecs-online-server
    pip install -r requirements.txt
  • start backend project

    python manage.py runserver

Contributing

If you have want to contribute to this project, welcome to submit any ideas as pull requests or as GitHub issues.

eecs-online's People

Contributors

jeanil-gao avatar jiangxb98 avatar luhc228 avatar zhaodqqqq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

eecs-online's Issues

EECS在线作业判分系统需求梳理

EECS在线作业判分系统需求梳理

系统简介

Introduction to EECS I课程以Python为教学语言,其中每周一次的Software Lab和Nano Quiz考察对原理、算法、编程的掌握程度。本系统为PC端软件,实现对Software Lab和Nano Quiz中每个问题的显示、答案提交和自动判分。

开发方案

  • 后端:Django
  • 前端:umi + ant design + dva(Redux)
  • 集成:travis CI
  • 测试框架:Jest(React)Django-unit-test
  • 测试覆盖率:Istanbul(javascript)
  • 覆盖率可视化:Codecov
  • 部署:暂定

系统面向用户

  • 教师
  • 学生

系统功能需求

登录模块

  • 描述:教师和学生可以用自己的工号/学号登录,使用山东大学统一身份认证登录,并在数据库中存储相关数据。
  • 实现方案
    • 为降低开发难度,并保障用户信息的真实性和可靠性,可以使用爬虫模拟实现教师和学生登录,登录成功后到教务获取教师和学生的信息,并保存到后端数据库中。

鉴权模块

  • 描述:需要根据登录用户的身份,赋予对应的功能的权限。
  • 实现方案
    • 在web端实现对应的鉴权组件 Auth ,web端可根据server端传来的用户角色,给予不同用户角色相对应的路由、菜单等权限。

教师课程管理模块

  • 描述:支持教师增删改查自己的课程信息。
  • 实现方案
    • 教师需先成功添加某次课程信息,才能添加学生至该课程中。

学生信息管理模块

  • 描述:支持教师通过excel上传录入本班同学的信息,和已登录系统的学生来录入学生信息至某个课程中(Table中实现)。
  • 实现方案
    • 通过excel上传本班同学信息:python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。
    • 通过学生信息Table来录入本班同学信息:需要用一个Table来展示所有数据库已存在的学生信息,支持按照班级、学号、学生姓名进行筛选查找,支持批量录入考生信息。

课程作业管理模块

  • 描述:教师增删改查课程作业信息。
  • 实现方案
    • 教师需要先成功添加某次作业信息,才能添加题目至该次作业中。
    • 创建本次作业时候,需输入作业名称、日期、截止完成时间等基本信息。

题目管理模块

  • 描述:教师导入EECS题目,其中可能包括:判断题,选择题(是否含有多选题和单选题),填空题,编程题。
  • 实现方案
    • 可切换判断题,选择题,填空题,编程题四种题型。
    • 必须输入问题、选项、标准答案。其中可能需要包括富文本编辑,图片上传等功能。

答题模块

  • 描述:考生在答题页面中,可填写或选择答案(针对判断题、选择题(多选题和单选题)、填空题),输入一段函数/类的代码(针对编程题)。编写编程题时,在提交代码前,可尝试运行当前输入的代码是否符合预期结果。确定无误后,点击提交。这点具体可参考leetcode。
    image
  • 功能:
    • 显示题目的要求,题目类型,题目选项。
    • 判断题和选择题通过Radio & Checkbox进行选择选项答案,填空题通过在TextArea里填写答案。
    • 代码输入及高亮:react-ace
    • demo演示
      image
    • 编程题:输入的代码,使用Python的eval在服务端进行的。
    • 如果运行效率过低,可考虑消息队列中间件。

分数统计

  • 描述:将分数与学号进行关联存储。统计答题人的历史得分情况。
  • 实现方案
    • Table展示学生每个题目完成情况和分数。
    • 使用图表展示考生分数情况,可考虑bizcharts等组件库。

文本显示格式功能

  • 实现方案:react-ace已包含该功能,见链接

扩展功能

  • 增加语言的选择,教师在发布题目时可选择语言,提高系统扩展性
  • 增加主题颜色切换 @luhc228

团队分工

  • @luhc228: Web端:初始化搭建,登录模块、答题模块、鉴权模块、教师课程管理模块。
  • @Jgfsun :Server端:初始化搭建,登录模块、答题模块、鉴权模块、教师课程管理模块。
  • @SDU-ZHAODAQI : Server端:教务爬虫、学生信息管理模块、题目信息管理模块、分数统计模块。
  • @Jeanil-Gao : Web端:学生信息管理模块、题目信息管理模块、分数统计模块。

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.