2021SC@SDUSC
目录
- 项目简介
- 系统功能
- 人员分工
- 环境配置
项目简介
本项目名称为学生程序设计能力提升平台,是山东大学软件学院学生开发的一套程序在线评测系统。
开发该系统的目的是丰富教学活动。在一些编程相关的课程中,教师可以通过该系统为学生布置一系列编程题目,让整个教学活动不再局限于过去死板的教学方式,使得学生能在实践中加深对知识的理解。
项目采用前后端分离的开发模式,前端代码保存在Gitee中,后端代码保存在Github中。
系统功能
建立账 : 注册时需要的信息为:用户名、密码、邮箱、以及邮箱验证码;登录需要用户名和密码(后期可以考虑增加学 登录和邮箱登录)。
身份数据: 管理员端需要通过上传excel表格(列名为“学 ”和“姓名”)来上传学生数据,并可以获取当前已上传的学生数据(学 、姓名、绑定码),并可以下载存有该信息的Excel表;管理员还可以实现对单一学生数据的新增和删除。
身份绑定: 用户在设置用户信息界面,可以通过学 、姓名和绑定码将该账 与学生信息进行绑定;管理员通过用户id将用户账 与学生身份绑定。
查看题目: 题目存放在题目集中,普通用户可以看到公开题目集, 用户组中的成员可以看到用户组中发布的题目集;进入题目集可以看到题目集中题目;教师可以查看自己创建的题目和教师公开题目,对自己创建的题目可以进行删除操作。
创建题目: 需要教师权限,需要题目标题、难度(1~5)、题目描述;题目的测试点需要的信息有名称、分数(总和100分)、输入、输出和提示(当用户某测试点没过时,会获取该测试点的提示信息);上传文件:压缩包,里面包括一到多组.in文件、.out文件、和scores.txt文件,scores.txt中的数据格式为(测试点名称 分数 #提示#),.in文件和.out文件的“.”前的名称与测试点名称保持一致,总分数也要保证100;下载文件时,文件的格式需上传文件的格式一致;刚创建题目时,题目默认是仅为自己可见,教师可以将其设置为所有教师可见或所有人可见。
做题: 选择编程语言,输入程序代码,点击提交。
查看结果: 用户应该可以看到:是否全部通过、使用语言、提交时间、占用内存、耗费时间、每一测试点是否通过(如果未通过,显示错误信息和提示)。
创建用户组: 需要教师权限,需要填写用户组名称、用户组简介。
操作用户组: 批量添加学生:上传Excel表(学 、姓名)将已绑定的账 拉入到用户组中,此时可以下载未绑定的学生信息Excel表;添加单个学生:用户id、学 、姓名;删除学生、删除该用户组;向用户组集中添加题目集(教师私有、教师公开),需设置开始时间和结束时间(时间可以修改)。
题目集: 教师能实现题目集的创建、删除、添加题目(私有、教师公开、公开)。
获取学生作答情况: 教师可以获取该用户组在某个题目集的学生分数列表(需显示学生学 、姓名、每道题目分数、总分)。
人员分工
- alphahao:后端框架搭建,后端用户鉴权处理框架搭建springsecurity,学生身份相关功能,题解提交相关功能,登录注册相关功能,tomcat、nginx、mysql、rabbitmq搭建配置
- wocaizhale:出题功能、题目的浏览、搭建文件服务器、保存和维护测试点文件
- Nothing:题目集模块、用户组模块、学生信息管理
- 孤名为義:需求设计、整理文档、系统优化、补充功能
- 养猪去: 判题沙箱程序(c语言开发)的调研、技术选型、文档整理、判题端(Java)的开发、引入rabbitmq等中间件、引入zookeeper、保证系统可扩容性
环境配置
系统配置:
CPU: 1核
内存: 2GB
带宽:1Mbps
操作系统:Ubuntu 20.04 LTS amd64 (64bit)
更新软件列表:
该命令会访问源列表里的每个 址,并读取软件列表,然后保存在本地电脑。
安装vim:
添加普通用户:
为保证系统安全性,除了前期必要的操作,正常情况下不使用用户,而是使用普通用户,防止一些误操作对系统造成破坏。
安装并配置MySQL:
安装mysql。
进入mysql。
创建用户名为密码为的用户。
为用户设置权限。
安装并配置golang:
安装Go环境。
切换普通用户并配置工作环境。
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24701 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!