开源之夏是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。
同往年一样,2024 年开源之夏也联合包括 NebulaGraph 在内的开源社区,针对重要开源软件的开发与维护提供项目任务,面向全球高校学生开放报名。不同于往年由 NebulaGraph 核心开发者们提供开发任务,今年开源之夏公开邀请社区诸位优秀的 Contributor 们成为导师,一起在高校学子们心中种下开源的种子。
你的导师礼
问题来了,成为开源之夏导师在播种开源理念之余,还有什么呢?在成功申请成为导师之后,你将会获得:
- 由开源之夏主办方中科院提供的 ¥ 3,000 元的奖金;
- 由 NebulaGraph 社区送出的优秀导师证书,以及开源播种礼一份(内含现有 Nebula 周边一套);
- 结识到不只是 NebulaGraph 开源社区的其他技术大佬;
* 注:上面奖励需要同学生们一起完成开源之夏任务才能获得。
你的关卡
上面说了通关激励,那么有哪些任务挑战需要你完成呢?下面是作为导师主要的任务:
- 任务发布(04.04-04.29):在该阶段,需要完成你个人的信息填写,以及发布相关的开发任务;
- 学生配对(04.30-06.04):在该阶段,需要在数份项目申请中,为你发布的开发任务选定一名合适的学生。该名学生将会成为你未来三个月“辅导”的学生;
- 指导开发(06.26-09.30):完成学生配对之后,指导学生完成对应开发任务,记住不要直接上手编写代码,要让学生独立完成代码编写工作哟。该阶段,需要你和学生就开发任务多次沟通,可采取例如周会等形式,确保开发进度按计划推进;
- 项目提交(10.01-10.31):在该阶段,你要确保学生将相关的开发代码提交到对应的仓库(repo)。如有相关的 PR 修改需求,也需要在规定时间内完成修改;
- 结项审核(10.01-10.31):在该阶段,根据结项审核标准的要求,在系统中审核所带学生结项成果,按照评审填写模版填写评语;
下面,来看看成为 NebulaGraph 开源之夏项目导师需要具备什么条件吧。
你所具备的属性
在这里,说下关于成为 NebulaGraph 社区导师所需的那些属性们。
不可为空的属性(二选一):
- 社区的贡献者(Contributor);
- 活跃社区用户,日常在微信群、论坛解答他人疑问,分享 NebulaGraph 使用心得的用户。
可为空的属性:
- 良好的沟通能力 以及乐于助人的品质:开源之夏项目是一个导师与学生共同开发协作的项目,导师在这个过程中要对学生给予方向性指导、解答学生提出问题,积极建立良好的沟通过程。
- 耐心友善:在项目的开发过程中学生会遇到各式各样的问题,身为导师的你,得与学生进行多次耐心的沟通。在此过程中,通过不断鼓励学生,树立他们解决问题的信心以及培养他们解决问题的能力。
- 创造力:数据库作为一个基础软件分类,以稳定为前提进行开发,难免受到各种束缚。有着奇妙想法的你,说不定能焕发图数据库不一样的活力,让 NebulaGraph 成为不一般的技术实践成果。
如果你对本次的开源之夏活动感兴趣,可扫描下方二维码,进一步咨询活动信息;或是告知你成为导师的意向。
历史回顾
为了方便你了解此次活动任务的大致方向与需求,这里挑选了一些往届经典的案例:
任务 1:游戏引擎实现图可视化(Web 方向)
- 任务描述:选择一个游戏引擎如 Cocos、Laya 或者 Taro ,实现图可视化功能,实现 2d 或 3d 的图数据展示,数据结构可采用 nebula-studio 的数据格式,也可自行设计。
- 产出要求:可以使用任意选择市面上的一款基于 Web 的游戏引擎如 Cocos、Laya 或者 Taro ,展示图数据结构,支持交互式操作,如拖拽、缩放、旋转、触发下级节点等。
- 技术领域/技术要求:Data visualization JSON / 精通 JS
任务 2:nebula-rust 实现点边扫描接口
- 任务描述:目前 nebula-rust 项目仅仅支持一部分 GraphClient 的接口,需要添加参考其他客户端项目实现 nebula-rust 的 StorageClient 的 ScanVertex 和 ScanEdge 的接口,并 bind 给 Python 语言使用。
- 产出要求:完成 StorageClient 的 ScanVertex 和 ScanEdge 的接口开发。加分项:给 Python bind Rust 的 ScanVertex 和 ScanEdge 接口使用。
- 技术领域/技术要求: Rust / 精通 Rust 语言、Python 语言
- 中选学生专访:宋昊成:聊聊软技能这件事|nStar 专访
任务 3:NebulaGraph Exchange 提供批量删除能力
- 任务描述:NebulaGraph Exchange 是一款 Apache Spark™ 应用,用于在分布式环境中将集群中的数据批量迁移到 NebulaGraph 中,目前支持数据批量导入 NebulaGraph,本项目旨在增加批量删除能力,允许根据源数据批量删除 NebulaGraph 中的数据。
- 产出要求:功能正确,参数可配置。
- 技术领域/技术要求:Scala、Java、Database,产出代码符合项目架构。要求代码低耦合,模块清晰,配置灵活。
- 中选学生专访:开源之夏梅开二度的周子轶,他的实习、找项目之旅
任务 4:nebula 支持 DataX
- 任务描述:DataX 是阿里巴巴研发的异构数据源离线数据同步工具,本次开发任务是基于 DataX 实现 Nebula Graph 的 Reader 和 Writer 插件,可方便用户图数据库使用者实现数据同步。
- 产出要求:nebula 支持 DataX。
- 技术领域/技术要求:Java、Database、Java,了解 DataX。
以上,希望优秀的你加入本次的开源之夏导师队伍,同高校学子们一起探索开源之夏 2024 的无限可能。