feat: Fix nutrition service and add location-based alerts
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Changes: - Fix nutrition service: add is_active column and Pydantic validation for UUID/datetime - Add location-based alerts feature: users can now see alerts within 1km radius - Fix CORS and response serialization in nutrition service - Add getCurrentLocation() and loadAlertsNearby() functions - Improve UI for nearby alerts display with distance and response count
This commit is contained in:
167
FRONTEND_README.md
Normal file
167
FRONTEND_README.md
Normal file
@@ -0,0 +1,167 @@
|
||||
# 🎨 Фронтенд для тестирования 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
|
||||
**Статус**: Полностью функционален ✅
|
||||
Reference in New Issue
Block a user