/** * 开源项目注册表 —— 门户的唯一项目清单来源。 * * 新增一个项目只需两步: * 1) 在这里加一条记录 * 2) 写 pages/projects//index.md 详情页,并在 sections 里登记它的子页面 * 首页卡片、项目列表、侧边栏、导航都会自动带上,不需要改任何其它文件。 * 校验:npm run check(构建前自动执行,详情页与注册表不一致会直接报错) */ export type ProjectStatus = '已发布' | '公测中' | '开发中' export interface ProjectSection { text: string link: string } export interface Project { /** 目录名与 URL 片段,一经发布不再改动(改名会断链) */ id: string name: string /** 一句话定位,展示在卡片标题下 */ tagline: string /** 两三句说明,展示在卡片正文 */ summary: string /** 开源代码仓 */ repo: string /** 许可证标识 */ license: string /** 技术栈标签 */ tech: string[] status: ProjectStatus /** 门户内的详情页路径 */ page: string /** 详情页下的子页面(快速开始、部署、教程等) */ sections: ProjectSection[] } export const projects: Project[] = [ { id: 'iotlcm', name: 'iotLCM', tagline: '物联网卡全生命周期管理平台', summary: '卡片从运营商渠道入库 → 划拨给代理商 → 激活 / 续费 / 停机 → 流量与状态同步 → 销户,一个平台覆盖 SIM 卡管理全程。内置中国移动 OneLink、中国电信 5G CMP、中国联通 10646 协议适配,并支持以共享 Token 模式接入多家三方渠道商。', repo: 'https://gitee.com/snowgoat/iotlcm', license: 'Apache-2.0', tech: ['GoFrame v2', 'Vue 3', 'MySQL', 'RabbitMQ', 'TDengine', 'Docker Compose'], status: '已发布', page: '/projects/iotlcm/', sections: [ { text: '快速开始', link: '/projects/iotlcm/guide/quickstart' }, { text: '部署与运维', link: '/projects/iotlcm/guide/deploy' }, { text: '教程视频', link: '/projects/iotlcm/guide/tutorial' }, { text: '方案对比', link: '/projects/iotlcm/compare' }, ], }, { id: 'xiu-dtu', name: '秀杰 DTU 管理平台', tagline: 'DTU 设备全生命周期管理平台', summary: '面向 DTU(数据传输单元)设备,覆盖设备生产、出厂、代理商划拨、终端客户绑定、配置下发、固件 OTA 升级、指令下发与运行监控的完整闭环,HTTP / TCP 双通道接入。', repo: 'https://gitee.com/snowgoat/xiu-dtu', license: 'Apache-2.0', tech: ['GoFrame v2', 'Vue 3 + Vben Admin', 'MySQL', 'Redis', 'asynq', 'VitePress'], status: '已发布', page: '/projects/xiu-dtu/', sections: [ { text: '教程视频', link: '/projects/xiu-dtu/guide/tutorial' }, ], }, { id: 'xiu-admin', name: 'XiuAdmin', tagline: 'GoFrame + Vue3 的全栖中后台框架', summary: '高生产率、可扩展、应用化 / 模块化 / 插件化的中后台开发框架。租户、用户、部门、菜单、角色、代码生成、定时任务、消息队列、通知公告等 22 项内置功能开箱可用。', repo: 'https://gitee.com/snowgoat/xiu-admin', license: 'Apache-2.0', tech: ['GoFrame v2', 'Vue 3 + Vben Admin', 'Ant Design Vue', 'asynq'], status: '已发布', page: '/projects/xiu-admin/', sections: [ { text: '教程视频', link: '/projects/xiu-admin/guide/tutorial' }, ], }, ] /** 按 id 取项目,找不到返回 undefined */ export function projectById(id: string): Project | undefined { return projects.find((p) => p.id === id) }