# 基于JSP和Oracle实现的志愿服务银行系统
# 1.系统概述
## 1.1 系统背景
本次实习我们小组选择志愿服务银行网站的建设。志愿服务的行为是高尚的,是赠人玫瑰手有余香的,每个人都应该试着通过做志愿活动加深对社会的认识。作为大学生的我们更需要这样的行为。但是可以看到,目前高校的志愿活动大多缺少规范化的管理,虽然有志愿者协会等社团的组织,但是总会遇到丢失志愿者信息,无法联系志愿者,志愿者有心使不上力等情况,而且只是一味的指挥志愿者服务而缺少鼓励性的奖励会让志愿者们失去热心从而无法坚持。目前高校并没有这样的系统,社会上的志愿者系统很多功能简单而且缺少维护管理,因此,建设一个志愿服务银行网站是很有必要的。
## 1.2 系统目标
![](http://www.writebug.com/myres/static/uploads/2021/10/19/c5199b0f5887cff34f5619d17cb4aab4.writebug)
## 1.3 开发环境与工具
![](http://www.writebug.com/myres/static/uploads/2021/10/19/28c80240fd2561e1440566d78897ea87.writebug)
# 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 质量要求
![](http://www.writebug.com/myres/static/uploads/2021/10/19/50656607442f849f7860cb132342f8b6.writebug)
### 2.4.6 安全问题
数据安全需要有一定保证。每个用户的权限必须分明,访问任何数据或者系统本身必须受控,防止越权操作。在物理上,也必须有一定的安全性,以防在硬件上的损坏。
### 2.4.7 系统变更
数据库设计需具备一定的灵活性,其内部的表可能会在以后发生变更。比如权限表可能会添加进新的角色,也可能会添加进新的权限,致使表内字段增加。页面也可能会在以后发生更改布局,添加、删除页面等改变。
## 2.5 系统模型
### 2.5.1 用例模型
#### 2.5.1.1 参与者汇总
![](http://www.writebug.com/myres/static/uploads/2021/10/19/24e0e1984688aebaa1845bf53f386b4a.writebug)
#### 2.5.1.2 用例汇总
![](http://www.writebug.com/myres/static/uploads/2021/10/19/34d7320f18beaf9b9db692eac3f383d5.writebug)
#### 2.5.1.3 顶层用例图
![](http://www.writebug.com/myres/static/uploads/2021/10/19/ccd33ba7d8351e1569d8a9add51b8dbd.writebug)
#### 2.5.1.4 用例描述
![](http://www.writebug.com/myres/static/uploads/2021/10/19/f8b4167181538107b089c3065f9092b6.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/790b7bb1cef5bdcbc2c72b5cff960d7d.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/7a32d2c9894d9c78bcc8a1cea58aacad.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/f4669061114b41af745d1bf34