版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Android的校园心理咨询管理APP的设计与实现摘要伴随着互联网技术的成熟和快速发展以及移动手机的使用,人们的学习、工作和生活节奏也越来越快,校园内的学生们面临的心理压力也越来越大。对于这类现象,开发了基于Android的校园心理咨询管理APP。该APP采用MVC设计模式,基于库文件RxJava+RxRetrofit+RxAndroid+OkHttp的网络请求框架、Glide图片处理框架、Butterknife框架、ReyclerView控件和第三方极光推送的技术,实现了APP的校园资讯浏览、心灵鸡汤文章收藏与查看、心理咨询的聊天、心灵感悟等功能。服务器端使用spring
boot、mybatis
plus、shiro、swagger2、redis、mysql、jwt多数据源等框架,实现了后台管理员管理上传数据到服务器的功能。该APP的心灵鸡汤文章能够使学生进行自我的检查,引导学生了解并管理好自我情绪,使学生健康素质得到提高。心灵感悟的周边学生健康的生活分享功能能给学生带来健康的学习环境。该APP也为学生提供了快捷方便地咨询服务,能够有针对性的进行心理疏导,消除潜在的隐患,及时解决学生心理各方面的问题,能够减少学生压力、舒缓情绪、恢复活力,有利于学生的心理健康的发展。关键词安卓,校园,心理咨询管理,健康PAGE1DesignandImplementationofCampusPsychological ConsultationManagementAPPBasedonAndroidAbstractWiththematurityandrapiddevelopmentofInternettechnologyandtheuseofmobilephones,people'slearning,workandliferhythmaregettingfasterandfaster,andthepsychologicalpressureonstudentsoncampusisalsoincreasing.Forsuchphenomena,anAndroid-basedpsychologicalcounselingmanagementAPPwasdeveloped.TheAPPadoptstheMVCdesignpattern,basedonthelibraryfileRxJava+RxRetrofit+RxAndroid+OkHttpnetworkrequestframework,Glideimageprocessingframework,Butterknifeframework,ReyclerViewcontrolandthird-partyAurorapushtechnology,whichrealizesthecampusinformationbrowsingoftheAPPandthechickensoupofthesoulArticlecollectionandviewing,psychologicalconsultationchat,inspirationandotherfunctions.Theserverusestheframeworkssuchasspringboot,mybatisplus,shiro,swagger2,redis,mysql,jwtmultipledatasources,etc.torealizethefunctionofbackgroundadministratortomanageuploadingdatatotheserver.TheAPP'ssoulchickensouparticlecanenablestudentstoconductself-examination,guidestudentstounderstandandmanagetheiremotions,andimprovestudents'healthquality.Thehealthylifesharingfunctionofthesurroundingstudentsinspiredbytheheartcanbringstudentsahealthylearningenvironment.TheAPPalsoprovidesstudentswithaquickandconvenientconsultationservice,whichcanprovidetargetedpsychologicalcounseling,eliminatepotentialhiddendangers,andsolveallaspectsofstudents'psychologicalproblemsinatimelymanner.Developmentofmentalhealth.KeywordsAndroid,Campus,PsychologicalConsultationManagement,Health目录TOC\o"1-3"\h\u199851引言 16841.1课题研究背景与意义 130921.2论文的结构安排 2137332相关平台和工具简介 3300272.1Android平台概述 362052.2Android系统架构 312552.2.1LinuxKernel 332872.2.2AndroidRuntime 4245592.2.3Liberaries 4265912.2.4ApplicationFramework 4180702.2.5Application 462222.3Android应用的构成 495292.3.1Activity 5218102.3.2IntentReceiver 5272122.3.3Service 5912.3.4ContentProvider 6124872.4Android系统相对于其他系统的优势 6121992.5本章小结 627643校园心理咨询管理APP的需求分析 765323.1APP总体分析 7221663.2APP功能需求 8180773.2.1校园资讯 861483.2.2心灵鸡汤 8147963.2.3心理咨询 8253893.2.4心灵感悟 922503.2.5“我的” 922763.3APP非功能需求 9294933.3.1性能需求 9317683.3.2数据保密性 9130213.4本章小结 9244324校园心理咨询管理APP服务端的设计与实现 10224024.1APP的服务端的总体设计 10257524.2APP的服务端的功能模块设计 10208334.3校园心理咨询管理APP服务端数据库的设计 11130764.3.1表设计 11105614.3.2实体关系图(E-R图)设计 14313854.4本章小结 1666295校园心理咨询管理APP的实现 17136245.1登录与“我的” 1776895.2校园资讯 19327405.3心灵鸡汤 21244105.4心理咨询 24256215.5心灵感悟 2856335.6本章小结 289186校园心理咨询管理APP的系统测试 2996606.1测试概述 29245196.2测试用例 29278096.3测试结果分析 31327216.4本章小结 316389总结与展望 3255391.本文主要工作 32181092.展望 3232689参考文献 3327390查重报告单 3413770致谢 35PAGEPAGE11引言1.1课题研究背景与意义伴随着社会开放程度的加大,社会在不断地发展,大学生的学习生活上压力的增大,心理健康已经成为社会上需要重视的问题。面对社会各种职业的需求和职业竞争的加剧,他们的心理都在产生强烈的变动,许多大学生对自己的期望值很高但是承受挫折能力不强,所以接受的心理压力和面对心理问题的能力降低,大学生面临的学习,生存,心理情绪和就业压力方面显著增大。所以,了解和解决大学生心理面的健康问题是一件十分重要的事情。从国内外在Android研究技术上的情况相对于校园心理咨询管理的发展状况来看:Android开发还是主要是以应用软件及APP开发为主。随着时间的推移,国内外对于Android平台的一系列的研究与开发日渐成熟,相应的各行各业的APP应用开发也越来越多。目前国内外在心理咨询方面的发展差距仍然存在,以及针对大学身心理咨询的发展各不同[1]。在国外尤其是欧美和日本等经济兴旺地区,对于大学生心理健康教育任务起步较早,开展的也相对成熟。在世界二战之后美国就有了心理健康方面的工作者去服务于教育机构,医疗机构等。目前西方的国家都配备有心理健康卫生、心理咨询机构,并设有专门的人员。所以说,在这些地方,现在已经进入了一个很重要的大学生心理健康教育新的开展阶段。在美国,心理辅导课的开设有着悠久的历史[2]。戴维斯(Tene·B·Davis)最早在1907年,便曾经在其督学学区的学校开设每周一次的辅导课。近年来,西方许多幼儿园和小学就已经在着手开始着添设心理课程。关于中学阶段,西方国家都有开设心理健康课程。而关于大学,欧美等国家普遍都开展了心理健康必修课与选修课。关于国外经济发达地区的大学生心理健康教育开展现状,总的归结起来,包含以下特点:第一,心理健康服务的领域呈现出综合性和多样性的特点[3]。这一特点在美国的高校心理教育中体现的最为明显,详细包含了事业或者职业的选择和学业选择辅导指点、学习咨询、学生的社会问题和心情的问题咨询、对家长、老师提供有效的咨询服务、对学校的课程设置等进行干预、对有问题的学生进行治疗和和具体的学业辅导[4],还包括展开服务机构本身的开展工作。第二,队伍建立专业化与标准化。外国发达国家在心理健康工作人员的学历规范和从业要求上都有很高的门槛。在美国,只要得到临床心理学博士学位并且在所在州经过考试得到资格的。第三,实行个性化与多元化。外国的一些学校的在心理方面的专家,都专门在学生宿舍设点欢迎学生的服务,帮助学生及时地解决心理问题[5]。心理干预是帮助大学生保护心理健康的主要手段,传统的干预办法一般包括游戏交谈法、行为疗法、生物反应技术等[6]。因此,许多国外高校都有对于学生的心理问题,特地的设点展开心理咨询来解决学生的学习、生活的不好的一面。对我国各地一些学校调查发现,大学生心理健康服务不太完善,成为了各高校存在的最遍及的问题[7]。各高校心理健康教育人员往往身兼数职,在大多数高校中,辅导员普遍的同时肩负着心理健康导师的职责[9]。辅导员自身就有相当的工作量,同时所要面对和担当的学生也不在少数,因而就决定了他们往往不能够对学生进行深刻仔细的去理解他们的内心情感问题[8]。另一方面,作为业余人士,学生的很多心理困惑和一些挫折也存在这老师束手无策的局面。除了学校方面对学生心理健康教育的关注有所少以外,学生自身也对学校的心理咨询兴趣不高,愿意去了解和加入到心理咨询中的学生又是少之又少。这也就弄成了现在大学的心理教育服务基本上形同虚设,对学生的心理健康的协助很微小。1.2论文的结构安排论文的内容主要分为以下几个部分:第一章引言,校园心理咨询管理APP课题的研究背景和意义及论文的结构安排。第二章相关平台和工具简介。第三章校园心理咨询管理APP的需求分析。第四章校园心理咨询管理APP服务端的设计与实现。第五章校园心理咨询管理APP的实现。第六章校园心理咨询管理APP的系统测试。文章最后为全文总结与展望。
2相关平台和工具简介2.1Android平台概述 Android是基于Linux的操作系统开发的[10],主要使用于APP和移动设备上,像手机,此系统使用一个被叫做软件叠层的方式进行组成包含操作系统即基本的操作系统、用户界面即展示给用户看的界面、中间件上级与下级之间的通信、和应用软件最上的一层的4层[6]。这样的软件结构能够明确各个层的分工,使得层与层之间相互的分开,互不打扰。这种分工保障了当下面的层内或层下发生改变时,上面应用的程序不需要任何的改变,也能够保障层与层之间的低耦合度。2.2Android系统架构图2-1Android系统架构图2.2.1LinuxKernel Android基于Linux提供核心系统服务,例如:安全管理服务、内存服务管理、服务进程管理即进程之间需要用的服务、进程通信管理即通信,需要用到什么就通知进程、网络堆栈管理服务、驱动模型管理服务、电源管理服务即电源的使用情况。[10]LinuxKernel是软件和硬件之间的抽象层,它能够隐藏具体硬件的细节然后为上级提供统一的服务,能够实现了基于java的程序框架。2.2.2AndroidRuntime Android的核心库,提供很多编程需要用到的功能。每个基于Android的程序都是一个Dalvik虚拟机中的实例。CoreLibraries是运行android应用程序所需要的核心库,有许多开发者需要用到的库文件。我们知道java程序的运行都是需要java的核心包的支撑的,然后再通过JVM虚拟机来运行我们的应用程序[11]。2.2.3Liberaries Android的系统里面的各个组件需要的库使用能够在Android里面的C/C++库的集合找到并使用。通过Android的应用程序框架这些功能够提供给开发者。
有以下核心库:系统C库[12]:能够调节基于嵌入式Linuxhe的设备、媒体库[12]:视频,音频的管理、界面管理:
优化2D和3D图形层,布局的管理
、LibWebCore[13]:网页浏览器驱动,为浏览器提供支持,能使Android浏览器和网页视图驱动起来。SGL:基本2D图形引擎、3D库:基于安卓系统的API的实现、FreeType[13]:使位图和矢量字体渲染,优化界面,增加用户好感值、SQLite[13]:能够提供数据存储的关系型数据库。2.2.4ApplicationFramework 程序员能够使用的核心程序所应用的API框架[14]。因为他的功能能够被任意的应用程序发布并且其他程序也可以应用这些功能,所以应用程序的架构目的是用来简化组件的重用。所以这一机制能够容许用户替换组件。所有的应用程序其实是有服务和系统,包含:View:视图的集合、ContentProviders:分享自己的数据的数据提供者、ResourceManager:布局文件,放一些图片,文字样式,res样式的管理器、NotifacationManager:显示在通知栏里面的弹窗,能够通知用户收到的信息。ActivityManager:管理应用程序的生命周期,像一个人的生命周期一样,从出生到死亡。2.2.5Application Application:开发者能够自己自行开发应用程序。有核心的程序集合,像是手机中各种自带的APP都是,相册、计算器、应用商店。2.3Android应用的构成 由活动Activity给用户展示的,意向接收器IntentReceiver在Activity和Frament之间进行通信的,服务Service在后台保持APP运行的,内容提供者ContentProvider提供数据的四种组织而成的叫Android应用程序。2.3.1Activity Activity是Android结构块中最根本的一种,在APP中,一个activity就是一个独立的展示在用户面前的屏幕。继承于Activity这个基类的每一个activity都是一个独立的类,都能够运行。而且,多个Views的界面控件都可以被这个activity类显示,像HTML5页面一样,点击并运用就可以对事件发出响应。很多的应用都会包含多个的屏幕,例如:一个登陆的APP界面就是一个屏幕,一个日历显示界面就是一个屏幕。每一个这样的屏幕,都是一个activity。从当前Activity跳到另一个Activity是很简单的。例如,在应用里面,如果两个Activity通信,需要当前的Activity返回值给前一个Activity。当新的Activity启动后,新的Activity会显示在用户的面前,前一个的Activity界面将会保存在堆栈中并隐藏。用户也可以返回到前一个Activity。当不想使用这个Activity的时候,也可以从堆栈中删除。一般的,APP里面的Activity都会保留经过主界面的运行界面。 使用Intent这个类,用户使用APP能够在界面与界面之间来回跳转。Intent类是用于描述一个APP用户即将会点击什么按钮来触发做什么事情。当你要发消息或者打电话的时候,你就要提供一个动作为VIEW的intent。两个触发的动作之间对应的数据是Intent中最重要的部分。基本的类型有四个:VIEW、MAIN、PICK、EDIT等。 还有一个与Intent有类似功能的一个类叫IntentFilter。但是IntentFilter是需要在AndroidManifest.xml中定义的。相对于intent的做某事的请求功能来说,一个intentfilter则能够表达出一个activity操作了哪些intent。2.3.2IntentReceiver 当外部来的事件来,如当收到消息时,或者网络数据请求时,你希望你的应用能够对做出响应的时候,你就能够使用IntentReceiver。IntentReceiver被启动的时候,不用自己去请求,系统能够知道你的需求并启动APP。2.3.3Service Service是只在后台运行的、没有用户界面、生命周期长的程序[15]。有一个例子就是一个现在比较火的喜马拉雅听书得到APP,当你打开APP后,你可以选择在听书的界面停留,你可以到其他界面进行其它的操作,像与别人聊天、发信息、玩游戏,你都能够听书,因为这个APP的activity会使用startService()方法会启动一个service,可以在后台保持听书节目的播放。当连接到一个service之后,还能够service提供的接口与它进行通信。在这个应用中,会有多个activity,让使用者可以选择收听哪一个节目。同时,手机系统也会保障这个service不停的一直在执行,直到这个APP被关闭,service也就运行完,关闭了。2.3.4ContentProvider ContentProvider能够处理的各种数据类型。数据共享是它的功能,能够提供一些你指定的数据给你服务,因为数据是隐私的,不能够分享,而ContentProvider能够做到。2.4Android系统相对于其他系统的优势 1.市场份额很大:iOS不多于15%,
WindowsPhone不多于5%,但是Android超过了85%; 2.APP发展快速:历年来APP在多个平台上使用,很多手机企业也是需要APP的。美颜相机发展顺速。 3.智能企业助力:大部分企业研发Android智能手机,APP发展的也越来越多,其市场潜力在增大。 4.Android价格低但性能不低[16]:尽管Android平台的手机价格便宜,可是其性能一点也不便宜。不管是它的功能还是外观设计,Android都简单实用,耐用。 5.硬件配置很优、类型多:每一家手机企业厂商都推出了各自的Android智能手机,各式各样的。 6.方便大众开发:大众会有很多创新添加进去产生出很有创新精神的软件。2.5本章小结 本章简要介绍Android的的平台概述、系统架构、应用的构成和系统优势,能够帮助更好的开发校园咨询管理APP,理解一个APP的开发需要的开发环境,更好的运用到程序代码当中。
3校园心理咨询管理APP的需求分析3.1APP总体分析 校园心理咨询管理APP分为客户端和服务器端后台,客户端是给学生和心理医生使用,服务器端是医生管理员进行后台管理、添加数据到服务器、提供客户端所需的资源文件和正常使用,如图3-1所示。图3-1APP总体架构图 基于RXjava+RxRetrofit+RxAndroid+OkHttp+Glide+Butterknife+极光推送,采用MVC模式开发一款APP。RxJava是一种基于观察者形式的响应式编程框架,其中的主要角色有:Observable是RxJava描述的事件流,在链式调用中十分的明晰,事件从创立到加工处理再到被订阅者接收到,就是一个接一个的Observable构成的一个事件流。ObservableOnSubscribe是这个事件流的源头。Observer将会订阅前面事件的创建,加工以后的最终结果,所以,Observer是整个事件流的订阅者[17]。然后重写它的方法onNext(),onCompleted(),onError()和onSubscribe()等。 Retrofit是网络请求框架,而校园心理咨询管理APP是将RxJava与Retrofit一起配合使用。Retrofit底层是基于OkHttp实现的。Retrofit与其他请求框架不同的是,它使用了注解,比如@GET、@POST,能够简单运用这些注解就能够达到想要的功能。 RxAndroid是RxJava2的Android特定绑定。该模块为RxJava添加了最低限度的类,能够使得在Android中编写响应式组件变得简单而轻松。更具体地说,它提供了一个Scheduler,可以在主线程或任何给定Looper的线程上进行调度。而OkHttp本质是一个Http客户端,我们可以通过OkHttp发送向服务方发送Http请求,然后获取相应的响应内容。 Glide是图片加载库。有简单的API使用,我们这里需要用到Glide图片加载库,上传图片、显示图片,Glide用起来简单、方便。 ButterKnife是View用于注于Android系统、能够在Resource、Action注入框架,因为,这里会有许多控件需要初始化,一键生成,ButterKnife可以减少setOnClickListener()和findViewById()方法的使用,绑定onClick点击事件处理功能和绑定样式View、能够简化和减少代码、提高开发的效率,方便的处理Adapter里的ViewHolder绑定问题,能够使开发者阅读代码的可读性强,使用配置比较方便,运行时代码清晰,也不会影响APP的效率。 极光推送是第三方SDK,是运用在心理咨询的聊天功能上,简单,方便,3.2APP功能需求3.2.1校园资讯 为了提高学生的文化和道德素养,深入学校文化的教育并且丰富大学生们的校园生活。我们都知道校园里会有很多校园资讯,心理知识讲座,读书教育节目,热辣的校园爆点,实用的生活细节,一般我们是要在网站上才能浏览到这个信息,而APP提供这样便捷的了解到校园里面发生的一些事情。校园资讯展示界面包括轮播图,和开展活动的事例展示。3.2.2心灵鸡汤 对于学生来说,不知道哪些文章是对自己有积极作用的,如果说靠自己在网上搜集只会对事不对人,校园心理咨询管理APP就能够进行分类,有心灵鸡汤的列表显示,可通过点击故事,文稿,诗词,名言警句,句子,名人名言,经典语录等,查到自己想要看到的心灵鸡汤信息。学生根据自身需求,选择性的阅读,并且可以收藏文章,后续可以继续再阅读,从而达到高效的进化心灵。3.2.3心理咨询 在校大学生们面临着各个方面的压力与竞争,部分学生的心理健康状况慢慢地越来越差,学生不积极参与心理活动,学校的心理咨询服务成效就日益低下。实际过程中,学校的心理咨询需要预约,不能够立即和学生进行沟通,学生的心理需求得不到及时的处理,而APP提供线上心理咨询,能够实时发送推送消息,与学校心理医生进行沟通,及时解决学生的心理疑惑,避免时间等待过长,防止发生意外事情。现在,中国心理咨询市场的就医率比较低是比较大的问题,自愿去看心理医生的人比较少,而且经常去看心理医生的人就更少了。3.2.4心灵感悟 学生的励志事件,学校对他们的采访,并由管理员管理进行更新到后台,然后APP展示出来,让大学生们可以看见,得到正能量的事迹。3.2.5“我的” 学生登录可以点击导航栏标题的小头像进入到个人中心,也可以在底部导航栏滑到最后一个页面查看个人信息。在个人中心有四个五个控件,分别点击可以查看心理咨询回复信息,也可以查看或删除自己的收藏的心灵鸡汤文章,可以修改自己的密码,生日和爱好等。3.3APP非功能需求3.3.1性能需求 APP使用起来操作起来不卡顿、电量少用、流量少用、性能要稳定、操作不闪退、打包的APP的要小。APP心理咨询的聊天功能等待回复时间应是实时。有以下几点:布局优化:减少布局层级嵌套,布局复用,删除没有用的属性。避免过度绘制:常用布局的优化,自定义View的优化。启动优化:UI的布局,数据准备策略的优化,逻辑加载的优化。 (4)合理的刷新机制:减小区域,减少刷新的次数,防止有较高的CPU线程在后台运行,避免消耗性能。3.3.2数据保密性 数据处理的机密性,心理咨询模块涉及到的学生信息和医生信息等都属于个人隐私内容,不可以泄露。所以APP实现操作的时候要保障数据安全性。需要严格的用户权限访问控制,用户在分角色输入工号或者学号和密码进行身份认证后,只能够访问自己本身的权限范围内的数据,比如说医生只能够看到学生的列表信息,学生就只能看到医生的列表信息,不能够看到对方的信息,并且只能进行自己本身权限范围内的操作。不同的APP使用者,医生和学生是具有不同的身份和权限的,需要在他们身份真实可信的前提下,保护他们的数据不被其他人访问和修改,要确保用户的数据是完整的,没有被其他人拿去。3.4本章小结 本章介绍了校园心理咨询管理APP的需求分析及各个功能模块的需求和非功能的需求分析,整理出APP需要实现的功能,对各个功能模块进行了描述。
4校园心理咨询管理APP服务端的设计与实现4.1APP的服务端的总体设计 如图4-1所示。由用户登录注册,首页图片轮播,校园资讯浏览,心灵鸡汤,心理咨询,心灵感悟管理六部分组成。采用了,应用mybatisplus、springboot、shiro、swagger2、redis、jwt、mysql、多数据源等框架的renren-fas轻量级的快速开发平台,其设计目标的特点是轻量级、开发快速、容易扩展、学习起来简单。 项目特点:好的代码结构及注释,能够清晰的阅读及快捷的二次开发,能够实现前后端分离,使用token来数据交互,灵活的权限访问控制,前端不必关注后端技术,能够页面交互,可控制到页面或按钮,满足绝大部分的权限需求。在很大的程度上提高了开发效率,完善了代码生成机制,能够减少80%以上的开发任务[18]。图4-1服务端总体架构图4.2APP的服务端的功能模块设计 后台管理员可以上传首页轮播图,校园资讯,鸡汤文,学生事迹到后台管理界面,然后服务器同步到APP。后台有登录与注册功能,管理员可以进行登录,管理后台。后台能够记录上传数据的时间,以免不能够查到以前的消息,学生可以到后台管理员那里去投稿,推荐使用哪种系列的文章和正能量的事迹。 管理员可以定期的更换首页轮播图片,校园资讯消息,上传鸡汤文章,学生事迹更新到后台,然后学生可以在APP上查看到最新的数据,了解关于学校的一些新鲜事情,并且线下去参加这些活动,然后心灵就会得到放松,心情就会变好。4.3校园心理咨询管理APP服务端数据库的设计 数据库设计是用于系统中数据的存储与管理,是系统设计的基础。主要包含以下几个方面的内容。能够定义与创建数据库的模式、内模式、外模式等数据库对象;组织、管理和存储数据字典、用户的数据、存取的路径;能够实现用户对数据里的检索、修改、插入和删除;数据库的运行管理和事物管理数据;数据库恢复与维护。 对于数据的分析,通过E-R图实现数据库的概念结构的定义。 良好的数据库:(1)带来了节省程序的存储空间(2)数据读起来完整,保证数据的完整性
糟糕的数据库:(1)数据多,不易使用,存储空间不能很好的利用起来(2)数据会产生的不完整4.3.1表设计 该系统中主要包括用户表和消息表、校园资讯表、校园轮播图表、心灵鸡汤表、心灵感悟、心理咨询表等。本文对部分数据库表结构进行展示如下图展示。表4-1app用户表字段名注解类型长度user_id表IDbigint20username学号工号varchar50mobile手机号varchar20password密码varchar64createtime创建时间dateemail邮箱varchar100uname真实姓名varchar50lastlogin最后登录日期datetimefinallyloginip最后登录IPvarchar100status状态tinyint4avatar头像varchar100salt与密码进行加密的字段varchar20likes爱好varchar100birthday生日datecollect收藏varchar100表4-2app用户角色关联表字段名注解类型长度id表IDbigint20tbuser_id用户Idbigint20role_id角色Idbigint20表4-3app消息表字段名注解类型长度id消息的IDint11title消息的标题varchar100content消息的内容varchar255type消息的类别:1,告警消息;2,系统消息int11表4-4用户消息关联表字段名注解类型长度idint11user_id用户的Idint11info_id消息的Idint11info_stauts消息的状态:true已读:false未读varchar11info_time消息的时间datetime表4-5校园资讯表字段名注解类型长度idIDbigint20title标题varchar255smal_title小标题、概述varchar255content内容varchar1000img图片varchar100create_time创建时间datetimestatus状态0不显示1显示int1表4-6校园资讯图片轮播表字段名注解类型长度img_1图片1varchar100img_22varchar100img_33varchar100表4-7心灵鸡汤表字段名注解类型长度idIDbigint20title标题varchar255smal_title小标题、概述varchar255content内容varchar1000img图片varchar100create_time创建时间datetimestatus状态0不显示1显示int1表4-8心理咨询表字段名注解类型长度idIDbigint20title标题varchar255user_id医生IDbigint20content内容varchar1000img图片varchar100create_time创建时间datetimestatus状态0不显示1显示int1表4-9心灵感悟表字段名注解类型长度idIDbigint20title标题varchar255smal_title小标题、概述varchar255content内容varchar1000img图片varchar100create_time创建时间datetimestatus状态0不显示1显示int14.3.2实体关系图(E-R图)设计图4-2医生实体属性图图4-3学生实体属性图图4-4校园资讯实体属性图图4-5首页轮播图实体属性图图4-6心灵鸡汤实体属性图图4-7心灵感悟实体属性图图4-8心理咨询关系ER图4.4本章小结本章讲述了校园心理咨询管理APP服务端的总体设计和功能模块设计,数据库的表设计及实体关系图(E-R图)的衍生,使得APP的开发需求数据明确,APP能够快速开发。
5校园心理咨询管理APP的实现5.1登录与“我的” 登录界面主要用于用户身份识别与验证,对于不同身份的用户,即医生和学生提供不同功能界面,主要流程:获取用户的输入,与数据库查询结果进行对比验证用户的合法性。登录界面用到了两个TextView的文本框作为学号或工号和密码的输入,单选框RadioButton实现学生和医生的两个角色的选择,界面如图5-1。下面是关键代码。_____________________________________________________________________//密码登录
Stringname=SpUtils.getSpUtils().getSPValue(AppConfig.LOGINACCOUNT,"");
et_name.setText(name);
if(TextUtils.isEmpty(name)){
et_name.setHint(Html.fromHtml("<fontcolor=\"#cbccd1\"><small>"+getResources().getString(R.string.enter_account_hint)+"</small></font>"));
}
tv_type_kj.setSelected(false);
tv_type_mm.setSelected(true);
layout_type_code.setVisibility(View.GONE);
layout_type_mm.setVisibility(View.VISIBLE);
tv_find_psw.setVisibility(View.VISIBLE);
tv_find_psw.setOnClickListener(view->{
Intentintent=newIntent(LoginActivity.this,ResetPsw.class);
startActivity(intent);
});
et_psw.setHint(Html.fromHtml("<fontcolor=\"#cbccd1\"><small>"+getResources().getString(R.string.psw_hint)+"</small></font>"));
et_psw.setText("");
et_code.setText("");_____________________________________________________________________图5-1登录图5-2“我的” 能够修改自己的信息、头像、生日、查看我的收藏、我的爱好功能。做了两个界面一个使用的是FrameLayout另外一个使用的是DrawerLayout,能够有侧面展开效果,界面如图5-2、5-3所示。下面是关键代码。_____________________________________________________________________TextViewtv_my_message=getActivity().findViewById(R.id.tv_my_message);
TextViewtv_my_collect=getActivity().findViewById(R.id.tv_my_collect);
TextViewtv_birthday=getActivity().findViewById(R.id.tv_birthday);
TextViewtv_like=getActivity().findViewById(R.id.tv_like);
TextViewtv_modify_psw=getActivity().findViewById(R.id.tv_modifypsw);
//TextViewtv_name=getActivity().findViewById(R.id.tv_name);
//我的消息
tv_my_message.setOnClickListener(view->{
Intentintent=newIntent(getActivity(),MsgActivity.class);
startActivity(intent);
});
//我的收藏
tv_my_collect.setOnClickListener(view->{
Intentintent=newIntent(getActivity(),CollectionActivity.class);
startActivity(intent);
});
//我的生日
tv_birthday.setOnClickListener(view->{
Intentintent=newIntent(getActivity(),ModifyPsw.class);
startActivity(intent);
});
//修改密码
tv_modify_psw.setOnClickListener(view->{
Intentintent=newIntent(getActivity(),ModifyPsw.class);
startActivity(intent);
});}_____________________________________________________________________图5-3“我的”5.2校园资讯 顶部可以点击小图标查看个人信息,有图片轮播形式,轮播图下方有关于校园的资讯,如图5-4所示。使用了Glid图片处理框架和RecyclerView控件。界面如图5-4。关键代码如下所示。_____________________________________________________________________privatevoidinitView(){
campusRecycler=getActivity().findViewById(R.id.rv_refresh);
campusAdapter=newCampusAdapter(getActivity());
LinearLayoutManagerlinearLayoutManager=newLinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false);
campusRecycler.setLayoutManager(linearLayoutManager);
campusRecycler.setFocusableInTouchMode(false);
campusRecycler.setFocusable(false);
campusRecycler.setNestedScrollingEnabled(false);
campusRecycler.setAdapter(campusAdapter);
}
privatevoidinitData(){
headImgs.add("/it/u=4106410432,2381552877&fm=26&gp=0.jpg");
headImgs.add("/upload/news/image/20180131/20180131091326_92723.jpg");
tv_head_indicator.setText(1+"/"+headImgs.size());
/**轮播图相关配置**/
Fragmentfragment=HeadBannerFragment.newInstance(headImgs,newHeadBannerFragment.OnPageSelectedClickListener(){
@Override
publicvoidonCurrentPage(intpostion){
tv_head_indicator.setText(postion+"/"+headImgs.size());
}
});
getActivity().getSupportFragmentManager().beginTransaction().add(R.id.head_container,fragment).commit();
}______________________________________________________________图5-4校园资讯5.3心灵鸡汤 心灵鸡汤美文,点击筛选然后筛选出各种各样的篇章,可以通过关键词搜索想要的文章。通过点击上拉刷新得到最新的文章和下拉得到更多的文章。使用了RecyclerView控件和ExpandableListView控件,可以便捷的实现文章的筛选,界面如图5-5。关键代码如下所示。_____________________________________________________________________privatevoidinitAdapter(){
chooseExpandableListAdapter=newChooseExpandableListAdapter(ChooseActivity.this,list, checkData,newChooseExpandableListAdapter.GetCheckDataListener(){
@Override
publicvoidonCheckDataListener(intgroupPosition,StringconditionValue){
JSONObjectjsonObject=newJSONObject();
try{
jsonObject.put("conditionName",list.get(groupPosition).getConditionName());
jsonObject.put("conditionValue",conditionValue);
}catch(JSONExceptione){
e.printStackTrace();
}
chooseListBeans.set(groupPosition,jsonObject.toString());
}
});
expandableListView.setAdapter(chooseExpandableListAdapter);
for(inti=0;i<list.size();i++){
expandableListView.expandGroup(i);
}
}
@Override
@OnClick({R.id.tv_back,R.id.bt_sure,R.id.bt_cancel})
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.bt_sure:
Intenti=newIntent();
i.putStringArrayListExtra("checkData",chooseListBeans);
setResult(AppConfig.CHOOSEQUESTCODE,i);
finish();
break;
caseR.id.bt_cancel:
for(intn=0;n<chooseListBeans.size();n++){
JSONObjectjsonObject=newJSONObject();
try{
jsonObject.put("conditionName",list.get(n).getConditionName());
jsonObject.put("conditionValue",getResources().getString(R.string.all));
}catch(JSONExceptione){
e.printStackTrace();
}
chooseListBeans.set(n,jsonObject.toString());
}
chooseExpandableListAdapter.clearView();
for(intn=0;n<chooseListBeans.size();n++){
JSONObjectjsonObject=newJSONObject();
try{
jsonObject.put("conditionName",list.get(n).getConditionName());
jsonObject.put("conditionValue",getResources().getString(R.string.all));
}catch(JSONExceptione){
e.printStackTrace();
}
chooseListBeans.set(n,jsonObject.toString());
}
break;
caseR.id.tv_back:
finish();
break;
}
}___________________________________________________________________图5-5心灵鸡汤5.4心理咨询 有医生的头像和医生名字显示,点击咨询可以到达资讯页面进行聊天。图中也显示了医生的获取到的证书。心理咨询界面采用了RecyclerView刷新列表控件和ImageView图片展示控件,TextView文本控件。聊天界面调用手机的录音功能,可以发送语音、表情、图片能够更好的表达聊天者的情感,界面如图5-6。关键代码如下。_____________________________________________________________________privatevoidinitWidget(){
fragments=newArrayList<>();
chatEmotionFragment=newChatEmotionFragment();
fragments.add(chatEmotionFragment);
chatFunctionFragment=newChatFunctionFragment();
fragments.add(chatFunctionFragment);
adapter=newCommonFragmentPagerAdapter(getSupportFragmentManager(),fragments);
viewpager.setAdapter(adapter);
viewpager.setCurrentItem(0);
mDetector=EmotionInputDetector.with(this)
.setEmotionView(emotionLayout)
.setViewPager(viewpager)
.BindViewToContent(chatList)
.BindViewToEditText(editText)
.BindViewToEmotionButton(emotionButton)
.BindViewToAddButton(emotionAdd)
.BindViewToSendButton(emotionSend)
.BindViewToVoiceButton(emotionVoice)
.BindViewToVoiceText(voiceText)
.build();
GlobalOnItemClickManagerUtilsglobalOnItemClickListener=GlobalOnItemClickManagerUtils.getInstance(this);
globalOnItemClickListener.attachToEditText(editText);
chatAdapter=newChatAdapter(this);
layoutManager=newLinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
chatList.setLayoutManager(layoutManager);
chatList.setAdapter(chatAdapter);
chatList.setOnScrollListener(newRecyclerView.OnScrollListener(){
@Override
publicvoidonScrollStateChanged(RecyclerViewrecyclerView,intnewState){
switch(newState){
caseRecyclerView.SCROLL_STATE_IDLE:
chatAdapter.handler.removeCallbacksAndMessages(null);
chatAdapter.notifyDataSetChanged();
break;
caseRecyclerView.SCROLL_STATE_DRAGGING:
chatAdapter.handler.removeCallbacksAndMessages(null);
mDetector.hideEmotionLayout(false);
mDetector.hideSoftInput();
break;
default:
break;
}
}
@Override
publicvoidonScrolled(RecyclerViewrecyclerView,intdx,intdy){
super.onScrolled(recyclerView,dx,dy);
}
});
chatAdapter.addItemClickListener(itemClickListener);
LoadData();
}
/***item点击事件*/
privateChatAdapter.onItemClickListeneritemClickListener=newChatAdapter.onItemClickListener(){
@Override
publicvoidonHeaderClick(intposition){
Toast.makeText(IMActivity.this,"onHeaderClick",Toast.LENGTH_SHORT).show();
}
@Override
publicvoidonImageClick(Viewview,intposition){
intlocation[]=newint[2];
view.getLocationOnScreen(location);
FullImageInfofullImageInfo=newFullImageInfo();
fullImageInfo.setLocationX(location[0]);
fullImageInfo.setLocationY(location[1]);
fullImageInfo.setWidth(view.getWidth());
fullImageInfo.setHeight(view.getHeight());
fullImageInfo.setImageUrl(messageInfos.get(position).getImageUrl());
EventBus.getDefault().postSticky(fullImageInfo);
startActivity(newIntent(IMActivity.this,FullImageActivity.class));
overridePendingTransition(0,0);
}
@Override
publicvoidonVoiceClick(finalImageViewimageView,finalintposition){
if(animView!=null){
animView.setImageResource(res);
animView=null;
}
switch(messageInfos.get(position).getType()){
case1:
animationRes=R.drawable.voice_left;
res=R.mipmap.icon_voice_left3;
break;
case2:
animationRes=R.drawable.voice_right;
res=R.mipmap.icon_voice_right3;
break;
}
animView=imageView;
animView.setImageResource(animationRes);
animationDrawable=(AnimationDrawable)imageView.getDrawable();
animationDrawable.start();
MediaManager.playSound(messageInfos.get(position).getFilepath(),newMediaPlayer.OnCompletionListener(){
@Override
publicvoidonCompletion(MediaPlayermp){
animView.setImageResource(res);
}
});
}
};_____________________________________________________________________图5-6心理咨询5.5心灵感悟 有正能量的事迹可以查看,有发布时间,也可点搜索框进行关键字搜索。这里是匿名的,不能够查看到作者的,保护好投稿人的个人隐私。采用的是RecyclerView控件。界面如图5-7。图5-7心灵感悟5.6本章小结 本章讲述了校园心理咨询管理APP的各功能模块的实现,本APP着重的功能是心理咨询模块,医生与学生可以实现在线聊天,通过聊天,医生可以使学生的心理压力得到舒缓,心理健康问题能够有效的得到解决。
6校园心理咨询管理APP的系统测试6.1测试概述 传统软件测试定义主要关注软件运转过程中对软件进行的查看和不发现不一致的行为是狭义的概念不是测试的所有活动,为了更早的发现并解决问题,测试的的目标是以最少的人力、时间和物力去找出软件APP中潜在的各种错误和故障,修改各种错误和缺陷去提高软件APP的品质,降低缺陷的代价、修改错误,有必要将测试延伸到需求分析和设计阶段,传统软件测试是贯通于整个生命周期,包括测试执行之前和之后的所有阶段活动。需要防止软件发布后潜伏的软件错误和缺陷造成隐患所带来的商业风险,运用测试过程中得到的测试结论和测试信息,应用高效的测试管理手段,提高软件测试的效率和软件产品质量。6.2测试用例 为了验证校园心理咨询管理APP的各个模块功能是否符合需求、账户登录是否安全、权限的检查是否合法,数据是否是从数据库里面获取到的。表6-1登录功能测试用例编号步骤预期1点击学号或者工号输入框和密码输入框底部弹出输入键盘,且输入框中提示文字消失,输入键盘不能覆盖登录按钮2未填写学号或者工号和密码登录按钮不能够使用3填写错误的账户,点击登录有弹窗提示没有此账户,登录失败4填写正确账户,错误密码,点击登陆弹窗提示“用户名或密码错误”,登陆失败5填写正确学生账户,正确的密码,选择学生,点击登陆登录成功6填写正确医生账户,正确的密码,选择医生,点击登陆登录成功7账户已在A手机登陆,再B手机登陆该账号B手机成功登陆,但A手机弹出token失效,请重新登录、退回到登录界面8断开网络,输入正确用户名密码,点击登陆提示网络不可以用表6-2我的功能测试用例编号步骤预期1点击我的图标出现用户头像、昵称、电话号码、我的消息、我的收藏、我的生日、我的爱好、修改密码2点击用户头像到达相册界面,可以点击图片修改头像3点击昵称弹出修改框,可以修改昵称4点击我的消息到达消息界面5点击我的收藏到达收藏界面6点击我的生日可以选择自己的生日7点击我的爱好可以选择自己的爱好并显示8点击修改密码可以修改密码表6-3校园资讯功能测试用例编号步骤预期1登录成功首页出现校园资讯功能上方轮播图,下方是校园资讯展示即标题,图片,部分内容2校园资
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/Z 113.34-2025旋转电机第34部分:轧机用交流调速电动机
- 家长疫情培训课件
- 家长会安全课件
- 2026年离婚协议子女探视权合同
- 2026年水电维修服务合同协议
- 2026年高新技术企业投资合同协议
- 2026年医疗健康行业加盟合同
- 影视发行合同2026年内容交付协议
- 人寿保险合同2026年续签协议
- 2026届新高考英语冲刺复习非谓动作状语
- 水产养殖合作协议合同
- 商品房买卖合同预售示范文本
- 光伏电站-强制性条文执行检查表
- 经济学在生活中
- 年产6万吨环氧树脂工艺设计
- 产品防护控制程序培训课件
- ISO-6336-5-2003正齿轮和斜齿轮载荷能力的计算-第五部分(中文)
- 《古人谈读书》完整课件
- 2023西方文化名著导读期末考试答案
- 中铝中州矿业有限公司禹州市方山铝土矿矿山地质环境保护和土地复垦方案
- 阿特拉斯空压机培训
评论
0/150
提交评论