Об этом проекте
BikeBuddy — это персональное веб-приложение для ведения журнала поездок. Его цель проста: ваши поездки, ваши маршруты, ваши воспоминания. Пользователи загружают GPX-треки, экспортированные из любого устройства (велосипедного или мотоциклетного), и приложение отображает их в виде маршрутов на карте. К турам можно прикреплять фотографии, превращая необработанные данные трека в полноценный отчет с изображениями.
Что предоставляет репозиторий
В README описывается фронтенд, предоставляемый как статический контент через GitHub Pages, в сочетании с бессерверным бэкендом на Azure Functions v4. Для хранения данных используется Cosmos DB, а медиафайлы, такие как фотографии, должны храниться в Blob Storage, согласно технологическим бейджам. Требуется Node.js версии 24 или новее. Скриншот в документации демонстрирует вид карты с маршрутами поездок и боковой панелью тура.
Карты отрисовываются с помощью Leaflet, а валидация осуществляется через Zod. Весь стек базируется на JavaScript и TypeScript.
Начало работы
Все вспомогательные скрипты запускаются через единую точку входа: выполните shell-скрипт buddy.sh, указав группу и команду. Флаг help выводит список всех доступных опций. Две задокументированные команды охватывают основной путь: команда настройки разработки (development setup), которая устанавливает инструменты и шаблоны конфигурации, и команда запуска разработки (development start-all), которая поднимает весь локальный стек на порту 4280 localhost. Для настройки должен быть запущен Docker.
Документация
Полная документация находится в папке docs и организована в соответствии с фреймворком Diátaxis:
- Tutorial: пошаговое руководство по началу работы.
- How-to guides: руководство пользователя и руководство разработчика, охватывающее локальную разработку, аутентификацию и токены, а также развертывание, плюс отдельное руководство по инфраструктуре.
- Reference: страницы по архитектуре и конфигурации.
- Explanation: проектные решения и отчет о затратах.
Руководство по контрибьютингу описывает соглашения для участников и упоминается в README.
Инфраструктура и инструменты
Инфраструктура описана как код (IaC) и управляется с помощью OpenTofu; в качестве облачного провайдера выбран Azure. Развертывание статической части происходит через GitHub Pages с помощью рабочих процессов GitHub Actions.
Инструменты качества и безопасности, видимые в бейджах README:
- ESLint и Prettier для линтинга и форматирования.
- Vitest для модульных тестов с отчетами о покрытии через Codecov.
- Playwright для сквозных (e2e) тестов, согласно карте технологий.
- Stryker для мутационного тестирования с публичным отчетом на дашборде.
- OpenGrep для статического анализа безопасности приложений (SAST), zizmor для укрепления GitHub Actions и сканирование кода CodeQL.
- pre-commit хуки для локальных проверок.
- Бейдж gate workflow, указывающий на наличие CI-контроля качества.
Лицензирование и статус проекта
Проект выпущен под лицензией MIT. В README есть ссылка на бейдж последнего коммита, указывающий на недавнюю активность, однако здесь не приводятся утверждения о зрелости релизов, требованиях к хостингу помимо задокументированных или характеристиках производительности.
Кому это может подойти
Тем, кто хочет иметь самостоятельно управляемый архив поездок с визуализацией на карте и прикреплением фотографий, и кто готов развернуть стек на базе Azure или запустить задокументированную локальную среду разработки на Docker. Разработчики, ищущие рабочий пример сочетания статического фронтенда с Azure Functions и Cosmos DB, а также обширный инструментарий тестирования и безопасности, также могут найти этот репозиторий полезным в качестве справочника.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.