[关闭]
@Andream 2017-06-24T17:42:07.000000Z 字数 2279 阅读 789

SRTP

SRTP


研究内容
在手机上模拟登陆教务网,通过服务器端和手机客户端软件开发,实现查看课表、查看考试、查看成绩,和待办事项管理等功能。
其中课表功能包括一键导入课表,将课表数据在服务端和客户端双重缓存,在客户端根据当前周展示课表;
查看考试功能查询考试时间、教室、座位号;
查看成绩功能查询各个学期,各科目的成绩,并计算绩点。同时对所有学生成绩进行数据分析,自动生成成绩统计报告。
待办事项管理功能包括事件添加、事件删除、事件提醒设置、事件时间设置。帮助同学们管理时间。
我们希望研究的问题是:
1. 教务网的ip的端口开放情况不定,如何保证模拟登录的稳定性?
2. 采用什么数据组织和缓存方案,能使系统总流量最低?
3. 是否可以实现考试安排和成绩发生变动时,自动同步到客户端?
4. 待办事项功能本身不复杂,困难的地方在于如何通过软件帮助用户建立起健康的时间管理习惯,怎样才能满足不同用户的时间管理需求?
5. 怎样的软件交互设计能够让用户容易理解软件功能,容易上手,从而得到好的用户体验?

立项意义

在国内,已经有超级课程表、课程格子这类App,它们的优点是支持绝大多数高校,同时整合了二手市场,论坛,聊天等社交功能。但是它们不是专门针对我们学校设计的,所以程序缺乏可拓展性。例如如果要增加查看学校最新讲座的功能,图书馆检索功能,这类程序就很难针对我们学校做这种拓展。
而且这类软件虽然有社交功能,但却存在大量管理问题,例如超级课程表的匿名树洞,就经常有人发布不良信息和诈骗信息。社区也缺乏活力,缺乏高质量内容。
在课表功能方面,它们支持手动添加课程,设置上课时间等功能。但是这些功能反而有些冗余,不够简洁。同时它们还支持蹭课功能,即用户可以查询校内所有课程,但检索结果非常混乱,用户很难快速找到自己想要的课程。

国内也有一些大学开发了自己的App,比如浙江大学的『求是潮手机站』。目前已经开发到3.0,它整合了一系列教务功能和校车、待办事项、通讯录、活动信息、书评专区、学生论坛等功能,基本解决了上述那些问题,每日使用人数上千人。还有清华大学的『Tsinghua Now』,包括课表、作业通知、成绩计算、Deadline倒计时等功能。这些都是学生自主研发的产品,也都取得了很好的效果。

国外的学校如哈佛大学、斯坦福大学,也有自己的App。主要包括校园地图、学校新闻、校历查看、通讯录这类功能,和学生日常生活联系不大,而且长期没有更新,又是基于Web开发,反应迟缓,所以使用人数不多。

我们小组认为,该项目首先方便了同学们日常生活中的教务信息查询和日程管理,具有一定的实用意义。在投入使用后,软件还会继续维护更新,关注生活中的问题,开发更多的实用功能。国内一些案例也验证了这类App的可行性和实用价值。
同时在软件设计架构、开发的过程中,能增加我们对软件工程本身的理解,为日后课程的学习提供了宝贵的实践经验。在解决我们研究的问题中,能继续引发我们对软件开发中的各种问题的思考,提升我们的工程能力,对于参与研究的同学具有教育意义。
我们研究的问题还具有一定的普遍性,能够运用到将来的实际软件开发中,对于提升用户体验,减少系统损耗,保持软件运行稳定性等常见问题具有指导意义。

研究路线

  1. 设计服务端和客户端的数据表。存储用户账号、课表、考试信息、成绩信息。分析数据流动情况。
  2. 设计服务端的类和开放接口原型,完成服务器设计文档。包括登录教务网、获取课表、获取考试信息、获取成绩信息、添加/修改/删除待办事项。
  3. 设计客户端的类和函数原型,完成客户端设计文档。分为三层进行设计:第一层为API层,负责和服务器通信。第二层为业务逻辑层,负责响应用户操作。第三层为本地数据层,将用户数据保存到本地。
  4. 设计客户端用户界面。采用最新的设计规范,先分别设计查看课表、查看考试、查询成绩界面,再设计主界面作为程序主入口。
  5. 使用Fiddler等工具抓包分析教务网开放的API,弄清楚每个参数的含义,完成教务网接口访问文档。
  6. 配置服务器后端环境,根据已经设计好的数据表和接口原型完成服务端接口开发。
  7. 根据数据表、函数原型和用户界面设计,完成Android客户端主要功能开发。
  8. 调试运行客户端,测试软件功能能否正常使用,修正软件bug。
  9. 整理服务端和客户端设计文档形成软件设计文档,完成软件使用手册。

创新点

  1. 教务网登入入口通过程序自动转换,避免部分访问故障导致的软件问题。
  2. 通过缓存减少流量消耗和服务器压力。
  3. 将教务网功能整合,贴近同学生活,方便使用。
  4. 帮助学生管理日常事务。

具备的研究条件

  1. 硬件条件
    租用云服务器,降低服务器开发和配置成本。
    使用Android模拟器和真机进行软件运行和测试。
  2. 软件条件
    小组成员经过一年大学学习和课外学习,熟悉C语言、C++和计算机基础知识,在课余时间学习了python、C♯、php、网络编程相关的知识。具有一定的项目经验,对项目有足够的信心和热情。

进度安排

2017-07-01 ~ 2017-09-01:基础知识学习
2017-09-01 ~ 2018-01-01:软件架构设计,Demo开发
2018-01-01 ~ 2018-03-01:软件编码实现
2018-03-01 ~ 2018-05-01:软件调试,功能测试
2018-05-01 ~ 2018-06-01:完成软件设计文档和使用手册

预期研究目标
1. 掌握爬虫、抓包、服务器配置、服务端和客户端开发的基本知识。
2. 解决研究内容中提到的几个问题。
3. 教务系统开放的接口和数据格式分析。
4. 开发服务端程序。
5. 开发客户端程序。

预期提交成果
可稳定运行的Android端App
软件设计文档
软件使用手册

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注