这个项目能做什么
BikeBuddy 是一款个人骑行日志 Web 应用程序。其宗旨很简单:你的骑行,你的路线,你的回忆。骑行者可以上传从任何骑行(无论是自行车还是摩托车)中导出的 GPX 轨迹,应用程序将其在地图上渲染为路线。行程中可以附加照片,将原始轨迹数据转化为带有图像的记录。
仓库提供的内容
README 描述了一个作为静态内容由 GitHub Pages 提供的前端,以及一个运行在 Azure Functions v4 上的无服务器后端。根据显示的技术徽章,持久化存储使用 Cosmos DB,照片等媒体文件则存储在 Blob Storage 中。要求 Node.js 24 或更高版本。文档中的截图显示了一个带有骑行路线的地图视图以及一个行程侧边栏。
地图使用 Leaflet 绘制,验证由 Zod 处理。整个技术栈采用 JavaScript 和 TypeScript。
快速入门
所有辅助脚本通过单一入口点运行:运行 shell 脚本 buddy.sh,随后跟一个组和一个命令。帮助标志(help flag)列出了所有可用选项。文档中记录了两个常用命令:一个开发设置命令,用于安装工具和配置模板;以及一个开发启动所有(start-all)命令,用于在 localhost 端口 4280 上启动完整的本地技术栈。设置时必须运行 Docker。
文档
完整文档位于 docs 文件夹中,根据 Diátaxis 框架组织:
- Tutorial(教程):入门指南。
- How-to guides(操作指南):包括涵盖本地开发、身份验证与令牌以及部署的用户指南和开发人员指南,以及一份单独的基础设施操作指南。
- Reference(参考):架构和配置页面。
- Explanation(解释):设计决策和成本报告。
贡献指南记录了贡献者规范,并在 README 中被引用。
基础设施与工具
基础设施被描述为使用 OpenTofu 管理的代码,项目目标云提供商为 Azure。静态部分的部署通过 GitHub Pages 完成,工作流在 GitHub Actions 上运行。
README 徽章中可见的质量和安全工具:
- ESLint 和 Prettier 用于代码检查和格式化。
- Vitest 用于单元测试,并通过 Codecov 报告覆盖率。
- 根据技术图谱,Playwright 用于端到端测试。
- Stryker 用于变异测试,并提供公共仪表板报告。
- OpenGrep 用于静态应用程序安全测试,zizmor 用于 GitHub Actions 加固,以及 CodeQL 代码扫描。
- pre-commit 钩子用于本地检查。
- 门禁工作流徽章表示存在 CI 质量门禁。
许可与项目状态
该项目在 MIT 许可证下发布。README 链接到了一个表示近期活动的最后提交徽章,但此处未对发布成熟度、文档之外的托管要求或性能特性做出声明。
适用人群
希望拥有一个可自我管理的骑行记录(具备地图可视化和照片附加功能),并且能够熟练部署基于 Azure 的技术栈或运行文档中记录的基于 Docker 的本地开发环境的用户。对于寻找“静态前端 + Azure Functions + Cosmos DB”实际案例,且希望参考广泛的测试和安全工具链的开发人员来说,该仓库也将是一个有用的参考。
评论
0 评分人数达到10人后显示
登录后参与讨论。