epam training .net core
Описание контрольного задания
Необходимо создать REST сервис используя Web.Api.
Бизнес функциональность :
Сервис представляет собой back-end часть для приложения которое помогает изучать новые слова.
Фукнциональные требования :
- Двунаправленный перевод (с русского на англ\с англ на русский)
- back-end должен уметь создавать\редактировать\удалять словарные карточки которые содержат слово + перевод
- back-end должен уметь отдавать на ui список карточек
- back-end должен уметь создавать\редактировать\удалять группы карточек
- back-end должен уметь возвращать список групп и уметь по группе возвращать список карточек
- back-end должен уметь отдавать карточки в режиме тестирования (т.е. для каждой карточик помимо верного перевода должно возвращать еще несколько не верных слов)
- back-end должен уметь проверять результат теста (use case : пользователь зашел на портал, выбрал группу слов, ему вернулся списо слов, каждому слову он выбрал перевод, отпарвил результат на проверку на сервер, сервер проверил и ответил какие слова верно переведены, какие нет).
-
- back-end должен уметь ходить на любой внешний api и получать перевод слова автоматически
Нефункциональные требования :
- данные должны харниться в локальном инстансе базы.
- аутентификация не требуется.
- считаем что приложение однопользовательское, пользователь сам себе администратор.
- должна быть реализована многослойная архитектура Presentation\Bll\Dal, также необходимо использоваться MVC паттерн, реализованный в web.api
- должен быть подключен любой IoC контейнер (Ninject\Ioc\Autofac) и реализован Di
- для тестирования и проверки сервиса, необходимо подключиь swagger как автогенеренную документацию
- в коде должны присутствовать комментарии
- покрытие Unit тестами обязательно, можно использовать любой тестовый фреймворк, также можно добавить интеграционные тесты
- необходимо подключить логирование в случае исключительных ситуаций (log4net, nlog)
- для работы с базой данных используем ado.net подсоединенную модель (sql connection/sql reade/sql command)
- пустая база данных либо с дефолтными значениями должна создаваться скриптом