Open Source PWA взаимопомощи для сообществ водителей.
В экстренной ситуации водитель нажимает кнопку SOS — участники его сообщества (по радиусу или по городу) получают push-уведомление и могут подтвердить, что едут на помощь. Не чат, а обработка событий: центральная сущность — Emergency.
MVP готов (M0–M7), тег v0.1.0. M0 (каркас, CI, деплой), M1 (авторизация через VK ID, профиль, приватность), M2 (группы), M3 (PWA, Web Push), M4 (кнопка SOS, подбор получателей, очередь пушей и воркер), M5 (отклики, поэтапное раскрытие данных, htmx-поллинг экрана тревоги), M6 (журнал событий, рейт-лимиты, жалобы на ложную тревогу, страница модератора, структурированные логи), M7 (docs/PRIVACY.md, CODE_OF_CONDUCT.md, шаблоны issue/PR, обновление координат при открытии приложения и удаление аккаунта — оба обнаружились отсутствующими при сверке документации и были реализованы здесь же, контрольный прогон восстановления из бэкапа).
Сразу после релиза подключён визуальный дизайн (тег v0.2.0): Tailwind CSS v4 (standalone CLI, без Node — собранный app/static/css/app.css вендорится, как и htmx), мобильная вёрстка, тёмная тема, русифицированные статусы. Как собирать стили — CONTRIBUTING.md.
Задеплоено на реальный сервер по состоянию на M4: вход через VK и доставка Web Push подтверждены на настоящем Android-устройстве; M5–M7 пока не редеплоены. Ещё не проверено: iPhone/Safari (нужен физический доступ) и полный цикл «SOS у одного участника → отклик другого → закрытие» на двух реальных телефонах (нужен второй реальный участник группы). Дальше — пункты из PLAN.md, раздел «После MVP» (SSE вместо поллинга, доверенные круги, Telegram-бот, карта, многоязычность). Дорожная карта и детали каждой вехи — PLAN.md.
- Клиент: PWA, HTML, htmx, Tailwind CSS, Web Push API.
- Backend: FastAPI, PostgreSQL, SQLAlchemy 2.0 (async), Alembic, Caddy.
- Сервер: Ubuntu, systemd — без Docker/Kubernetes, чтобы минимизировать сложность сопровождения.
- idea.md — исходная концепция.
- PLAN.md — дорожная карта (M0–M7) и технические решения.
- docs/ARCHITECTURE.md — архитектура.
- docs/PRIVACY.md — какие данные хранятся, кому и когда видны, как удалить аккаунт.
- docs/DEVELOPMENT.md — локальная разработка.
- docs/INSTALL.md — установка на Ubuntu VPS.
- CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md.
- CHANGELOG.md — журнал изменений.
- Фоновая геолокация недоступна ни на Android, ни на iOS — браузеры такого API не дают. «Кто в радиусе» — всегда оценка по последним сохранённым координатам, не факт.
- iOS Web Push работает только для PWA, установленной на домашний экран (Safari 16.4+).
- Это не замена вызову экстренных служб.
Подробности и как это учтено в архитектуре — docs/ARCHITECTURE.md.