https://github.com/express42/search_engine_ui
https://github.com/express42/search_engine_ui
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/express42/search_engine_ui
- Owner: express42
- Created: 2017-12-21T12:02:33.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-03-03T12:07:13.000Z (over 2 years ago)
- Last Synced: 2025-05-17T00:33:35.577Z (about 1 year ago)
- Language: Python
- Size: 8.79 KB
- Stars: 2
- Watchers: 19
- Forks: 35
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Search Engine UI
Веб-интерфейс поиска слов и фраз на проиндексированных [ботом](https://github.com/express42/search_engine_crawler) сайтах.
Веб-интерфейс минимален, предоставляет пользователю строку для запроса и результаты. Поиск происходит только по индексированным сайтам. Результат содержит только те страницы, на которых были найдены все слова из запроса. Рядом с каждой записью результата отображается оценка полезности ссылки (чем больше, тем лучше).
## Необходимые компоненты
Для запуска веб-интерфейса нужно установить дополнительные компоненты python командой
```
pip install -r requirements.txt
```
Для работы веб-интерфейса нужен запущенный сервис `mongodb`
## Запуск веб-интерфейса
### Переменные окружения
* `MONGO` - адрес `mongodb`-хоста
* `MONGO_PORT` - порт для подключения к `mongodb`-хосту
### Пример для запуска
В общем случае веб-интерфейс можно запустить с помощью команд
```
cd ui
FLASK_APP=ui.py gunicorn ui:app -b 0.0.0.0
```
Для проверки работы веб-интефейса надо зайти по адресу `http://HOST_IP:8000/`, где `HOST_IP` - адрес хоста на котором запущен веб-интерфейс.
## Тестирование
### Необходимые компоненты
Для тестирования необходимо установить дополнительные компоненты с помщью команды
```
pip install -r requirements.txt -r requirements-test.txt
```
### Тестирование
Базовая команда для запуска unit-тестов
```
python -m unittest discover -s tests/
```
Команды для генерации отчета о покрытии кода тестами
```
coverage run -m unittest discover -s tests/
coverage report --include ui/ui.py
```
## Мониторинг
Метрики для снятия `prometheus` доступны по адресу `http://HOST_IP:8000/metrics`, где `HOST_IP` - адрес хоста на котором запущен бот.
### Метрики
* `web_pages_served` - количество обработанных запросов
* `web_page_gen_time` - время генерации веб-страниц, учитывая время обработки запроса
## Логирование
Бот отправляет логи в `json`-формате в `stdout`