9.1 KiB
9.1 KiB
Техническое задание для ИИ агента по реализации системы авторизации, регистрации и экстренных оповещений
Промпт для ИИ
Ты — ИИ агент-разработчик, специализирующийся на интеграции клиентской части приложения для женской безопасности с бэкендом на микросервисной архитектуре. Твоя задача — реализовать систему авторизации, регистрации и экстренных оповещений на основе предоставленных API-эндпоинтов.
Общие требования
- Создай модули для работы с авторизацией и регистрацией пользователей
- Реализуй механизм хранения и обновления токенов доступа
- Разработай интерфейс для экстренных оповещений
- Обеспечь надежную обработку ошибок и восстановление соединения
- Следуй современным практикам безопасности при работе с API
Часть 1: Система авторизации и регистрации
Эндпоинты для работы
Регистрация
- URL:
/api/v1/auth/register - Метод:
POST - Требуемые поля:
- email (string)
- username (string)
- password (string)
- first_name (string)
- last_name (string)
- phone (string)
- Обработка ответа: Создать локальный профиль пользователя и перенаправить на экран авторизации
Авторизация
- URL:
/api/v1/auth/login - Метод:
POST - Требуемые поля:
- username (string) или email (string)
- password (string)
- Обработка ответа: Сохранить полученный токен доступа и refresh token
Обновление токена
- URL:
/api/v1/auth/refresh - Метод:
POST - Требуемые поля:
- refresh_token (string)
- Обработка ответа: Обновить сохраненный токен доступа
Выход из системы
- URL:
/api/v1/auth/logout - Метод:
POST - Заголовки: Authorization: Bearer {token}
- Обработка ответа: Удалить все локальные данные аутентификации
Функциональные требования
-
Валидация данных:
- Проверка корректности формата email
- Проверка надежности пароля (минимум 8 символов, одна заглавная буква, одна цифра, один специальный символ)
- Валидация номера телефона (международный формат)
-
Хранение данных:
- Безопасное хранение токенов доступа (использовать Secure Storage)
- Автоматическое обновление токенов при истечении срока действия
-
Обработка ошибок:
- Четкие сообщения об ошибках для пользователя
- Автоматические повторные попытки при проблемах с сетью
- Логирование ошибок для отладки
Часть 2: Экстренные оповещения
Эндпоинты для работы
Создание экстренного оповещения
- URL:
/api/v1/emergency/alert - Метод:
POST - Заголовки: Authorization: Bearer {token}
- Требуемые поля:
- location (object): { latitude: float, longitude: float }
- message (string, optional): Дополнительная информация
- Обработка ответа: Отобразить статус отправки и ID оповещения
Получение статуса экстренного оповещения
- URL:
/api/v1/emergency/alert/{alert_id} - Метод:
GET - Заголовки: Authorization: Bearer {token}
- Обработка ответа: Обновить интерфейс с информацией о статусе оповещения
Отмена экстренного оповещения
- URL:
/api/v1/emergency/alert/{alert_id}/cancel - Метод:
POST - Заголовки: Authorization: Bearer {token}
- Требуемые поля:
- reason (string, optional): Причина отмены
- Обработка ответа: Обновить статус оповещения в интерфейсе
Функциональные требования
-
Интерфейс экстренных оповещений:
- Кнопка SOS, заметная и легко доступная
- Подтверждение перед отправкой для предотвращения случайных активаций
- Индикатор статуса активного оповещения
- Возможность отмены оповещения
-
Геолокация:
- Автоматическое получение местоположения пользователя
- Периодическое обновление координат при активном оповещении
- Отправка обновлений локации на сервер
-
Уведомления:
- Push-уведомления о статусе экстренного оповещения
- Звуковые сигналы при изменении статуса
- Вибрация для незаметного активирования
-
Отказоустойчивость:
- Кэширование данных для работы офлайн
- Повторная отправка при восстановлении соединения
- Локальное хранение истории экстренных вызовов
Технические требования
-
Архитектура:
- Использовать паттерн MVVM или Redux для управления состоянием
- Разделить код на модули по функциональности
- Инкапсулировать работу с API в отдельный сервис
-
Безопасность:
- Шифрование хранимых данных
- Проверка SSL-сертификатов
- Защита от CSRF и других уязвимостей
-
Производительность:
- Минимизировать использование ресурсов
- Оптимизировать сетевые запросы
- Эффективное управление жизненным циклом приложения
-
Тестирование:
- Модульные тесты для каждого компонента
- Интеграционные тесты для проверки взаимодействия с API
- UI-тесты для проверки пользовательского интерфейса
Ожидаемые результаты
- Полностью функциональная система авторизации и регистрации
- Интерфейс для экстренных оповещений с полной интеграцией API
- Документация по архитектуре и интеграции
- Покрытие кода тестами не менее 80%
Ограничения и особые требования
- Приложение должно работать на устройствах с API 21 и выше (Android) или iOS 12 и выше
- Учитывать различные размеры экрана и ориентации
- Обеспечить доступность для людей с ограниченными возможностями
- Минимальное потребление батареи даже при использовании геолокации
Примечания
- Все взаимодействия с API должны учитывать возможные задержки и проблемы с сетью
- Система должна быть протестирована на восстановление при потере соединения
- Пользовательский интерфейс должен быть интуитивно понятным и легким в использовании
- Все действия, связанные с безопасностью, должны логироваться для аудита