描述 组件的预览展示与版本管理 项目价值: - 给团队提效 - 避免重复开发 - 任何人想用任何组件,到组件化平台一览无余 - 根据组件描述和使用文档,快速上手使用组件 - 有历史的组件版本管理,方便回溯/回滚和问题定位 - 沉淀团队技术资产 - 方便新同学了解团队组件建设现状 - 方便设计师参考和挑选既有组件,避免重复设计 技术栈: Node.js + Egg.js + MongoDB + React + Webpack |
---|
功能说明
- 用户管理
a. 管理员登录/登出
b. 游客访问(无须注册登录,匿名 ID 访问) - 组件展示
a. 查看已有组件的基础信息
b. 组件名称、分组、描述、版本等
c. 预览组件的样式效果,如内嵌 codepen - 分组管理
a. 管理员可创建分组、删除分组 - 组件管理
a. 新增组件
ⅰ. 用户新增组件,填入组件名称、选择分组、组件使用示例源码、版本号等,保存到数据库
b. 编辑组件
ⅰ. 编辑组件:组件名称、组件源码、组件版本号
ⅱ. 点击保存:校验数据完整性,保存至数据库
c. 删除组件
ⅰ. 管理员选择组件删除:返回删除成功信息页面访问链路
查看及删除
新增及编辑
新增分组
技术架构
技术栈
- Vue/React: 组件展示
- Nodejs/Egg: 搭建后端服务
- MongoDB: 用于存储组件 meta 信息和更改日志,以及用户信息,和登陆日志记录
代码举例
groups: 组件分组 - 表结构
对组件进行分类,如通用组件、非展示型工具函数组件、H5 组件等
字段名 | 类型 | 备注 |
---|---|---|
name | String | 组件分组名 |
description | String | 组件描述 |
created_at | Date | 创建时间 |
updated_at | Date | 更新时间 |
components: 组件 - 表结构
描述组件的基本信息,如描述组件如何引用和使用的演示源码等
字段名 | 类型 | 备注 |
---|---|---|
name | String | 组件名 |
description | String | 组件描述 |
group | ID(groups._id) | 组件所属分组 |
meta | String(JSON) | 组件额外信息 |
created_at | Date | 创建时间 |
updated_at | Date | 更新时间 |
demo_url | String | 组件 demo URL |
version | String | 当前最新版本 |
source_code | TEXT | 组件演示源码 |
component_versions:组件历史版本 - 表结构
描述每个组件的历史版本,相当于是一份组件流水,记录了每一次保存的组件版本和文档状态
字段名 | 类型 | 备注 |
---|---|---|
component | ID | 组件 ID (外键 components) |
created_at | Date | 创建时间 |
updated_at | Date | 更新时间 |
demo_url | String | 组件 demo URL |
version | String | 组件版本 |
meta | String(JSON) | 组件额外信息 |
source_code | TEXT | 组件源码 |
项目里程碑
里程碑 1 - 项目初始化及页面可渲染
- 完成项目环境搭建
- 完成项目的目录文件结构初始化
- Egg 与 React 集成,把项目跑起来
- 首页/详情页/列表页等样式完成,可以渲染出页面效果
注意事项
- 项目目录拆分合理
- 项目的各种配置文件完整
-
里程碑 2 - 数据建模及管理员注册登录
完成 MongoDB 环境搭建与数据库连接
- 完成 Component 相关数据表结构的 Schema 设计
- 如用户表、分组表、组件表表
- 完成 MongoDB 中用户相关数据表增删改查 API 接口设计
完成管理员注册登录的功能流程
- 管理员注册字段前台提交到后台存储
- 管理员密码校验与成功的登录跳转流程
注意事项
数据建模合理
- 页面正常渲染
-
里程碑 3 - 组件增删改查
完成管理员登录和身份识别
- 完成首页按分组的组件展示拉取
- 完成组件详情页及删除功能
- 完成分组创建及分组列表展示功能
注意事项
- 非登录用户可浏览组件
- 非管理员的登录用户可创建和编辑组件
- 管理员可删除分组、删除组件
- 登录用户的操作流水需要记录
- 首页列表页展示渲染正确