Skip to content

Best-Turner/Y_Lab-TestTask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Monitoring-Service

Описание

Этот проект представляет собой веб-сервис для подачи показаний счетчиков отопления, горячей и холодной воды. Показания можно подавать один раз в месяц. Ранее поданные показания редактировать запрещено. Последние поданные показания считаются актуальными. Пользователь может видеть только свои показания, администратор может видеть показания всех пользователей.

Задание №1

  • Предусмотреть расширение перечня подаваемых показаний.
  • Данные хранятся в памяти приложения.
  • Приложение должно быть консольным (без использования Spring, взаимодействия с БД и т. д., только Java Core и коллекции).
  • Регистрация пользователя.
  • Авторизация пользователя.
  • Аудит действий пользователя (авторизация, завершение работы, подача показаний, получение истории подачи показаний и т. д.).

Задание №2

  • Репозитории теперь должны писать все сущности в БД PostgreSQL
  • Идентификаторы при сохранении в БД должны выдаваться через sequence
  • DDL-скрипты на создание таблиц и скрипты на предзаполнение таблиц должны выполняться только инструментом миграции Liquibase
  • Скрипты миграции Liquibase должны быть написаны только в нотации XML
  • Скриптов миграции должно быть несколько. Как минимум один на создание всех таблиц, другой - на предзаполнение данными
  • Служебные таблицы должны быть в отдельной схеме
  • Таблицы сущностей хранить в схеме public запрещено
  • В тестах необходимо использовать test-containers
  • В приложении должен быть docker-compose.yml, в котором должны быть прописаны инструкции для развертывания postgre в докере. Логин, пароль и база должны быть отличными от тех, что прописаны в образе по умолчанию. Приложение должно работать с БД, развернутой в докере с указанными параметрами.
  • Приложение должно поддерживать конфиг-файлы. Всё что относится к подключению к БД, а также к миграциям, должно быть сконфигурировано через конфиг-файл

Задание №3

  • Все взаимодействие должно осуществляться через отправку HTTP запросов
  • Сервлеты должны принимать JSON и отдавать также JSON
  • Использовать понятное именование эдпоинтов
  • Возвращать разные статус-коды
  • Добавить DTO(если раньше не было заложено)
  • Для маппинга сущностей использовать MapStruct
  • Реализовать валидацию входящих DTO
  • Аудит переделать на аспекты
  • Так же реализовать на аспектах выполнение любого метода(с замером времени выполнения)
  • Сервлеты должны быть покрыты тестами
  • Метод логина должен выдавать JWT, остальные методы должны быть авторизационными и валидировать JWT

Аудит действий пользователя

  • Система должна вести аудит действий пользователя, включая авторизацию, завершение работы, подачу показаний, получение истории подачи показаний и т. д.

Запуск

Чтобы запустить приложение, выполните следующие шаги:

  1. Клонирование репозитория:

https://github.com/Best-Turner/Y_Lab-TestTask.git

  1. Запуск БД в докере:

docker-compose up 3. Запуск приложения:

  • Перейти в папку

        `/target`
    
  • Командой запустить приложение:

    java -jar MonitoringService-1.0-SNAPSHOT.jar

Для тестирования приложения добавлено два пользователя:

Пользователь Логин Пароль
Администратор admin@mail.ru 1234
Пользователь user@mail.ru 1234

Скрин работы программы:

Старт программы(начальное меню)

Начальное меню

Меню аутентификации

Меню аутентификации

Меню администратора

Меню администратора

Меню пользователя

Меню пользователя

Все пользователи. Доступно только для администратора

Все пользователи

Получение подробной информации о пользователе. для администратора

Информация о пользователе

Получить историю передачи данных

История передачи данных

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages