IT-Planet_If_else_Mahmutov
Решение олимпиады "IT-Планета 2024"
Направление "Прикладное программирование if...else"
Автор решения: Махмутов Адель Наилевич
telegram: @Vodypep
Легенда
Ваша компания «История Погоды» специализируется на сборе и анализе метеорологических данных в стране «Климатика». Важность отслеживания погодных условий неоценима, особенно в свете глобальных климатических изменений. Эти данные используются для прогнозирования погоды, изучения климатических изменений и помощи в сельском хозяйстве. В этом году ваша компания решила создать централизованную базу данных, которая объединит все исторические метеорологические записи для долгосрочных исследований климатических паттернов, а также для обеспечения более точных и своевременных погодных прогнозов.
Задание
Ссылка на техническое задание: https://world-it-planet.org/2024/upload/If_else_task_2.pdf
Запуск приложения
- Перейдите в директорию проекта
- Соберите jar файл приложения при помощи команды:
./gradlew bootJar
- По желанию настройте переменные окружения в .env файле.
- Запустите docker-compose файл при помощи команды:
docker-compose up
Описание решения
Для написания программы использовался следующий стек технологий:
- Java
- Spring Boot (Web, Data Jpa, Security, Validation)
- OpenAPI
- PostgreSQL
- Liquibase
- Lombok
- Mapstruct
Все используемые библиотеки находятся в файле libs.versions.toml.
Файл weather-app.yaml содержит описание всех методов контроллеров, которое доступно по адресу http://localhost:8080/swagger-ui/index.html
.
В папке changelog содержатся sql скрипты миграций, которые используются при помощи liquibase для создания таблиц в базе данных.
Файл .env является конфигурационным файлом, содержащий переменные окружения, которые используются в docker-compose файле.
По умолчанию приложение запускается внутри докера на хосте localhost и порту 8080.
В качестве архитектуры приложения была выбрана многослойная архитектура.
Основной функционал расположен в пакете core, где описаны сущности, сервисы для работы с базой данных, бизнес логика и конфигурация приложения.
В пакете controller расположен слой REST контроллеров.
Пакет public_interface является связующим слоем между слоем контроллеров и основным слоем.
Ниже представлена схема базы данных, используемая в приложении:
Описание
Репозиторий для участия в олимпиаде "IT-Планета"
Языки
Java
- Dockerfile