相关链接
一、项目背景及简介
在城市学院中,大大小小存在十几二十个社团,虽然可以通过微信公众号的方式来获得这个社团的一系列的信息,但无法总览所有的社团和所有活动;社长也无法统筹的去管理本社团;对管理员来说,活动审批,社团申请等等过于繁琐。
本项目主要用于统筹管理社团,有三种角色:社员(即普通学生),社长,管理员。
本项目中社员可进行的操作:修改个人信息,查看活动公告,报名活动,查看社团信息,接收到管理员发来的审批结果的消息;
社长可进行的操作(包括社员可进行的任何操作):删除社团成员,管理自己社团下的活动,申请活动或者取消活动或者修改活动信息;管理自己社团下的内部公告和外部公告;添加社员;修改社团信息
管理员可进行的操作:修改管理员信息;审批社团修改信息的请求;审批社团申请活动,修改活动信息,取消活动的申请;增加社团;解散社团;增加场地;删减场地;重置学生的密码。
本次项目中已实现了百分之95的需求文档中所要求的的功能,已经可以作为一个基本的社团管理软件的网页版来使用了。
二、个人工作
数据流图绘制
原型绘制
流程图绘制
界面绘制
活动列表
仅当当前登录用户是某社团的社长时显示,列出该社团所有的待审核或审核已通过的活动,并且可以通过每一条活动后面的 ‘+’ 来添加公告 ‘’来查看当前活动报名人员 ‘x’取消该活动
申请活动
通过活动列表的页面进入申请活动界面
查看活动报名人员
列出当前活动的报名的人,由社长进行审批,‘√’审批通过,‘x’审批不通过,同时像学生发送消息
公告列表
仅当当前登录用户是某社团的社长时显示,列出该社团所有的公告
添加社员
输入学生学号进行查询,如果该学生存在,则显示该学生的信息,如果不存在,就报错
消息列表
显示当前登录学生的所有消息,‘x’删除消息
我参加的活动
显示我报名的所有活动和审核状态
内部公告
显示该社团的所有非公开公告
前端实现
添加活动
填写内容,提交表单,要进行空值判断,任意字段不能为空,活动开始时间要在当前时间之后,负责人要是该社团内人员
修改活动
修改活动时默认填充内容,进行修改后,提交申请,判断与添加活动时一致
添加公告
填写内容,提交表单,任意字段不能为空,仅审核通过的活动可以添加公告
列出报名某活动的人员
获得活动id,列出所有报名该活动的人员
社长审核报名活动的人
社长审核,审核通过则更改状态为审核通过,审核拒绝则从活动人员表中删除,同时向学生发送消息
学生加入社团
学生加入社团由社长直接添加
学生退出社团
学生退出社团由社长直接删除,并发送消息给该学生
列出当前登录用户的消息
在消息列表中显示,获取当前登录用户的sno,列出消息
后端
public int addAnno(Announcement anno) 添加公告public void delAnno(Announcement anno)删除公告public List<Announcement> clubannoList(Association asso)列出某一个社团的所有公告public List<Announcement> publicannoList()列出公开的公告public void modTel(Student s)修改密码public void setPwd(Student s)设置密码public void setHeadImage(Student s,String path)设置头像public void modPinofo(Place p)修改场地信息public void modPstatus(Place p)修改场地状态public int addPlace(Place p)添加场地public void delPlace(Place p)删除场地public List<Place> placeList()列出所有场地public List<Place> avaplaceList()列出所有可用的场地
三、项目总结
这次大作业历时两个月左右,第一次做这种团队合作的项目,感觉到了技术储备不足和经验不足带来的困扰,这次项目使用的是jsp来写动态网页,之前使用过Django,比较类似,所以上手还算快,但是稍复杂一些的运用还是感到困难。其次是使用github进行版本控制,是第一次使用,过程中遇到了一些麻烦。我感觉这次项目最大的问题就是分工,在前期,对于要实现哪些功能,需要进行什么工作,没有过于思考的很完善,导致后期有很多功能实现时遇到了问题,是前期设计时没有想到的。其次是分工,没有较好的平衡大家的工作量,合理分配工作,导致存在一张页面可能由两三个人同时写的情况,显得非常混乱。最后是在编写代码中,思考不周全,比如一些错误提示,许多的细节问题,都是后面再去扣,如果一开始就能写好,能节省很多时间,总的来说还是经验不足。有这一次的项目经验,我相信下一次做项目的过程会更加的顺手
四、课程建议
1.总的来说这是一门实践性很强的课程,我更喜欢这样讲和做结合的,但是对于期末考试还是很慌的,对于期末考试要考的内容不太清楚
2.刚开始做团队项目的时候还是有一些迷茫的,老师可以把上一届的优秀作品拿来展示一下。