Об этом проекте

Flarelytics — это open-source проект по веб-аналитике, предназначенный для измерения времени, которое посетители тратят на чтение контента на веб-сайте. Его цель — предоставить альтернативу основным сервисам аналитики, которые часто собирают избыточные персональные данные или не имеют точных метрик времени пребывания. **Архитектура** - **Браузерный скрипт** (находится в папке `analytics`) — небольшой фрагмент JavaScript, который владельцы сайтов встраивают в свои страницы. Он генерирует UUID для каждой сессии посетителя и отправляет два события на бэкенд: одно при загрузке страницы и другое, когда страница скрывается или выгружается. - **Бэкенд** (в `src`) — приложение на TypeScript, развернутое как Cloudflare Worker. Оно предоставляет простой HTTP API, который принимает события и сохраняет их в совместимой с MySQL базе данных PlanetScale. Бэкенд также агрегирует необработанные события в статистику времени пребывания по каждой странице, которую можно просмотреть на панели управления. **Ключевые особенности** - Self-hosted: запускайте worker в своем аккаунте Cloudflare и храните данные в собственной базе данных PlanetScale. - Приоритет конфиденциальности: никаких сторонних отслеживающих cookies, никакого логирования IP-адресов, и все данные остаются под вашим контролем. - Поддержка одного домена (в будущих версиях может быть добавлена поддержка нескольких доменов). - Простой рабочий процесс развертывания с использованием `wrangler` и `pnpm`. **Процесс разработки** 1. Создайте бесплатные аккаунты Cloudflare и PlanetScale. 2. Клонируйте репозиторий и установите Node.js v18+, pnpm и PlanetScale CLI. 3. Настройте базу данных PlanetScale с именем `flarelytics` с ветками `main` и `dev`; используйте ветку `dev` для локальной работы. 4. Создайте Cloudflare Worker (например, `flarelytics-dev`) и сохраните учетные данные базы данных в виде секретных переменных окружения. 5. Запустите `pnpm run setup-test-db` для создания таблиц, затем `pnpm run dev` для запуска локального worker. 6. Разверните проект с помощью `npm run deploy-dev`, когда будете готовы к тестовой среде. **Вклад в проект** Проект поддерживается Google Developer Student Club в Будапештском университете технологии и экономики. Контрибьюторам предлагается выбирать задачи из трекера GitHub, следовать стандартному процессу fork-branch-PR и придерживаться руководства по внесению вклада, изложенного в README. **Статус** Flarelytics находится в стадии активной разработки и пока не рекомендуется для использования в продакшене. Планы на будущее включают поддержку нескольких доменов, более функциональные панели управления и опциональную аутентификацию для пользовательского интерфейса аналитики.