这个网站是给学院的潘老师做的,最早接到这个事情是大二上学期,当时因为对他提出的一些要求(功能)没有十分的把握能做出来,最后找了个借口(因为是班主任推荐过去的,不好意思直接说我不会)推掉了。一年后的大三上,潘老师再次找到我问我有没有兴趣做,因为要求还是和以前一样,所以这次我就答应了,这可以说明这一年来我有在成长吧。这是这个项目真正的开始,大概是10月中旬吧,不记得了。截止目前,正好3月中旬,差多不有5个月了,5个月做的一个项目应该是拿的出手的吧,总比我在xx培训是一个礼拜做成的一个ssh项目要了不起。
先介绍下项目es(老师说叫es, 以下就称之为es了):
es是给学院嵌入式课程老师做的,主要有1、内容管理系统; 2、作业系统; 3、bbs讨论版; 4、在线测试; 另外就是后台管理。
包结构:
1、内容管理
这个部分,主要用于介绍老师所教的课程,教学情况, 还有课外科技……, 有什么可以添加什么,下面是前台
本来左下角那块嵌了一个iframe,谁知效果太差,主要是iframe的滚动条我搞不定,另外如果我直接访问详细信息, 比如点击“自我评价”,那么只会显示具体的content,而旁边的二级菜单就没了。后来改成了单独的页面,虽然后台的代码多了些,但是显示的内容全部由我来控制。
2、作业系统
教师对某一门课程布置作业,选修了这个课程的学生可以在指定的时间内完成作业。同时老师可以给学生的作业打一个分, 并且给出评价。这相对于传统的作业,可以减去课代表收作业这个环节,另外也不用因为每学期的那么几次作业买一个全新的笔记本了。不过还是不能杜绝抄袭情况。不过加了个ip记录,因为每个学生都有学校内网ip,如果出现两个相同的ip提交的作业,那么就有点可疑了,不过也不能说明什么问题,只能做一个大概的参考。
关于防抄袭的话,能想到的就是用字符串匹配来计算相似程度,不过效率太低了
3、讨论版模块
可以自己添加/删除不同的模块,供选修了不同课程的学生讨论。根据实际需求,讨论版块给学生提供了n个平时分。期末是老师可以根据学生的平时讨论情况给平时分。
为了防止学生为了得分而发帖,所以每天限制发帖次数,另外,老师可以删除垃圾主题,回帖,一旦被删除,作者将被扣除5分(发帖得1分,每天上限5分)。
另外,为了提高同学的参与度,老师对比较好的主题,回帖进行加分(1~5分)。为了避免页面的单一,上学校的bbs找了一些“火”,“精”, “顶”~~~的图片。置顶的主题显示“顶”, 加过分的显示“精”, 参与人数比较多的主题显示“火“…………
4、在线测试
这个模块实现的功能不是很复杂,但感觉做的时候最麻烦。
学生登录后进入测试界面,根据当前选修的课程可以进行测试, 开始测试后系统,系统随机选择n个选择题,和m个判断题,并更新选中次数(要统计某个题目的正确率),将n+m个题目放入一张临时表中,然后开始一个小时的测试。学生初次选择和每次改变选项都会更新n+m中的某条记录,这样如果中途发生突发情况, 用户下次登录是还能看到未完成的测试,及答题记录。测试结束后, 系统自动判题,并修改某个题目的正确次数,全部判完后给同学列出此次测试的情况:包括正确答案,学生答案,题目的正确率~
下面说说用到的框架,这个网站我用了struts2和hibernate, 虽然当时已经学了spring, 但对spring还不是很友好,总觉得没事搞那么多接口干嘛,还有就是不能理解为什么要service层。当然,越做到后面就越感觉到spring的强大和没有用spring的遗憾。这也没有办法,这些东西本来就要在实践中发现真理的,如果现在让我重写这个系统,肯定还有很多完善的地方。