[关闭]
@openxy 2014-11-24T09:57:21.000000Z 字数 1989 阅读 1449

实验班信息平台分析与设计

未分类


需求分析

用户、角色与权限

用户是创造内容和价值的源泉
用户是具有不同行为的实体,角色只是一组权限的集合。如果某个角色不能被用户所扮演,则该角色应改为用户

用户 角色 说明
访客 匿名 班外师生等
学生 学生、班级管理、栏目管理
教师 教师、超管
实习生 ? 大二同学

 需求调查

用户希望看到或做到什么?或者,我们希望他们能够看到或能做到什么?

 用户故事

  1. 访客首页:班级新闻、班级介绍、活动预告
  2. 访客查看班级新闻:列表页面、详细页面
  3. 访客查看师生档案:分开查看
  4. 注册:不支持公开注册,直接导入CSV
  5. 基本登录:无验证码
  6. 访客查看事件日历
    • 查看班级日历控件,通过高亮标识,获知近一周的事件信息
    • 鼠标悬浮到高亮日期上方,查看简单的事件提示
    • 点击高亮日期,弹出新页面,可查看到事件的详细信息
    • 点击日历的更多链接,弹出新页面,查看事件列表页面

 版本计划

版本 用户故事 说明
v0.1 1、2、3、4、5 初步设计
v0.2 4

系统设计

设计方法

WEB API(URL布局)

url 说明 成功 失败
/ home/index 异常处理
/[students] index,show 异常处理
/[teachers] index,show 异常处理
/[articles] index,show 异常处理
auth/login 登录 跳转到登录前页面或用户中心 显示错误信息,回到登录页面
auth/logout 登出 首页 异常处理

...

定义对象

字段名称 字段说明 约束 示例
email email
password 256位以上加密
nickname 呢称 唯一
realname 真实名称

...

对象关系

 数据存储模式

id email type password
1 t@t.com Student ***
2 s@s.com Teacher ***
  1. the_teacher = User::find(name=>'x老师');
  2. the_teacher->net_profile();
  3. the_teacher->real_profile();
  4. the_teacher->teach_method();
  5. the_student = User::find(name=>'y学生');
  6. the_student->net_profile();
  7. the_student->real_profile();
  8. the_teacher->learn_method();

关键对象设计

关键流程设计

代码实现

  1. class User extend ORM {
  2. }
  3. class Student extend User{
  4. function net_profile(){
  5. has_one('student_net_profile');
  6. }
  7. }
  8. class StudentNetProfile extend ORM {}
  9. class Teacher extend User{}
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注