2015年团队项目选择
各个团队确定你们要做的项目,写一个团队博客描述你们要做的究竟是什么系统(不懂的地方可以在博客上提问)。
这次课程有10个学生团队,我们有5个备选项目,5个自选项目。
第一组项目:在上个学期的Xueba项目的基础上继续完善改进3个模块(3 Teams)。以下为上个学期Xueba项目的要求。
Building Online Education Q&A ecosystem
创建网上教学问答系统
在网上有许多关于某门学科 (例如计算机科学) 的许多知识和问答,这些问答散落在网上课件,维基百科,论坛,校园BBS,技术文档,教学视频… 中。许多网上大学也有很多相关内容。一个新手 (例如大学生) 往往要花许多时间搜索这些问题的答案。事实上,无数的师兄师姐们已经问过,答过这样的问题了。 这个系统的目的是要把高质量的内容都聚合起来 (在遵守相关知识产权规定的前提下),让用户能系统地浏览、搜索、编辑、评论; 同时也支持用户继续通过提问/回答完善这些内容。
主要针对计算机科学、软件工程两个学科。
1. 爬虫和分类模块(Crawler & classification module)(1 team)
从网上搜索相关内容, 并归类。
- 能够爬取计算机学习相关内容(网页、论文、讲演稿、技术文档、视频、问答等等);
- 能够对爬取的内容进行分类(根据计算机相关的关键字),并支持手工分类;
- 能够根据指定的线索进行爬取或重新爬取(支持动态添加);
- 能够支持不间断爬取;
- 有一个用户界面来支持显示爬取的进度。
例如: 告诉 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), 并支持标签, 翻译等功能。
- 定义在线问答网站的内容结构,找出其中涉及的实体及它们之间的关系;
- 能够支持增量式的将输入的新数据,按照定义好的内容结构合并到已有的内容中(重复内容怎么处理,更新内容怎么处理,用户上传内容怎么处理);
- 支持标签;
- 支持关键词翻译;
- 有一个界面来跟踪和报告数据处理的进度。
从第一步收集到的网页中, 抽取关键词, 作中英翻译等, 把数据和元数据存入数据库中 (目前用SQL 数据库存储,如需采用其他的数据库,需要跟爬虫和在线系统团队协商)
3. 在线系统(Online System)(1 team)
在线系统, 完成下列功能。
- 用户管理系统;
- 用户生成内容(UGC)管理;
- 内容上传下载;
- 能够展现从前面两个阶段获取的丰富内容的用户界面;
- 支持网站搜索;
- 用户贡献模块,处理用户纠错,用户评分,用户标签等;
- 用户积分模块;
- 反垃圾和防滥用模块;
- 网络安全和可扩展性。
把第二步整理好的内容展现出来,同时实现其它功能。
第二组项目:(2 teams) 两个团队做移动客户端软件。
- 学霸系统手机客户端:要求实现网页端已有的用户管理、搜索、分类、上传下载、用户贡献与交互等功能。
- 北航MOOC手机客户端:
一、课程部分:
1、课程列表:
显示信息包括:课程代码、课程图片地址、课程开始时间、结束时间、课程信息(先修课程、讲师介绍、常见问答、课程介绍)、课程热度
2、课程详细信息:
显示信息包括:课程章节及名称、每章节视频对应的地址,以节为单位传输
3、用户相关:
提示用户:课程是否已选、课程选修进度
4、用户操作:选课、退选
二、用户部分:
1、用户注册:昵称、邮箱、密码
2、用户信息校验
3、用户信息修改
三、讨论区部分:
1、讨论帖:发帖(时间、主题、内容)、跟帖(时间、主题、内容、投票、点赞数)
2、讨论帖操作:新建讨论帖、跟帖、编辑帖子、删除帖子、点赞
四、搜索部分:
搜索方式:按开课时间(早于或晚于)搜索、按课程序号模糊搜索/精确搜索、按课程名称模糊搜索/精确搜索、按讲师模糊搜索/精确搜索
五、其他功能:二维码扫描
注意:在去年我们开发了北航MOOC客户端之后,EdX发布了Android客户端,功能更加完整。请基于EdX客户端完善北航MOOC客户端。
地址:https://github.com/edx/edx-app-android。
第三组项目: (5 team) 自由选题。 这个团队可以自己选择真实软件项目,提交项目计划,必须在规定时间内公开发布并达到事先计划的一系列指标 (用户数目, 用户评价等)。
所有团队时间:
Alpha Release: 4 weeks (1 week plan/design, 2 week implementation (sprint), 1 week stabilization & Release).
10/20: 所有的任务都创建在TFS中,并应用各种估计方法 (1) (2),去估计各个任务的时间。 把各个任务交给个人。每个任务必须有估计的时间,并且时间不能多于 8 小时。把所有TFS 的任务更新之后,截屏、统计你们项目到底需要多少时间做完。写成一个博客。(各个团队的PM 负责此事)
10/20: 必须写出第一个 scrum meeting 报告. (例子)
Review/Learn/Re-organization: 1 week(复审,对比实践学习软工知识,团队重组)
Beta Release: 4 weeks (same as Alpha)
团队博客: 在 10/20 日前写出你的项目的NABC。并明确写出在哪里发布软件,发布后一周的用户量 (精确到千)。