このプロジェクトについて

Flarelyticsは、訪問者がウェブサイトのコンテンツを読むのに費やした時間を測定するために設計されたオープンソースのウェブアナリティクスプロジェクトです。多くの主要なアナリティクスサービスが大量の個人データを収集したり、正確な滞在時間指標を持っていなかったりすることに対抗し、プライバシーを尊重する代替手段を提供することを目指しています。 **アーキテクチャ** - **ブラウザスクリプト** (`analytics`フォルダ内) — ウェブサイトオーナーがページに埋め込む小さなJavaScriptスニペット。各訪問者セッションごとにUUIDを生成し、ページ読み込み時に1つ、ページが非表示またはアンロードされるときにもう1つのイベントをバックエンドへ送信します。 - **バックエンド** (`src`内) — Cloudflare WorkerとしてデプロイされるTypeScriptアプリケーション。イベントを受け取り、PlanetScaleのMySQL互換データベースに格納する単純なHTTP APIを提供します。バックエンドはさらに生のイベントを集計し、ダッシュボードで確認できるページごとの滞在時間統計を作成します。 **主な機能** - セルフホスト型:独自のCloudflareアカウントでワーカーを実行し、独自のPlanetScaleデータベースにデータを保存できます。 - プライバシーファースト:第三者のトラッキングクッキーなし、IPログなし、すべてのデータをあなた自身が管理できます。 - 単一ドメイン対応(将来的には複数ドメイン対応を追加予定)。 - `wrangler`と`pnpm`を使用したシンプルなデプロイワークフロー。 **開発ワークフロー** 1. 無料のCloudflareとPlanetScaleアカウントを作成します。 2. リポジトリをクローンし、Node.js v18+、pnpm、PlanetScale CLIをインストールします。 3. `main`および`dev`ブランチを持つ`flarelytics`という名前のPlanetScaleデータベースを設定し、ローカル作業には`dev`ブランチを使用します。 4. Cloudflare Worker(例:`flarelytics-dev`)を作成し、データベース認証情報をシークレット環境変数として保存します。 5. `pnpm run setup-test-db`を実行してテーブルを作成し、`pnpm run dev`でローカルワーカーを開始します。 6. テスト環境用に準備ができたら`npm run deploy-dev`でデプロイします。 **貢献** 本プロジェクトはブダペスト工科大学のGoogle Developer Student Clubによって保守されています。貢献者はGitHubトラッカーからの課題を選び、標準的なfork-branch-PRフローに従い、READMEに記載された貢献ガイドラインを遵守することが奨励されます。 **ステータス** Flarelyticsは現在アクティブに開発中であり、まだ本番環境での使用はまだ推奨されていません。今後の計画には、複数ドメイン対応、より豊かなダッシュボード、オプションの認証付きアナリティクスUIが含まれます。