Files
WellShe/docs/auth_emergency_system_requirements.md

9.1 KiB
Raw Permalink Blame History

Техническое задание для ИИ агента по реализации системы авторизации, регистрации и экстренных оповещений

Промпт для ИИ

Ты — ИИ агент-разработчик, специализирующийся на интеграции клиентской части приложения для женской безопасности с бэкендом на микросервисной архитектуре. Твоя задача — реализовать систему авторизации, регистрации и экстренных оповещений на основе предоставленных API-эндпоинтов.

Общие требования

  1. Создай модули для работы с авторизацией и регистрацией пользователей
  2. Реализуй механизм хранения и обновления токенов доступа
  3. Разработай интерфейс для экстренных оповещений
  4. Обеспечь надежную обработку ошибок и восстановление соединения
  5. Следуй современным практикам безопасности при работе с 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}
  • Обработка ответа: Удалить все локальные данные аутентификации

Функциональные требования

  1. Валидация данных:

    • Проверка корректности формата email
    • Проверка надежности пароля (минимум 8 символов, одна заглавная буква, одна цифра, один специальный символ)
    • Валидация номера телефона (международный формат)
  2. Хранение данных:

    • Безопасное хранение токенов доступа (использовать Secure Storage)
    • Автоматическое обновление токенов при истечении срока действия
  3. Обработка ошибок:

    • Четкие сообщения об ошибках для пользователя
    • Автоматические повторные попытки при проблемах с сетью
    • Логирование ошибок для отладки

Часть 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): Причина отмены
  • Обработка ответа: Обновить статус оповещения в интерфейсе

Функциональные требования

  1. Интерфейс экстренных оповещений:

    • Кнопка SOS, заметная и легко доступная
    • Подтверждение перед отправкой для предотвращения случайных активаций
    • Индикатор статуса активного оповещения
    • Возможность отмены оповещения
  2. Геолокация:

    • Автоматическое получение местоположения пользователя
    • Периодическое обновление координат при активном оповещении
    • Отправка обновлений локации на сервер
  3. Уведомления:

    • Push-уведомления о статусе экстренного оповещения
    • Звуковые сигналы при изменении статуса
    • Вибрация для незаметного активирования
  4. Отказоустойчивость:

    • Кэширование данных для работы офлайн
    • Повторная отправка при восстановлении соединения
    • Локальное хранение истории экстренных вызовов

Технические требования

  1. Архитектура:

    • Использовать паттерн MVVM или Redux для управления состоянием
    • Разделить код на модули по функциональности
    • Инкапсулировать работу с API в отдельный сервис
  2. Безопасность:

    • Шифрование хранимых данных
    • Проверка SSL-сертификатов
    • Защита от CSRF и других уязвимостей
  3. Производительность:

    • Минимизировать использование ресурсов
    • Оптимизировать сетевые запросы
    • Эффективное управление жизненным циклом приложения
  4. Тестирование:

    • Модульные тесты для каждого компонента
    • Интеграционные тесты для проверки взаимодействия с API
    • UI-тесты для проверки пользовательского интерфейса

Ожидаемые результаты

  1. Полностью функциональная система авторизации и регистрации
  2. Интерфейс для экстренных оповещений с полной интеграцией API
  3. Документация по архитектуре и интеграции
  4. Покрытие кода тестами не менее 80%

Ограничения и особые требования

  1. Приложение должно работать на устройствах с API 21 и выше (Android) или iOS 12 и выше
  2. Учитывать различные размеры экрана и ориентации
  3. Обеспечить доступность для людей с ограниченными возможностями
  4. Минимальное потребление батареи даже при использовании геолокации

Примечания

  1. Все взаимодействия с API должны учитывать возможные задержки и проблемы с сетью
  2. Система должна быть протестирована на восстановление при потере соединения
  3. Пользовательский интерфейс должен быть интуитивно понятным и легким в использовании
  4. Все действия, связанные с безопасностью, должны логироваться для аудита