Hackathon #1 cover

Hackathon #1

做了一个协作日历

这周四10:00到周五10:00的24小时里我司举办了第一届Hackathon,这也是我自己经历的第一次Hackathon。虽然在这之前对这种活动形式了解颇多,但就和很多事情一样,实践一次前作出的评价往往不靠谱。在这次亲身经历之后,我对Hackathon的评价相当正面:

  • 发掘人的潜力:因为时间有限人数有限往往需要一个人扮演多面手,在Hackathon里会经常惊叹“原来他还能做这个”;
  • 产生真正的创意:围绕一个主题能够产生形式各样但确实有利于公司发展的靠谱创意,甚至有机会做成产品的一部分或者单独成为一个新产品;
  • 磨合团队:显然能促进团队氛围。

我和另外一个人组成的小组在这次Hackathon中完成的是一个给企业用的协作日历系统。现在个人的日历需求局限于很小众的范围,Google Calendar或iCloud Calendar之类的已经满足得很好了,但企业级的多人协作日历系统需求依然很大,例如安排会议、面试,往往会遇到场地、时间、人员冲突,如果没有一个趁手的协作日历系统显然将会效率低下。其实Google Apps for Work或者Office 365中的日历应用做得很不错了,可惜它们都是付费使用的,一来单独为了日历服务去购买整个企业服务不划算,二来像如果选择Google也没有多少公司能提供全局翻墙的环境,即便提供了还得考虑员工在公司外使用的问题。除了这两个选择之外,搜了一圈发现国内外基本没有提供这项服务的(像之前在网易只有一套会议室预订系统,开会还靠邮件和IM),于是决定趁此机会做一个。

做这个协作日历系统的创新性其实是一般般的,因为日历是一个很成熟的工具,大部分需求、设计都是标准化的。唯一的创新点在于怎么输出,24小时内显然不可能搭建一套完整的日历协议服务器,我们很巧妙地使用了iCal(也就是.ics格式文件)输出,这种格式是日历地一种标准格式,被绝大多数地日历应用支持(例如Google Calendar/iCloud Calendar/Outlook Calendar),以一个指向.ics文件地链接添加后,日历应用会自动每隔一段时间去抓取更新(Google是大约每隔8小时,iCloud可以自定义),这样只要在这些日历应用内订阅再设置提醒就能得到完整地体验了,大大简化了我们的工作量。

解决了这个最主要地问题之后,其它部分就是设计和实现了,包括日历展示、新建/编辑/查看事件(标题、起止时间、地点、参与人(可以邀请公司同事)、详情)、在日历上地一些标准交互(拖动事件、拉伸事件)、查看某个人/某个会议室地日程安排等。我负责了需求、交互/视觉设计、Keynote以及一些测试工作,另外一位则包办了前后端所有开发,下面是一些设计稿(与最终完成品几乎一致):

登录界面:

Login.png

主界面:

Main.png

新建/编辑弹层:

Event.png

活动结束之后仔细考虑了下这个产品的未来,大概有三件事可以做:

  • 补全一些没来得及做的基础功能,再修复一些基本bug,自己公司内部可以用起来了;
  • 与公司现在地主业务整合,共用一个用户体系,作为一个附加服务提供给客户(我司本来就是搞SaaS的);
  • 开发成一套独立地日历服务,提供标准地日历协议输出甚至iOS/Android客户端,作为独立产品提供服务。

具体后续如何,就看机遇和选择了。对了,还有一个用Keynote录制的视频可以一看(声音需要调大一些):优酷链接