Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stakancheck/cu-extern-case-02
https://github.com/stakancheck/cu-extern-case-02
Last synced: 12 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/stakancheck/cu-extern-case-02
- Owner: stakancheck
- Created: 2024-10-23T20:44:14.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-01T19:02:34.000Z (3 months ago)
- Last Synced: 2024-11-11T05:22:57.616Z (2 months ago)
- Language: Python
- Size: 38.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Weather Prediction Web Service
## Краткое описание
Этот проект представляет собой веб-сервис, который анализирует погоду и сообщает о неблагоприятных погодных условиях для заданного маршрута с использованием данных от AccuWeather API. Сервис предоставляет пользователю удобные карточки прогноза погоды для начальной и конечной точек маршрута.
## Инструкция по запуску и получению ключей
### Шаг 1: Получение API ключа
1. Зарегистрируйтесь на [OpenWeather API](https://openweathermap.org/) и получите свой API ключ.
2. Сохраните API ключ в `.env` файле в корне проекта:
```
OPENWEATHER_API_KEY=your_api_key_here
```
3. Токен для BotFather можно получить в Telegram. Найдите BotFather и создайте нового бота, следуя инструкциям. После создания бота вы получите токен, который необходимо сохранить в `.env` файле:
```
TG_BOT_TOKEN=your_bot_token_here
```
Мой токен для тестирования: `7939680018:AAGSwn-YTe9KL3Cdj1wgvd5J_LMid_he7fk`### Шаг 2: Установка необходимых библиотек
1. Убедитесь, что у вас установлен Python 3.7 или выше.
2. Установите необходимые библиотеки, выполнив команду:
```sh
pip install -r requirements.txt
```### Шаг 3: Запуск веб-сервиса
1. Запустите веб-сервис командой:
```sh
python run.py
```
```
python telegram_bot.py
```
Для запуска бота.
2. Откройте браузер и перейдите по адресу `http://127.0.0.1:5000`, чтобы увидеть работающий веб-сервис.### Описание директорий и файлов
- `app/`: Основная директория приложения.
- `__init__.py`: Инициализация приложения Flask.
- `models/`: Модели данных.
- `routes/`: Маршруты приложения.
- `services/`: Логика обработки данных и взаимодействия с API.
- `templates/`: HTML-шаблоны.
- `translations/`: Файлы переводов.
- `config.py`: Конфигурация приложения.
- `logs/`: Логи приложения.
- `run.py`: Точка входа для запуска приложения.
- `tests/`: Тесты для приложения.
- `requirements.txt`: Список зависимостей проекта.
- `TASK.md`: Описание задания и критерии оценки.## Описание некоторых решений
### Локализация
Для локализации используется библиотека `Flask-Babel`. Функция `get_locale` определяет язык интерфейса на основе параметров запроса, сессии или предпочтений браузера.
> Можно указать язык, добавив параметр lang= в строку запроса. Поддерживается en и ru.
### Обработка ошибок
Для обработки ошибок при запросах к API используется блок `try-except`. В случае ошибки пользователю выводится понятное сообщение о проблеме.
### Тестирование
Тесты для приложения находятся в директории `tests/`. Они включают тесты для API и модели анализа, что позволяет убедиться в корректной работе всех компонентов приложения.