Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stakancheck/cu-extern-case-02


https://github.com/stakancheck/cu-extern-case-02

Last synced: 12 days ago
JSON representation

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 и модели анализа, что позволяет убедиться в корректной работе всех компонентов приложения.