# Family Safety Frontend Мобильное и веб-приложение на Flutter для отслеживания геопозиции членов семьи в реальном времени. ## Функционал - **Авторизация** — вход в систему по логину и паролю, регистрация новых пользователей - **Карта с позициями** — отображение текущей позиции пользователя и всех отслеживаемых участников на интерактивной карте (OpenStreetMap) - **Геолокация** — автоматическая отправка координат каждые 30 секунд - **Шаринг позиции** — генерация уникальной ссылки для обмена местоположением - **Отслеживание** — добавление других пользователей по Share ID для просмотра их позиций на карте - **Кроссплатформенность** — поддержка Android, Web, Windows, macOS, Linux ## Технологии - **Flutter** (Dart SDK ^3.10.1) - **Provider** — управление состоянием - **flutter_map** + **latlong2** — интерактивные карты - **geolocator** — геолокация - **http** + **crypto** — сетевые запросы и криптография - **shared_preferences** — локальное хранение настроек ## Структура ``` lib/ ├── main.dart # Точка входа ├── screens/ │ ├── login_screen.dart # Экран авторизации │ └── map_screen.dart # Экран карты ├── providers/ │ ├── auth_provider.dart # Состояние авторизации │ ├── map_provider.dart # Состояние карты │ └── share_provider.dart# Состояние шаринга и отслеживания ├── services/ │ ├── auth_service.dart # Сервис авторизации │ ├── geo_service.dart # Сервис геолокации │ ├── platform_service.dart │ ├── settings_service.dart │ └── share_service.dart # Сервис шаринга └── widgets/ ├── error_display.dart └── loading_indicator.dart ``` ## API Документация API доступна в файле [API.md](API.md). ## Сборка ### Android ```bash flutter build apk --release flutter build appbundle --release ``` ### Web ```bash flutter build web --release ``` ### Jenkins Для автоматической сборки используется [Jenkinsfile](Jenkinsfile). ## Запуск ```bash flutter run ```