Skip to content

[Web App] University project REST service weather display

Notifications You must be signed in to change notification settings

Kustrica/WeatherService

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Погода

"Погода: сервис должен принимать координаты или название населённого пункта и возвращать данные по текущей погоде"

Задание 1 - Basic REST service

  1. Создать и запустить локально простейший веб/REST сервис, используя любой открытый пример с использованием Java stack: Spring (Spring Boot)/maven/gradle/Jersey/ Spring MVC.
  2. Добавить GET ендпоинт, принимающий входные параметры в качестве queryParams в URL согласно варианту, и возвращающий любой hard-coded результат в виде JSON согласно варианту.

Задание 2 - JPA (Hibernate/Spring Data)

  1. Подключить в проект БД (PostgreSQL/MySQL/и т.д.). (0 - 7 баллов) - Реализация связи один ко многим @OneToMany (8 - 10 баллов) - Реализация связи многие ко многим @ManyToMany
  2. Реализовать CRUD-операции со всеми сущностями.

Задание 3 - Data caching

  1. Добавить в проект GET ендпоинт (useful) с параметром(ами). Данные должны быть получены из БД с помощью ""кастомного"" запроса (@Query) с параметром(-ами) ко вложенной сущности.
  2. Добавить простейший кэш в виде in-memory Map (в виде отдельного бина).

Задание 4 - Error logging/handling

  1. Обработать 400 и 500 ошибки.
  2. Добавить логирование действий и ошибок.
  3. Подключить Swagger & CheckStyle. Убрать стилистические ошибки.

Задание 5 - Batch data processing & Testing

1.Добавить POST метод для работы со списком параметров (передаются в теле запроса) для bulk операций, организовать работу сервиса используя Java 8 (Stream API, лямбда-выражения). 2. Покрытие Unit-тестами на >80% (бизнес-логика).

Задание 6 - Concurrency

  1. Добавить сервис для подсчёта обращений к основному сервису. Счётчик должен быть реализован в виде отдельного класса, доступ к которому должен быть синхронизирован.
  2. Используя jmeter/postman или любые другие средства сконфигурировать нагрузочный тест и убедиться, что счётчик обращений работает правильно при большой нагрузке.

Задание 7 - Client

  1. Сделать клиентскую часть (UI) с использованием любых технологий и/или библиотек (Spring MVC, JS-фреймворки: React, Angular и т.д.) для GET запроса (OneToMany/ManyToMany).
  2. Реализовать UI для добавления, удаления и обновления.

Задание 8 - Deploy

  1. Запустить приложение в докере.
  2. Разместить приложение на любой бесплатный хостинг (Render, Railway, Fly.io, Openshift и т.д.)
  3. Настроить CI на GitHub (Написать скрипт в репозитории для сборки исходников в jar-файл и размещения на своем хостинге).

About

[Web App] University project REST service weather display

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published