Files

74 lines
2.8 KiB
Markdown

# 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
```