# 🎨 Фронтенд для тестирования API

Простой, но функциональный веб-интерфейс для тестирования всех ендпоинтов Women's Safety App API.

## 🚀 Запуск

### Способ 1: Использование скрипта
```bash
bash run_frontend.sh
```

### Способ 2: Прямой запуск Python сервера
```bash
cd /home/trevor/dev/chat
python3 -m http.server 8888 --bind 127.0.0.1
```

## 📖 Использование

1. **Откройте браузер** и перейдите на: http://localhost:8888/frontend_test.html

2. **Зарегистрируйтесь или войдите**:
   - Используйте вкладку "Регистрация" для создания новой учётной записи
   - Используйте вкладку "Вход" для входа с существующей учётной записью
   - После входа вы получите JWT токен

3. **Протестируйте API**:
   - **👤 Пользователи**: управление профилем и просмотр пользователей
   - **🚨 Алерты**: создание и просмотр экстренных алертов
   - **📅 Календарь**: добавление и просмотр событий календаря
   - **🔔 Уведомления**: отправка уведомлений
   - **❤️ Health**: проверка статуса всех сервисов

## 🎯 Основные возможности

### 🔐 Аутентификация
- ✅ Регистрация новых пользователей
- ✅ Вход в систему с получением JWT токена
- ✅ Сохранение токена в локальном хранилище
- ✅ Копирование токена в буфер обмена

### 👤 Управление пользователями
- ✅ Получение профиля текущего пользователя
- ✅ Просмотр всех пользователей
- ✅ Обновление информации профиля

### 🚨 Emergency System
- ✅ Создание экстренных алертов
- ✅ Просмотр существующих алертов
- ✅ Указание местоположения (широта/долгота)
- ✅ Выбор типа экстренного события

### 📅 Календарь здоровья
- ✅ Просмотр записей календаря
- ✅ Добавление новых записей
- ✅ Отслеживание цикла, настроения и энергии
- ✅ Указание даты и типа события

### 🔔 Уведомления
- ✅ Отправка уведомлений
- ✅ Установка приоритета
- ✅ Кастомизация заголовка и текста

### ❤️ Здоровье сервиса
- ✅ Проверка статуса всех микросервисов
- ✅ Мониторинг API Gateway
- ✅ Проверка доступности каждого сервиса

## 🎨 Интерфейс

### Левая панель
- Аутентификация и навигация
- Вход и регистрация
- Список всех ендпоинтов

### Правая панель
- Тестирование API
- 5 основных категорий функций
- Просмотр результатов в JSON формате

## 📱 Функции браузера

- **Адаптивный дизайн**: работает на мобильных устройствах
- **Красивый UI**: градиентный фон и современный дизайн
- **Подсветка кода**: JSON результаты отображаются в читаемом формате
- **Сохранение токена**: автоматическое сохранение в localStorage
- **Копирование**: быстрое копирование токена в буфер обмена

## 🔧 Примеры использования

### Регистрация
1. Откройте вкладку "Регистрация"
2. Заполните Email, имя пользователя, пароль
3. Нажмите "✍️ Зарегистрироваться"
4. После успешной регистрации используйте эти учётные данные для входа

### Создание алерта
1. Откройте вкладку "🚨 Алерты"
2. Установите координаты (по умолчанию Нью-Йорк)
3. Выберите тип алерта
4. Нажмите "🚨 Создать алерт"

### Проверка здоровья системы
1. Откройте вкладку "❤️ Health"
2. Нажмите "🔍 Проверить все сервисы"
3. Посмотрите статус всех 5 микросервисов

## 🌐 API URLs

По умолчанию фронтенд подключается к:
- **API Gateway**: http://localhost:8000
- **User Service**: http://localhost:8001
- **Emergency Service**: http://localhost:8002
- **Calendar Service**: http://localhost:8004
- **Notification Service**: http://localhost:8005

Для изменения IP адреса, отредактируйте переменную `API_BASE` в `frontend_test.html`

## 🚨 CORS

Убедитесь, что все микросервисы имеют правильно настроенный CORS для работы с фронтенда:
```python
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)
```

## 📊 Технические детали

- **Язык**: HTML5 + CSS3 + Vanilla JavaScript
- **Размер**: ~15KB (один файл)
- **Зависимости**: нет (чистый JavaScript)
- **Браузер**: все современные браузеры (Chrome, Firefox, Safari, Edge)

## ✅ Протестировано

- ✅ Регистрация и вход
- ✅ Управление профилем
- ✅ Создание и просмотр алертов
- ✅ Управление календарём
- ✅ Отправка уведомлений
- ✅ Проверка здоровья сервисов
- ✅ Сохранение токена
- ✅ CORS запросы

## 🎓 Образовательная ценность

Этот фронтенд показывает:
- Как работать с REST API
- Как использовать JWT токены
- Как обрабатывать асинхронные операции (fetch API)
- Как управлять состоянием браузера (localStorage)
- Как создавать адаптивный UI без фреймворков

## 📝 Лицензия

MIT License - свободен для использования и модификации

---

**Создано**: 2025-12-13  
**Версия**: 1.0.0  
**Статус**: Полностью функционален ✅
