Небольшое веб-приложение основанное на фреймворке Django, которое возвращает статистку по погоде за определенный период . Проект не рассказывает текущую погоду (хотя текущая погода используется для рассчета одного из пунктов статситики).
Проект фигурирует Записями, поля записей содержат такие поля:
- Город
- Дата
- Температура
- Направление ветра
- Скорость ветра
- Погодный статус
- Кол-во выпавших осадков
Списки Городов и Записей в дальнейшем могут быть расширены администраторами.
- Расчет статистики - основная возможность проекта, осуществляется прямо на главной странице.
- Администрирование — Редактирование записей в админке (/admin/), массовая загрузка данных (кнопка появляется в навигации сайта при залогиненном админе).
Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/KazuruK/Software-Engineering-2021.git
cd Software-Engineering-2021/weather/
Cоздать и активировать виртуальное окружение:
python3 -m venv env
source env/bin/activate
Установить зависимости из файла requirements.txt
:
python3 -m pip install --upgrade pip
pip install -r requirements.txt
Выполнить миграции:
python3 manage.py migrate
Запустить проект:
python3 manage.py runserver
Также вы можете использовать образ с DockerHub - https://hub.docker.com/repository/docker/kazuru/weather-statistics
Запуск процесса сборки:
docker build -t kazuru/weather_statistics:v1 .
Создание и запуск контейнера:
docker-compose build
docker-compose up -d
В данный репозиторий не загружены необходимые для корректного отображения статические файлы.
Для решения данной проблемы рекомендую загрузить bootstrap в директорию ./static/
, либо использовать Docker образ из репозитория выше.
- Данные о погоде были взяты с сайта https://rp5.ru/ в
.csv
с кодировкойutf-8
, данные в течении работы изменяются, поэтому rp5.ru не несет никакой ответственности за их правдивость. - Данные были отчищены от лишней информацией с помощью: удаления ненужных столбцов, изменения разделительных знаков, вычленения необходимой информации из строк. Данные действия производились через самостоятельно написанные python-скрипты.
- Далее очищенные
.csv
файлы помещаются в проект в директорию./data_to_load/
. - Пользователь с правами администрирования переходит по адресу
/load_data/
(или использует кнопкузагрузить данные
), после чего запускается процесс записи данных в базу данных. Будьте аккуратны с ошибками во время выполнения загрузки: попытка загрузить уже имеющиеся данные завершит процесс загрузки с ошибкой (может быть исправлено в дальнейшем).
Так как процесс загрузки данных в бд занимает достаточно много времени, в целях тестирования в данный репозиторий также была загружена уже заполненная база данных. Для тестирования возможностей был создан тестовый superuser аккаунт (admin:admin)
Все необходимые пакеты перечислены в requirements.txt
- Есин Никита - https://vk.com/kazuru