📘 О чем эта работа
Курсовая посвящена проектированию REST API для сбора и анализа погоды. Объектом являются сущности, обеспечивающие хранение текущих метеоизмерений и прогнозов; предмет — построение структуры API, диаграмм UML и практическая реализация на Django с использованием Django REST Framework.
📚 Что внутри
Работа содержит подробное описание архитектуры и конкретную практическую реализацию:
- UML-диаграмма классов с сущностями User, City, Weather, Forecast и их связями (many-to-many для User↔City, one-to-many для City↔Weather/Forecast).
- UML-диаграмма последовательности, показывающая сценарии: создание города, запрос текущей погоды, обращение к внешнему API и возврат результата клиенту.
- Полная спецификация полей моделей (id, name, country, temperature, humidity, wind_speed, timestamp, date и др.).
- CRUD-эндпойнты и примеры запросов/ответов:
/cities/, /weather/<city_id>/, /forecast/<city_id>/ и шаблоны ответов в формате JSON.
- Листинг кода для быстрого развёртывания: команды установки (pip install django djangorestframework requests), создание проекта, модели (AbstractUser с уникальным email), сериализаторы, представления (APIView) и маршруты (urls.py).
- Набор Postman-сценариев для тестирования CRUD-операций и связок: получение списка городов, получение текущей погоды по city_id, получение прогноза на несколько дней.
- Таблица с описанием шагов взаимодействия клиент/сервер и вывод с практическими рекомендациями по использованию.
📊 Для кого подходит
Полезно студентам IT-специальностей (Информационные системы и технологии), преподавателям для демонстрации практики по разработке веб‑API, а также разработчикам, которые хотят быстро развернуть сервис погодных запросов и адаптировать модели под собственные источники прогнозов.
✨ Особенности
Готовый код-прообраз для проекта: модели с методами get_weather и get_forecast, сериализаторы и APIView-реализация. Включены примеры ответов (London, Paris, Moscow), сценарии Postman и инструкция по установке. Структура легко расширяема: добавление аутентификации, кэширования, интеграции с внешними провайдерами погоды и аналитики.
❓ Частые вопросы
Подойдет ли для моего ВУЗа?
Структура соответствует требованиям курсовой работы: введение, теоретический блок (UML), практическая реализация, тестирование и выводы.
Можно адаптировать?
Да. Код и модели написаны модульно: достаточно подправить поля моделей или добавить новые эндпойнты (например, агрегация по датам, фильтры по диапазону дат, интеграция с cron-сбором).
Практическое применение и внедрение
Этот проект можно использовать как шаблон для мониторинга погоды, сборов и хранения измерений в БД, построения простых аналитических отчётов (средняя температура, тренды) и предоставления API для мобильных или веб‑клиентов.