小程序是如今比较热门的一种移动端应用形式,跨平台且用户使用十分便利。为此咱们选择将咱们的应用开发在小程序上。小程序的前端框架咱们选择了腾讯的wepy前端框架,该框架支持 npm 包,支持 css 预处理器,并且组件美观且有完整的指导文档,便于咱们学习以及完成咱们的开发任务。php
关于后端框架的选择,咱们调研了基于python 的Django,Flask 框架,以及基于php 的ThinkPHP,基于java的JSP。最终咱们选择了基于python语言的Django框架。愿意以下:css
做为手机APP,页面是用户直接接触到的主要部分,也是前端的主要部分。合理的页面布局设计与页面跳转关系是确保用户体验的必要条件。前端
页面的转换关系以下图,其中,矩形框表示具体页面,连线表示页面的跳转,线上文字表示触发跳转的用户动做。用户按下返回按键时,返回当前页面的上一级页面。当前页面上一级有多个页面时,由哪一个页面进入当前页面,则返回哪一个页面。java
页面布局设计在功能规格说明书中有详细示意图,此处再也不重复。设计的主要原则是尽可能清晰简明的将该页面中的主要信息传达给用户。python
/index
/register
/f
/p/<post_id>
/p/<post_id>/apply
/my/<ID>/post
/my/<ID>/apply
c/post
parameter数据库
{ "account":"string", // 惟一,英文字母和数字,长度不超过14,以英文开头 "password":"string" // 数字大小写字母,标点符号,8~14个字符 }
returnnpm
{ "ret":"bool", //是否登陆成功 "ID":"string" // 用户的惟一ID }
parameterjson
{ "account":"string", // 惟一,英文字母和数字,长度不超过14,以英文开头 "password":"string", // 数字大小写字母,标点符号,8~14个字符 "name":"string", //真实姓名 "age":"int", "studentID":"string", "sex":"string", "major":"string", "grade":"string" }
return小程序
{ "ret":"bool", //是否注册成功 "ID":"string" // 用户的惟一ID }
parameter后端
{ "title":"string", "postDetail":"string", "requestNum":"int", "ddl":"datetime", //YYYY-MM-DD "posterID":"string", }
return
{ "ret":"bool", //是否发布成功 "postID":"string" // 帖子ID }
return
[ { "title":"string", "postDetail":"string", "requestNum":"int", "acceptedNum":"int", "ddl":"datetime", //YYYY-MM-DD "ifEnd":"bool", "postID":"string", "posterID":"string", }, ... ]
return
{ "title":"string", "postDetail":"string", "requestNum":"int", "acceptedNum":"int", "ddl":"datetime", //YYYY-MM-DD "ifEnd":"bool", "postID":"string", "posterID":"string", }
return
[ { "applyID":"string", "resume":"file", "applyStatus":"string", //接受,待定,结束 "applicantID":"string", }, ... ]
return
[ { "title":"string", "postDetail":"string", "requestNum":"int", "acceptedNum":"int", "ddl":"datetime", //YYYY-MM-DD "ifEnd":"bool", "postID":"string", "posterID":"string", }, ... ]
return
[ { "applyID":"string", "resume":"file", "applyStatus":"string", //接受,待定,结束 "applicantID":"string", }, ... ]
咱们定义错误处理类,对错误进行分类汇总,集中处理,目前暂时分为以下几大类,具体的细化会在开发的时候逐渐扩充。
咱们将功能抽象成独立的接口,前端UI操做与后端响应函数与数据管理十分独立,程序每一个页面之间的实现也互相独立,程序具备良好的扩展性以及应对变化的能力。
拥有较好的异常处理机制防止程序崩溃,对于模拟大量用户同时操做的压力测试目前尚未作。