作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师
主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助
文末获取源码
一,项目简介
目前从国内外的网约车市场来看,网约车模式具有较大的发展前景,不论是国外的优步,还是国内的滴滴打车,阳光出行等网约车企业。都在不断的拓展市场,壮大发展规模。虽然拼车模式发展较好,但是大多为面向社会开放,专为学校学生服务的少之又少。
在开学与放假当中,越来越多的同学选择了拼车去火车站、公交车站等出行方式,虽然方便但是存在多种弊端,一是通过QQ空间或群聊天发布信息,查阅繁琐且无法获取乘车关键信息。二是存在安全隐患,无法确定发起人与乘坐人是否为校内同学,学校不能第一时间确定学生的出行状态,仅能依靠在线填表的方式进行统计。
针对以上问题,在本系统中得到了很好的解决,基于Java平台的高效系统保证了网站的平稳运行与网络安全。集成百度地图SDK,发布拼车时可直接拉起地图选择位置。系统也内置了基于Socket全双工实时通讯,点击聊一聊即可快速发起在线聊天。同时电子签证功能与个人信息风险性评估功能的实现确保了同学们的乘车安全。
前台功能概述与分析:
⑴ 学生功能模块应该包含用户登录、注册、找回密码、查看个人信息、修改个人信息、修改密码、生成个人电子签证等基本功能模块。在实现基本功能模块的基础之上实现用户可以根据指定条件检索拼车信息、查看拼车详情、收藏本次拼车、取消收藏、申请加入本次拼车、查看我发布的拼车、同意/拒绝加入拼车申请、发起实时聊天、查看公告。
⑵ 用户需要提供自己的的姓名(注册后不可更改)学号密码与真实手机号完成注册,同样在密码找回时,也需要提供手机号接收验证码完成密码找回。
⑶ 用户可以修改自己的性别、生日、邮箱等基本信息,同时提供旧密码与新密码可完成密码修改操作。当用户完成所有信息填写时,即可生成自己的唯一电子签证。
⑷ 在发布拼车功能中,用户需要提供出发地、目的地、出发时间、需要几人参与拼车、是否有车、拼车说明等信息完成拼车发布。同时是否有车中提供三个选项(有车、无车、平台),其中选择平台将由司机端司机进行接单。
⑸ 用户可以根据拼车时的关键信息进行检索,快速定位到符合自己要求的拼车信息。
⑹ 用户收藏拼车后应可以在个人中心我的收藏快速找到该拼车,同时用户可以取消收藏本次拼车。
⑺ 用户找到指定拼车信息后,可以提交拼车申请,拼车申请提交以后,拼车发起人个人中心将提示有新的用户。拼车申请人可以选择同意或者拒绝,也可以选择与申请人进行在线聊天。
⑻ 拼车发起人具有修改本次拼车信息,删除本次拼车,处理拼车申请等基本操作权限。
⑼ 用户可以在个人中心查看消息提醒。消息提醒包含有新的拼车申请,新车申请被拒绝,已被移出本次拼车,本次拼车司机已接单,司机已退单等基本消息类型
⑾ 用户在登录后可以通过顶部公告栏获取最新的通知公告。
⑿ 个人中心页面包含与用户有关的所有操作,例如联系客服、退出登录等。
⒀ 司机功能模块包含登陆、注册、浏览学生订单、退单、修改密码等基本操作。
⒁ 司机注册需要提供姓名、性别、手机号、驾龄、车牌号、汽车座位数,汽车型号等基本信息。完成注册后,需要向管理员提供驾照,身份证等证件核对,完成后即可登录。否则司机无法登陆系统。
⒂ 司机登录后在主页即可浏览订单信息进行选择性接单(只显示平台订单,有车和无车类型不在此处显示),选择接单后填写预估价格即可完成接单。
⒃ 司机可在我的中心页面完成退单、修改密码、联系客服等操作。
后台功能概述与分析:
⑴ 网站信息浏览可以显示注册用户、发布拼车、活跃度指数等关键信息,包括显示可视化报表。
⑵ 拼车管理、司机管理、用户管理、公告管理可以对相关内容进行增删改查等基本操作。
⑶ 网站配置模块可由超级管理员进行网站相关配置,例如客服联系方式、修改管理员密码、对前台页面参数控制等。
⑷ 管理员管理模块儿可由超级管理员访问,包含对普通管理员的增加、修改、删除、权限分配等基本操作。
用例图可以作为需求分析的手段,它将从每个角色的角度出发去考虑问题,可以分析出系统大致功能,本系统用例图具体如下:
如图4-1所示,司机可以进行查看平台订单、接单/退单、修改密码等基本操作。但这些功能的使用基础是司机注册后已登录的前提下。
如图4-3所示,学生除了登录注册/密码找回/修改信息等基本功能外,还具有对拼车信息相关的基本操作权限(仅限于学生个人)。
如图所示,超级管理员可以对拼车、学生、司机、订单、网站信息等进行管理,同时也可以新增普通管理员并赋予管理员权限。
二,环境介绍
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7 Redis
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
后台开发技术:Springboot+Mybatis
前端开发技术:Vue+Element
三,系统展示
登录:顶部为通用导航栏点击返回按钮即可回到主页,登录页面动画为gif动态图片,中间部分为账户密码输入框,底部为登录、注册、找回密码按钮。用户输入账号密码后即可完成登录,在登录成功时会弹出是否保存密码,用户点击保存密码后将数据写入到H5本地存储中,在下次进入登录页面时,会自动检测是否保存了账户与密码,若有保存记录,则取出数据自动填入到输入框中。若用户点击取消则会清除H5中保存的账号记录,下次进入时输入框均需要重新输入账号密码(图5-1)。
图****5-1 用户登录
图****5-2 密码找回
主页设计:主页顶部为当前功能页面标题栏,左侧按钮点击后可以跳转到用户登录界面,右侧按钮点击后悔跳转到拼车信息检索页面。主要区域为用户发起的拼车信息,此处拼车信息只显示状态为正常的拼车列表,状态为结束和暂停的拼车将不会被显示。在拼车列表中会显示出发地 - 目的地、是否有车、加入拼车说明、出发时间、当前需要多少人以及已经加入了多少人(图5-3)。
图****5-3 主页面
图****5-4 搜索页面
图****5-5 拼车详情页
图****5-6 发布拼车页
拼车详情页面设计:进入到拼车详情页会展示本次拼车相关信息,在本页中可以看到是由谁发起了拼车,并且点击聊天可以和拼车发起者进行在线聊天。同时在下方也会显示有哪些用户加入了本次拼车,在每位用户的名字下方会提示该用户是否具有电子签证,若未生成电子签证,则会进行风险提醒。点击聊天按钮也可以和同行用户进行在线聊天。在当前页面中可以进行收藏操作与申请加入拼车操作,若当前拼车已收藏,则收藏按钮将不可点击置为锁定状态并给出“已收藏”提示。当遇到一下情况时,申请加入按钮也会进入锁定状态:1.拼车发起人暂停了拼车、2.当前拼车已经满员、3.已经加入了本次拼车、4.该拼车是由自己发起的(图5-5)。
发布拼车页面设计:发布拼车需要输入必填信息,包括出发地、目的地、出发时间、是否有车、限制几人、拼车备注(可以在拼车备注中说明加入拼车的具体要求,以便同学在提交拼车申请时考虑自身情况)。出发地与目的地类似,可以在输入框中输入想要的地址,也可以点击右侧的定位图标。点击图标后会在下方弹出地址选择框,用户可以滚动选择后台管理员已设置好的地址。在选择出发地与目的地时,二者必须有一个是学校,手动输入地址后,都会自动将另一个地址置为学校,弹出菜单滚动选择地址后同样如此。选择出发时间时点击右侧按钮可弹出时间选择插件,可以滚动选择预计出发时间。是否有车选择为单选框,根据有车无车情况选择。限制拼车人数为步进器控件,最多可拼7人,最少1人。全部选择完成后输入拼车说明(拼车说明字数限制在100字以内)即可点击发起拼车,返回首页即可看到自己发布的拼车(图5-6)。
图****5-7 好友列表页
图****5-8 个人信息页
聊天页面设计:在聊天好友列表界面中,整体布局采用了类似微信聊天布局,列表头像处可以显示消息角标展示几条未读消息,右侧可以显示最后一次聊天的时间信息,居中部分为用户姓名显示,姓名下方为最后一条聊天消息。该页面消息接收为实时接收,每隔五秒会向后台获取一次未读消息记录并且同步到好友列表中。当收到未读消息时,时间最晚的消息将会最先显示,同时指定用户的好友列表位置将会置顶显示,这样的设计增强了用户在线聊天体验,使消息获取更加及时与方便(图5-7)。
点击好友列表指定好友即可跳转到在线聊天页面。聊天页面设计仍参考主流聊天软件对话页面,好友消息在左侧显示,自己的消息在右侧显示。气泡也用蓝色与白色加与区分以便获得更好的对话体验。在聊天对接上本系统采用的是Socket全双工通信,在页面无需刷新情况下即可接收服务端消息推送并且实时更新,经过测试,平均响应速度在毫秒级,较传统ajax轮询接收消息有较大的性能提升。另外,在消息发送与接收时,消息列