基于JSP和Oracle实现的志愿服务银行系统
1.系统概述
1.1 系统背景
本次实习我们小组选择志愿服务银行网站的建设。志愿服务的行为是高尚的,是赠人玫瑰手有余香的,每个人都应该试着通过做志愿活动加深对社会的认识。作为大学生的我们更需要这样的行为。但是可以看到,目前高校的志愿活动大多缺少规范化的管理,虽然有志愿者协会等社团的组织,但是总会遇到丢失志愿者信息,无法联系志愿者,志愿者有心使不上力等情况,而且只是一味的指挥志愿者服务而缺少鼓励性的奖励会让志愿者们失去热心从而无法坚持。目前高校并没有这样的系统,社会上的志愿者系统很多功能简单而且缺少维护管理,因此,建设一个志愿服务银行网站是很有必要的。
1.2 系统目标
1.3 开发环境与工具
2.需求分析
2.1 现有系统概述
“志愿服务银行”就是一种时间储蓄机制,志愿者通过志愿服务存储时间,换算成积分,进而可以兑换服务或实物、参加星级志愿者评比。志愿者存储的时间可采取利息支取的方式,在有需求或遇到困难时优先获得免费服务。同时,记录的服务时长可换算成积分,到“银行”进行实物兑换。此外,还可以根据每次所做志愿服务评价的累积,成为一至五星不等的星级志愿者。
可能是这种模式推广较差的原因,现今可以见到的“志愿服务银行”网站数量甚少,而且功能简陋,用户界面也不亲和。我们要做的正是改变上述不足。
2.2 系统需求概述
待实现的“志愿服务银行”网站需要包含以下功能:用户登录注册功能,志愿者个人管理功能,志愿任务管理功能,排名查询功能,总行系统管理功能,积分兑换功能和交流功能。
每个功能再向下细分为多个子功能,分别承担该项功能的分功能。上述功能中,部分功能需求仅对高权限用户开放,以便对网站进行维护。
2.3 功能性需求
- 用户登录
- 提供不同权限用户进入接口
- 提供用户开户注册帮助接口
-
实现志愿者账户注销功能。
-
志愿者个人管理功能
- 设置或修改会员的个人基本信息
- 设置和修改会员的个人头像
- 修改会员的登录密码
- 记录会员进行志愿服务的时长
- 分为发布的任务和参与的任务。包括已经完成的任务和进行中的任务
- 志愿者等级,在志愿者到达一定积分后会自动提升,另:积分因兑换减少后等级不会降低
- 志愿者星级,在志愿者每次完成任务后,由发布任务的一方进行评价。一星至五星之间
- 打印志愿者证书
-
退出个人中心。
-
志愿任务管理功能
- 发布新任务,任务内容包括,任务名称、任务内容、任务开始时间和截止时间以及任务积分。若为志愿者发布任务,那么志愿者积分账户中应该有足够的积分用于支付
- 根据不同的属性组合查询相应的任务。查询功能——既通过不同的关键字组合查询相关任务
- 报名参加任务或者接受任务
- 选择参加或接受任务的志愿者。可以将一个任务拆分,分配给不同的参与者
- 提供志愿者培训和志愿者评优活动通道。仅发布文字公告即可
-
显示参与任务的进度。主要以文字的形式表示任务进度,可以附加以图片形式。任务结束后由发布者对任务参与者进行星级评价,可以附加留言
-
排名查询功能
- 列出志愿者中服务时长排名的前 n 位。时长相同则排名相同
- 列出志愿者中积分排名的前 n 位。同上
-
列出志愿者中星级、等级排名的前 n 位。如有星级相同再按等级照进行排序,等级排名类似
-
总行系统管理功能
- 管理各个会员的权限和维护
- 管理各个用户的所有资料,在特殊情况下对特定的用户的资料进行更改
- 在志愿者提交开户申请后,管理员进行审核,审核通过后即可开户
-
添加或删除商品,更改商品积分,维护积分商品,方便志愿者兑换
-
积分兑换功能
- 总团委发布奖品,定义奖品的积分后,普通会员可以使用积分进行兑换,兑换后积分做 相应的减少
-
积分可兑换线下实物,可以进行交易转账
-
交流功能
- 实现小型嵌入论坛,提供基本的留言回复功能,可以辅助以表情的形式
2.4 非功能性需求
2.4.1 用户界面
本网站面向大众,所以要考虑到各种类型的用户。熟悉计算机的用户不必多说,所要注重的是不熟悉计算机的用户。网站需要做到对于每个用户,在不提供任何培训的情况下,可以根据网站的提示而灵活的使用系统。网站的容易学习必须是一个非常重要的特性,同时防止用户出错也是一个非常重要的特性。人机接口的输入设备主要是鼠标与键盘,输出设备主要是显示器。
2.4.2 硬件考虑
建议的系统是各种终端设备,比如 PC 机、手机、平板电脑等等。设备必须具有网络功能,且具备浏览器。最低的内存大小要求为 512MB,最低硬盘容量为 256MB。
2.4.3 性能特征
数据处理的速度需要快速,吞吐量也必须达到一定水平。网页的反应需要达到高速,响应时间不得超过 5s。系统所处理的数据需要有一定容量的限制。
2.4.4 错误处理
系统对于输入错误应当给予用户提醒,并拒绝将其进行传输。对一些极端条件,应在保证系统不发生崩溃的前提下尽量解决问题。
2.4.5 系统接口
网站后台开发要具有较高封装性,提供可拓展接口,为未来整体嵌入于更大系统提供便利;后台接口,主要实现不同权限的访问功能区别。网站前台首页要包括各功能模块接口。
输入不来自于外部系统,但输出中可能会有打印操作,它会对应到打印机上。
2.4.5 质量要求
2.4.6 安全问题
数据安全需要有一定保证。每个用户的权限必须分明,访问任何数据或者系统本身必须受控,防止越权操作。在物理上,也必须有一定的安全性,以防在硬件上的损坏。
2.4.7 系统变更
数据库设计需具备一定的灵活性,其内部的表可能会在以后发生变更。比如权限表可能会添加进新的角色,也可能会添加进新的权限,致使表内字段增加。页面也可能会在以后发生更改布局,添加、删除页面等改变。
2.5 系统模型
2.5.1 用例模型
2.5.1.1 参与者汇总
2.5.1.2 用例汇总
2.5.1.3 顶层用例图
2.5.1.4 用例描述
2.5.2 对象模型
2.5.3 动态模型
用户登录注册状态图
任务管理状态图
任务管理顺序图
积分兑换顺序图
用户登录注册活动图
任务管理活动图
志愿者个人管理活动图
3.概要设计
3.1 系统总体设计
系统采用 SSH(struts2+spring3.x+hibernate3.x)框架。Struts 用于表现层与业务逻辑层之间的数据,接口交互,hibernate用于业务逻辑层和数据访问层之间的连接,spring用于控制 hibernate 和 struts。
系统逻辑结构,采用 B/S 结构,三层体系包括:表现层,业务逻辑层,数据访问层。
软件体系结构,三层体系结构。
3.1.1 逻辑结构设计
系统逻辑结构,采用 B/S 结构,三层体系包括:表现层,业务逻辑层,数据访问层。
数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。
业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
表示层:主要表示 WEB 方式,也可以表示成 FORM 表单方式,WEB 方式也可以表现成 jsp,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
3.1.2 软件架构设计
系统采用 SSH 框架,三层体系结构。数据存储采用 oracle 数据库,Web 服务器为 tomcat,表现层采用 JSP 页面设计。
3.2 系统功能设计
3.2.1 总体结构
3.2.2 功能设计说明
3.3 数据库设计
3.3.1 建库设计
user_t 数据表
task_t 表
prize_t 表
Authority_t 表
activity_t 表
publisher_task_t 表
accepter_task_t 表
prize_user_t 表
3.3.2 数据库表存放关系
3.4 界面设计
3.4.1 主界面
3.4.2 子界面 A
4.详细设计
4.1 模块接口设计
4.1.1 接口 A
4.1.1.1 功能描述
查找我的任务列表,根据登录的用户名在 task_t , publisher_task_t , accepter_task_t中找到我发布的任务和我接受的任务。
4.1.1.2 数据结构
数据模型中的 TaskT , PublisherTaskT , AccepterTaskT 的 JavaBean
4.1.1.3 输入项与输出项
输入项:登录用户的用户名
输出项:acceptertask,publishertask,task
4.1.1.4 算法与程序逻辑
java
public String findmytask(){
UserT user = (UserT)session.get("user");
String username = user.getUsername();
try{
List l1 = TMService.findByAccepterName(username);//AccepterTaskT对象 接收任务
List l2 = TMService.findByPublisherName(username);
if( l1!=null && l2!=null){
List acceptertask = new ArrayList();
List publishertask = new ArrayList();
for(int i=0;i<l1.size();i++){
String at_id = ( (AccepterTaskT)l1.get(i) ).getId().getTaskId();
TaskT atask = (TaskT)taskService.findById(at_id);//TaskT 对象
if(atask!=null){
acceptertask.add(atask);
}
}
for(int j=0 ; j<l2.size(); j++){
String pt_id = ( (PublisherTaskT)l2.get(j) ).getId().getTaskId();
TaskT ptask = (TaskT)taskService.findById(pt_id);//TaskT 对象
if( ptask!=null){
publishertask.add(ptask);
}
}
session.put("myacceptertask", acceptertask);
session.put("myprogress", l1);
session.put("mypublishertask", publishertask);
if(user.getAuthorityId().equals("1")){
return "superadmin";
}
else if(user.getAuthorityId().equals("2")){
return "commonadmin";
}
else if(user.getAuthorityId().equals("3")){
return "volunteer";
}
return "noright";
}
else
return ERROR;
}
catch(RuntimeException re){
re.printStackTrace();
return ERROR;
}
}
参考文献
- 基于JSP的学生就业信息管理系统设计与实现(吉林大学·马骁)
- 网上企业银行客户服务系统的设计与实现(吉林大学·苏小晖)
- 基于云计算模式的社会服务管理信息化平台项目设计与建设(吉林大学·杨刚)
- 基于J2EE和SQL Server的客户存款系统的设计与实现(电子科技大学·宣峰)
- 基于JSP的学生就业信息管理系统设计与实现(吉林大学·马骁)
- 基于云计算模式的社会服务管理信息化平台项目设计与建设(吉林大学·杨刚)
- 基于B/S的银行客户管理系统的设计与实现(吉林大学·黄涛)
- 银行统一认证与授权系统设计(东北大学·郭文强)
- 基于J2EE和SQL Server的客户存款系统的设计与实现(电子科技大学·宣峰)
- 基于云计算模式的社会服务管理信息化平台项目设计与建设(吉林大学·杨刚)
- 基于ERP的银行财务管理系统设计与实现(厦门大学·刘露遥)
- 某银行人力资源管理系统的设计与实现(北京邮电大学·杨哲)
- 哈尔滨银行短信平台的设计与实现(华东师范大学·刘琳琳)
- 基于J2EE和SQL Server的客户存款系统的设计与实现(电子科技大学·宣峰)
- 基于.Net的志愿服务中心自动化管理系统的设计与实现(电子科技大学·钟燕红)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设工厂 ,原文地址:https://m.bishedaima.com/yuanma/35539.html