各个团队要在下次课上 (10月23日) 决定做哪一个项目 (按黄金点游戏排出的次序挑选),确定之后写团队博客描述他们要做的究竟是什么系统 (不懂的地方可以在博客上提问)。
这次课程有8个学生团队,我们有5个备选项目,3个自选项目。
第一类项目:在上个学期的Xueba项目的基础上继续完善改进3个模块(3 Teams)。以下为上个学期Xueba项目的要求。
Building Online Education Q&A ecosystem
创建网上教学问答系统
在网上有许多关于某门学科 (例如计算机科学) 的许多知识和问答,这些问答散落在网上课件,维基百科,论坛,校园BBS,技术文档,教学视频… 中。许多网上大学也有很多相关内容。一个新手 (例如大学生) 往往要花许多时间搜索这些问题的答案。事实上,无数的师兄师姐们已经问过,答过这样的问题了。 这个系统的目的是要把高质量的内容都聚合起来 (在遵守相关知识产权规定的前提下),让用户能系统地浏览、搜索、编辑、评论; 同时也支持用户继续通过提问/回答完善这些内容。
主要针对计算机科学、软件工程两个学科。
1. Crawler & classification module (1 team)
从网上搜索相关内容, 并归类。
- can crawl related content,
- Can classify web data,
- Can crawl/re-crawl based on hints
- Have UI to show progress
例如: 告诉 crawler 这个网址 (http://www-inst.eecs.berkeley.edu/classes-eecs.html#cs), 同学们写的工具能够抓取和这个网页相联的所有重要网页 (通过一级或 n 级链接)。全世界前2000 名的大学计算机/计算机工程/电子工程系都可以这样处理。
并且能通过classifier (分类器) 给抓到的网页分类, 并支持手工分类。
其它类似工作举例说明:
从这里获取许多相关网页: http://en.wikipedia.org/wiki/Computer_science。
从这里获取许多计算机的关键字 (keyword)和它们的解释: http://academic.research.microsoft.com/RankList?entitytype=8&topDomainID=2&subDomainID=0&last=0&start=1&end=100
从问答网站中 (stackoverflow)找到提问/回答的页面 。。。
2. Content schema definition & Content Pipeline (1 team)
定义这个网站需要的内容结构, 并从爬到的内容中抽取元数据 (meta data), 并支持标签, 翻译等功能。
- Define a schema of "online education Q&A", find out entities and their relationships.
- Input new content into pipeline, then merge it into existing content, under schema
- Have a UI system to track the progress and report data
- Support tagging
- Support translation
从第一步收集到的网页中, 抽取关键词, 作中英翻译等, 把数据和元数据存入数据库中 (暂定用SQL 数据库存储)
3. Online System (1 team)
在线系统, 完成下列功能。
- User management system
- Management of UGC (user generated content)
- Upload/Download content
- UI presentation of rich content we gather from step 1 and 2.
- search of this site
- User contribution module, handles user correction; user ranking; user tagging
- user credit module (用户积分)
- Anti-spam and anti-abuse module
- Web security and scalability
把第二步整理好的内容展现出来,同时实现其它功能。
第二类项目:(2 teams) 两个团队做移动客户端软件。
- 学霸系统写手机客户端:要求实现网页端已有的用户管理、搜索、分类、上传下载、用户贡献与交互等功能。
- 北航MOOC手机客户端:(红色字体为未完成部分)
一、课程部分:
1、课程列表:
显示信息包括:课程代码、课程图片地址、课程开始时间、结束时间、课程信息(先修课程、讲师介绍、常见问答、课程介绍)、课程热度
2、课程详细信息:
显示信息包括:课程章节及名称、每章节视频对应的地址,以节为单位传输
3、用户相关:
提示用户:课程是否已选、课程选修进度
4、用户操作:选课、退选
二、用户部分:
1、用户注册:昵称、邮箱、密码
2、用户信息校验
3、用户信息修改
三、讨论区部分:
1、讨论帖:发帖(时间、主题、内容)、跟帖(时间、主题、内容、投票、点赞数)
2、讨论帖操作:新建讨论帖、跟帖、编辑帖子、删除帖子、点赞
四、搜索部分:
搜索方式:按开课时间(早于或晚于)搜索、按课程序号模糊搜索/精确搜索、按课程名称模糊搜索/精确搜索、按讲师模糊搜索/精确搜索
五、其他功能:二维码扫描
第三类项目: (3 team) 自由选题。 这个团队可以自己选择真实软件项目,必须在规定时间内公开发布并达到事先计划的一系列指标 (用户数目, 用户评价等)。
所有团队时间:
Alpha Release: 4 weeks (1 week plan/design, 2 week implementation (sprint), 1 week stabilization & Release).
10/30: 所有的任务都创建在 TFS 中,并应用各种估计方法 (1) (2), 去估计各个任务的时间。 把各个任务交给个人。每个任务必须有估计的时间,并且时间不能多于 8 小时。把所有TFS 的任务更新之后,截屏、统计你们项目到底需要多少时间做完。
在两周的implementation阶段,每个人每天应完成的工作量为 2 小时。只有区区两小时哦,亲!
写成一个博客。(各个团队的PM 负责此事)
10/30: 必须写出第一个 scrum meeting 报告. (例子)
Review/Learn/Re-organization: 1 week(复审,对比实践学习软工知识,团队重组)
Beta Release: 4 weeks (same as Alpha)
团队博客: 在 10/30 日前写出你的项目的NABC。并明确写出在哪里发布软件,发布后一周的用户量 (精确到千)。