---
sidebar_position: 3
description: 开源之夏 - 暑期 2024
mdx:
  format: md
---

# 暑期 2024

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

NoneBot 社区有幸作为开源社区 [参与](https://summer-ospp.ac.cn/org/orgdetail/e1fb5b8d-125a-4138-b756-25bd32c0a31a?lang=zh) 了本次活动，下面列出了目前我们已经发布的项目，欢迎感兴趣的同学通过 [contact@nonebot.dev](mailto:contact@nonebot.dev) 联系我们。

## NonePress 官网组件库更新与优化

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

**难度**：进阶

**导师**：[@yanyongyu](https://github.com/yanyongyu)

**产出要求**

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

**技术要求**

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

**成果仓库**

- <https://github.com/nonebot/docusaurus-theme-nonepress>

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

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

**难度**：进阶

**导师**：[@uy/sun](https://github.com/he0119)

**产出要求**

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

**技术要求**

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

**成果仓库**

- <https://github.com/nonebot/noneflow>

## NoneBlockly 低代码框架开发

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

**难度**：进阶

**导师**：[@mnixry](https://github.com/mnixry)

**产出要求**

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

**技术要求**

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

**成果仓库**

- <https://github.com/nonebot/noneblockly>
