このプロジェクトについて
BikeBuddyは、個人のライドログを記録するためのWebアプリケーションです。その目的はシンプルに「あなたのライド、あなたのルート、あなたの思い出」を記録することです。ユーザーはサイクリングやモーターサイクルなど、あらゆるライドからエクスポートしたGPXトラックをアップロードし、アプリはそれを地図上のルートとしてレンダリングします。ツアーに写真を添付することで、生のトラックデータを画像付きの記録に変えることができます。
リポジトリの内容
READMEによると、フロントエンドはGitHub Pagesから静的コンテンツとして提供され、バックエンドはAzure Functions v4によるサーバーレス構成となっています。技術バッジに基づくと、永続化にはCosmos DBが使用され、写真などのメディアはBlob Storageに保存される想定です。Node.js 24以降が必要です。ドキュメント内のスクリーンショットには、ライドルートが表示されたマップビューとツアーサイドバーが示されています。
地図の描画にはLeafletが使用され、バリデーションはZodで処理されています。スタック全体でJavaScriptとTypeScriptが採用されています。
導入方法
すべてのヘルパースクリプトは単一のエントリポイントから実行されます。シェルスクリプト buddy.sh を実行し、その後にグループとコマンドを指定します。ヘルプフラグで利用可能な全コマンドを確認できます。ドキュメントには一般的なパスとして2つのコマンドが記載されています。ツールと設定テンプレートをインストールする開発セットアップコマンドと、localhostのポート4280でローカルスタック全体を起動する開発用 start-all コマンドです。セットアップにはDockerが動作している必要があります。
ドキュメント
完全なドキュメントはdocsフォルダにあり、Diátaxisフレームワークに従って整理されています。
- Tutorial: 導入ウォークスルー。
- How-to guides: ユーザーガイドおよび、ローカル開発、認証とトークン、デプロイをカバーする開発者ガイド。さらに、個別のインフラストラクチャHow-toが含まれます。
- 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の構成例と、広範なテストおよびセキュリティツールチェーンの実装例を探している開発者にとっても、このリポジトリは有用なリファレンスとなるでしょう。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.