Требуется дописать проект до рабочего состояния
Проект должен иметь API для регистрации, входа и получения информации о пользователе
Проект спроектирован и разделен на слои Model, Repository, Controller и Service.
- Model это просто набор POJO классов с аттрибутами геттерами/сеттерами и конструкторами.
- Repository это классы, которые знаю куда и как записывать данные (БД, файловая система или просто держать в памяти).
- Controller это классы, которые умеют принимать данные с frontend от юзеров. Их задача проверить полученные данны, валидировать и вызвать соответсвующую бизнес логику в Service классах.
- Service это классы, которые знают бизнес логику приложения. Они знают что от чего зависит и как использовать Repository.
Общие правила такие:
- Никакие классы ничего не должны знать о Repository, кроме Service
- Никакие классы не должны заниматься валидацией данных, кроме Controller
- Никакие классы не записывают данные, только Repository
- Никакие классы не используют Service, кроме Controller
В проекте продумана логика и архитектура, но оставлено много пустых методов и классов. Реализацию пишите вы. Также оставлены метки TODO. Это дополнительные задачи, в которых логику продумать придётся вам самим.
В пакете kz.uib.parking.model
созданы POJO классы моделей. Вы должны продумать каждую модель, поля, аттрибуты. Создать getter/setter и конструктор
- Модель User. Хранит данные о юзере
- Модель Token. Хранит данные о токене и юзере, которому принадлежит токен
- Модель SecurityCode. Одноразовый код для регистрации.
В пакете kz.uib.parking.controller
созданы классы REST контроллеры. В них нужно написать реализацию ваших API.
- Все общение через HTTP должно идти на основе JSON ("Content-type:application/json").
- Все данные должны валидироваться по маске и проверятся на адекватность перед передачей в Service Layer
- GET методы должны быть идемпотентыми
- POST метода принимают данные в body
В пакете kz.uib.parking.repository
созданы классы репозитории. Для них созданы и продуманы интерфейсы, но НЕ написаны реализации. Ваша задача написать реализацию каждого репозитория.
- Репозиторий отвечающий за юзеров
- Репозиторий отвечающий за токены
- Репозиторий отвечающий за коды безопасности
Это самая сложная и значимая часть проекта.
В пакете `` созданы классы сервисы. Некоторые методы уже реализованы и не требуют доработки. Некоторые методы частично реализованы, там оставлены TODO. Остальное все без реализации и ваша задача закончить все Service.
- Сервис регистрации юзера. Здесь бизнес логика регистрации
- Сервис токенов. Здесь бизнес логика токенов
- Сервис кодов безопасности. Здесь логика кодов
В пакете kz.uib.parking.exception
созданы несколько exception классов. Так как наши Service не занимаются валидацией данных, то единственный способ передать сообщение об ошибках это Exception. В двух сервисах уже вставлены Exception. Ваша задача дополнить и продумать все остальные Exception.