前言:
· 大学最后的作业了,希望能记录下思考的全部过程,仅此而已
一、 毕设题目
1. 课程依据:
· 为了进一步提高高等教育质量,推进个性化人才培养模式的形成,充分发挥专业教师在大学生学业发展过程中的指导作用,国内很多高校在本科生中实施了学业导师制度,取代传统的班主任制度。
· 江苏大学也于2012年开始全面实施本科生学业导师制度。几年来的实践表明学业导师在本科生人才培养上发挥了重要作用,但是学生学业导师的配备还基本上是行政分配制,存在导师招不到满意的学生和学生选不到适合的导师,以及学业导师配备之后的过程管理不规范等诸多弊端,目前逐渐开始探索学生与导师的双向选择制度,但还停留在手工管理阶段,如能开发一个网上互选平台,并通过该平台实施学业导师指导过程的全程计算机自动化管理,则可使学业导师的师生互选,过程指导等工作高效有序。随着移动互联网技术的发展和智能手机的普及,手机APP的应用使得人们可以随时随地完成以前要依靠电脑才能完成的工作。因此,开发一款基于android手机移动平台的学业导师管理系统显得尤为必要。
· 本课题拟开发一款基于android手机移动平台的学业导师管理系统,该系统包括学业导师的师生双向互选以及学业导师指导的全过程管理。通过该系统学业导师可以网上填报自己拟指导的学生数量,对申报学生的要求,填写自己的简介(研究方向、在研项目等等);学生则可以通过网络浏览各指导老师信息,选择适合自己的导师。导师确认之后互选工作完成,进入过程管理阶段,该阶段学生每学期上传自己的学期规划,老师审核学期规划,提出指导意见,学生也可以随时向老师提出问题,老师可以网上指导并填写指导记录等。
· 该系统分角色实现相应功能,主要有管理员、教师、学生等角色用户,管理员负责整个系统的维护管理,发布通知通告,设置日期节点,参数设定,管理老师和学生帐号,生成相关表格,发布互选结果等。教师用户具有网上申报、维护个人信息、查看学生信息、确认选择学生,审查学生的学期规划,回答学生的问题,填写指导记录,发布通知等。学生帐号具有网上维护个人信息、查看老师信息、选择导师,网上填写学期规划,提交学期总结,查看通知,联系老师发起提问等。各级用户都有登录、密码修改、修改用户信息等账户管理功能。
· 移动网络技术、基于android的网络编程和数据库技术是该系统设计的理论依据,目前基于移动网络的android应用技术成熟,开发基于android的学业导师管理系统理论上完全可行。
2. 任务要求:
· 开发一款基于android手机的学业导师管理系统,通过该系统可以实现学业导师与学生的网上双向互选以及指导过程的全程计算机化管理功能。系统分管理员、教师、学生三类角色用户,不同用户登录系统能完成与其身份相关功能,通过多轮互选完成师生匹配。指导过程按学年和学期进行管理,完成学业规划书上的全部功能。具体要求如下:
1、对基于移动网络的学业导师管理系统进行需求分析,按角色合理划分系统功能。
2、在功能分析的基础上,分析系统数据流,设计并实现高效的系统数据库表。
3、在android平台上编程实现各功能模块,并调试运行。
4、系统调试与优化,设计出界面简洁、易于操作、功能相对完整、能够初步运行的原型系统。
5、完成毕业设计要求的其他任务,如开题报告、外文翻译、毕业论文等。
二、 需求分析
· 系统分为三个用户,因为各个用户的功能不同,则需要设计3个不同的用户界面,加上三个用户通用的登录界面,总共大框架是四部分:登录界面+管理员主界面+学生用户主界面+教师用户主界面 。整个系统功能图如下图所示:
· 数据库部分的表还是很多的,这里我用
Xmind
整理了下所需要的数据表,如下图:三、 系统功能分析
1. 管理员用户
· 管理员用户主要是负责发布系统公告、管理学生和教师用户信息等功能,详细功能介绍如下:
I. 发布新公告
II. 查看和修改学生、教师的用户信息
III. 个人账户管理(修改登录密码、个人照片、信息等)
IV. 管理系统时间,设置一些时间节点等
2. 教师用户
· 教师用户主要是成为导师、进行互选、选择学生后进行一系列指导工作等功能,具体细节如下:
I. 申请成为导师,即填写导师申请表
II. 进行学生导师互选阶段,可以选择接受或拒绝学生
III. 成为导师后还要有一系列指导功能:批阅学生的学期规划和总结信息、填写指导记录、与选择了的学生进行实时聊天
IV. 个人账户管理功能,包括:修改账户信息、修改密码、更换账户头像
3. 学生用户
· 学生用于主要功能是先选择导师、等待导师确认,导师拒绝,则重新选择导师;导师接受,则可以进行一系列学生工作,具体细节如下:
I. 查看可选择的导师列表(可以查看每一个导师的详细信息),并选择心仪导师
II. 等到导师选择结果,被导师拒绝则重新进行选择,被导师接受则结成学生-导师关系
III. 互选完成后,可进行填写学期计划、学期总结以及和导师实时聊天的功能
IV. 个人账户管理功能,包括:修改账户信息、修改密码、更换账户头像
四、 相关技术综述
1. Android原生开发
· 因为这次毕设并没有准备嵌入Html5界面,因为就不需要用混合开发了,且是针对Android系统设计的的App,就避免了原生开发可移植性差,常常需要分别针对Android和Ios开发两套同样逻辑和界面的缺点.
Android原生开发是在Android、IOS等移动平台上利用官方提供的开发语言、开发工具、开发类库等进行App开发,因为可以利用官方提供的语言和工具且可以直接操纵硬件设备,开发人员可以根据应用程序的功能需求开发不同的组件来简化组件的重用;
优点: 在应用性能和交互体验上最好
缺点: 可移植性差,往往一款App,需要分别针对Android和IOS进行开发,同样的逻辑、界面都要写两套。
2. Java+XML+Android SDK实现客户端
· 虽然Kotlin好像更简单、更适合写Android代码,但是- -,又要TM学新语言了,算了算了,虽然Java俺也没那么精通,但好歹这基础还是有的!
3. OKHttp3作为客户端的网络通信框架
· OKHttp3是来自济上(是个帅哥)的推荐,是一个当下比较流行的网络框架,学就完了!
OKHttp3是由Square公司开发的,用于替代HttpUrlConnection和Apache HttpClient的一个当前比较主流的网络请求的开源框架,OKHttp3支持同步和异步调用两种方式, 开发人员只需要关注请求本身, 不需要过度关注内部机制
功能:· 提供PUT、DELETE、POST、GET等请求;
· 提供文件的上传下载的实现;
· 提供加载图片的功能(内部会根据图片大小自动压缩);
· 支持请求回调,直接返回对象、对象集合;
· 支持session的保持。
4. PHP+阿里云服务器实现服务端
· 正好在2月份左右在阿里云买了个服务器,又赶上毕设,那肯定要玩下啦~而用PHP写服务端我也写过不少次了,也手动搭过PHP的环境,这不天作之合嘛!
5. SQLite数据库
· 数据库这里我是真的蠢了,SQLite确实适合作为Android的数据库,但那应该是放在Android系统中的,而我的数据库是放在服务器上的,当时不知道咋的了就没绕过弯来,明显还是使用Mysql作为服务端的数据库要好些- -蠢蠢蠢,所幸的是没有影响到最后系统的实现,不过也不亏嘛,又学了一种数据库~
SQLite是一款遵守ACID的关系型数据库管理系统,是一个轻量级的数据库,它的设计初衷就是为了在嵌入式的产品中使用,目前SQLite已经发展成为世界上使用最广泛的数据库管理系统之一。
五、 系统设计
1. 欢迎界面及登录界面的设计
(1)效果图
(2)思路
· 登录界面是一早就想好的,EditText用来输入用户ID和密码,用户身份使用RadioButton来实现的,登录键当然是Button来实现啦,最后为了好看点找了张图片做壁纸;
· 而在玩手机的时候就看到很多App在开启时都会有一个图片先出现,之后再转到App主界面,因此!咱这App也不能不整啊~ 就这样又加了个欢迎界面;
· 欢迎界面其实并不复杂,就是一个普通界面,欢迎界面的主要作用是用来预加载一些配置或者打广告的 ~,emmm,但咱这啥也没有啊,所以我这里设置了在欢迎界面的停留时间是2s,2s之后从欢迎界面跳转到登录界面。
(3) 关键代码
· 欢迎界面:
· activity_splash.xml:
1 |
|
· SplashActivity.java:
· 代码逻辑主要实现的是2s停顿后的跳转,这里是用定时器Timer来实现的,另外还有取消标题栏、设置欢迎界面为全屏模式以及设置进出动画(这里是设置了离开动画为那种渐变褪去的效果)
1 | public class SplashActivity extends AppCompatActivity { |
· 登录界面:
· activity_splash.xml:
· activity_splash.java:
2. 管理员界面设计
(1) 效果图
(2) 思路
· 页面框架
· 功能框架
· 个人中心
(3) 关键代码
3. 教师界面设计
(1) 效果图
(2) 思路
· 页面框架
· Home页面设计
· 申请成为导师&选择学生界面设计
· 实时聊天界面设计
·