【sduoj】系统综述

2021SC@SDUSC

项目简介

本项目名称为学生程序设计能力提升平台,是山东大学软件学院学生开发的一套程序在线评测系统。

开发该系统的目的是丰富教学活动。在一些编程相关的课程中,教师可以通过该系统为学生布置一系列编程题目,让整个教学活动不再局限于过去死板的教学方式,使得学生能在实践中加深对知识的理解。

项目采用前后端分离的开发模式,前端代码保存在Gitee中,后端代码保存在Github中。

系统功能

建立账号: 注册时需要的信息为:用户名、密码、邮箱、以及邮箱验证码;登录需要用户名和密码(后期可以考虑增加学号登录和邮箱登录)。

身份数据: 管理员端需要通过上传excel表格(列名为“学号”和“姓名”)来上传学生数据,并可以获取当前已上传的学生数据(学号、姓名、绑定码),并可以下载存有该信息的Excel表;管理员还可以实现对单一学生数据的新增和删除。

身份绑定: 用户在设置用户信息界面,可以通过学号、姓名和绑定码将该账号与学生信息进行绑定;管理员通过用户id将用户账号与学生身份绑定。

查看题目: 题目存放在题目集中,普通用户可以看到公开题目集, 用户组中的成员可以看到用户组中发布的题目集;进入题目集可以看到题目集中题目;教师可以查看自己创建的题目和教师公开题目,对自己创建的题目可以进行删除操作。

创建题目: 需要教师权限,需要题目标题、难度(1~5)、题目描述;题目的测试点需要的信息有名称、分数(总和100分)、输入、输出和提示(当用户某测试点没过时,会获取该测试点的提示信息);上传文件:压缩包,里面包括一到多组.in文件、.out文件、和scores.txt文件,scores.txt中的数据格式为(测试点名称 分数 #提示#),.in文件和.out文件的“.”前的名称与测试点名称保持一致,总分数也要保证100;下载文件时,文件的格式需上传文件的格式一致;刚创建题目时,题目默认是仅为自己可见,教师可以将其设置为所有教师可见或所有人可见。

做题: 选择编程语言,输入程序代码,点击提交。

查看结果: 用户应该可以看到:是否全部通过、使用语言、提交时间、占用内存、耗费时间、每一测试点是否通过(如果未通过,显示错误信息和提示)。

创建用户组: 需要教师权限,需要填写用户组名称、用户组简介。

操作用户组: 批量添加学生:上传Excel表(学号、姓名)将已绑定的账号拉入到用户组中,此时可以下载未绑定的学生信息Excel表;添加单个学生:用户id、学号、姓名;删除学生、删除该用户组;向用户组集中添加题目集(教师私有、教师公开),需设置开始时间和结束时间(时间可以修改)。

题目集: 教师能实现题目集的创建、删除、添加题目(私有、教师公开、公开)。

获取学生作答情况: 教师可以获取该用户组在某个题目集的学生分数列表(需显示学生学号、姓名、每道题目分数、总分)。

人员分工

  • 小栗帽今天吃什么:学生、教师、管理员主界面布局、身份绑定、出题做题、测试点编辑、题目集管理、开放信息设置
  • Kätzchen-408:项目创建、Markdown编辑器嵌入、教师导入学生表、全局引入ajax、路由优化、用户组管理
  • alphahao:后端框架搭建,后端用户鉴权处理框架搭建springsecurity,学生身份相关功能,题解提交相关功能,登录注册相关功能,tomcat、nginx、mysql、rabbitmq搭建配置
  • wocaizhale:出题功能、题目的浏览、搭建文件服务器、保存和维护测试点文件
  • ??Nothing:题目集模块、用户组模块、学生信息管理
  • 孤名为義:需求设计、整理文档、系统优化、补充功能
  • 养猪去: 判题沙箱程序(c语言开发)的调研、技术选型、文档整理、判题端(Java)的开发、引入rabbitmq等中间件、引入zookeeper、保证系统可扩容性

环境配置

系统配置:

CPU: 1核
内存: 2GB
带宽:1Mbps
操作系统:Ubuntu 20.04 LTS amd64 (64bit)

更新软件列表:

该命令会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。

sudo apt-get update

安装vim:

为了方便快速编写代码,安装一个好用的文本编辑器是有必要的。

sudo apt-get install vim

添加普通用户:

为保证系统安全性,除了前期必要的操作,正常情况下不使用root用户,而是使用普通用户,防止一些误操作对系统造成破坏。

adduser user

安装并配置MySQL:

安装mysql。

sudo apt-get install mysql-server

进入mysql。

mysql -u root -p

创建用户名为user密码为1234的用户。

create user user identified by '1234';

user用户设置权限。

grant all privileges on  *.*  to  user@'%';

安装并配置golang:

安装Go环境。

sudo apt-get install golang

切换普通用户并配置工作环境。

su user
cd ~
mkdir go go/bin go/pkg go/src
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值