Skip to main content
Version: Next

暑期 2024

开源之夏 - 暑期 2024中国科学院软件研究所发起的开源软件供应链点亮计划系列暑期活动,旨在鼓励高校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区,针对重要开源软件的开发与维护提供项目开发任务,并向全球高校学生开放报名。关于具体的活动规划、报名方式,请查看该活动的 官网帮助文档

NoneBot 社区有幸作为开源社区 参与 了本次活动,下面列出了目前我们已经发布的项目,欢迎感兴趣的同学通过 contact@nonebot.dev 联系我们。

NonePress 官网组件库更新与优化

NoneBot 官网目前采用基于 TailwindCSS 自研的 NonePress 组件库及 Docusaurus 框架进行构建。由于相关依赖版本迭代迅速,目前官网组件库已产生了较大的版本落后。本项目希望在跟进框架新版本的基础上,对文档整体视觉体验进行重新设计,提升页面的无障碍访问性,基于 React Hydrate 特性实现完整的静态网站生成(SSG)以提升搜索引擎优化(SEO)水平。在解决以上问题的基础上,可对网页的开发以及生产构建性能做相应的优化提升,例如在生产构建使用自有的 webpack loader、替换现有的热重载逻辑以减少开发环境启动耗时等。

难度:进阶

导师@yanyongyu

产出要求

  • 基于 Docusaurus v3 重构 NonePress 组件库及相关插件
    • 升级相关依赖并重新打造 Docusaurus theme(布局与组件)
    • 根据需求实现/修改 Docusaurus 插件使得官网内容构建正常
    • 能够提升页面渲染性能与 MDX 相关能力
  • 升级官网采用新版组件库
    • Algolia 索引与 SEO 正常
    • 桌面端与移动端显示正常
    • 优化官网开发与生产构建体验
  • (可选)优化官网部分页面
    • 优化官网过长的 changelog
    • 优化官网插件商店的展示细节

技术要求

  • 熟练掌握 TS、PostCSS、TSX、MDX等相关技术
  • 掌握 React、Docusaurus、tailwind css 等框架
  • 熟悉静态网站生成 SSG、SEO 优化与 Algolia 索引原理等

成果仓库

NoneFlow 社区自动化工作流管理优化

NoneFlow 在 NoneBot 社区中承担着重要的角色,它由 NoneBot 框架基于 GitHub APP 编写而成,能够自动化的完成许多复杂流程的处理,如:用户请求提交插件到商店时进行自动化检测,并在人工审核通过后自动存储至 registry;定时自动更新 registry 内插件信息,跟进插件新版本情况等。但是,在长期的使用中发现了一些问题和不足的地方,例如:项目本身结构复杂耦合,添加新自动化流程与维护现有流程困难;目前采用了 GitHub 用户名作为插件作者名,但已有不少插件作者改名;插件存储至 registry 并定时更新,缺少统计相关信息以帮助商店更好的展示当前插件状态;插件作者想要修改插件信息时无法便捷的找到操作方式等。本项目希望针对以上问题与不足的地方进行修复与优化,提升用户体验。

难度:进阶

导师@uy/sun

产出要求

  • 重构现有工作流处理结构
    • 整合现有 Issue、Pull Request、Git 相关操作
    • 提供用户修改信息的处理方式
    • 正确处理 PR 的 Open、Close、Draft 状态
  • 修复流程中存在的问题
    • 插件作者名正确展示
    • registry 定时更新中需要插件测试环境隔离
  • 在 registry 定时更新的同时提供统计数据

技术要求

  • 掌握 GitHub APP 开发
    • 熟悉 GitHub REST API、GraphQL 等
    • 熟悉 GitHub APP 权限限制
  • 熟悉 NoneBot 框架与 Python 相关技术
  • 熟悉 Git、GitHub Action、GitHub 工作流

成果仓库

NoneBlockly 低代码框架开发

经过深入分析社区反馈,我们发现部分新手因不熟悉编程概念或框架本身而遇到问题。为了解决初学者在使用面向开发者的聊天机器人框架 NoneBot 时遇到的挑战,我们计划引入 Blockly 提供低代码编程支持。通过减少常见的编码错误和降低入门门槛,使框架对初学者更加友好,从而提升用户体验并有助于 NoneBot 生态的成长。本项目将基于 Blockly 实现 NoneBot 插件的低代码编写,使得用户能够快速搭建聊天机器人。

难度:进阶

导师@mnixry

产出要求

  • 实现 NoneBlockly 低代码开发框架
    • 能够基于 Alconna 编写跨平台插件
    • 确保插件对 Python 和 NoneBot 版本的兼容性
    • 支持对多种类型 NoneBot 事件的响应
    • 支持对 NoneBot 消息对象的便捷操作
    • 集成 localstore 文件存储、apscheduler 定时任务、网络请求等常用功能
  • 对接 NB-CLI 脚手架,通过脚手架扩展使用低代码框架

技术要求

  • 掌握 Python 与 NoneBot 框架的使用
    • 熟悉 NoneBot 插件的开发,包括事件响应与消息处理等
    • 熟悉 NoneBot 生态组件(Alconna、localstore、apscheduler等)的使用
    • 了解 NB-CLI 脚手架的扩展开发
  • 熟悉 Blockly 低代码框架的使用和开发

成果仓库