Developer Test Project
Задания для разработчика.
1. Вес – Макс 30 баллов. Провести код-ревью предложенного фрагмента кода.
Ваш коллега разработал библиотеку классов и консольное приложение по поставленному заданию, и руководитель просит вас проверить результат его работы, при необходимости, предложить правильную версию. Согласно заданию должно быть реализовано на языке C# приложение с двумя функциональностями:
- для вывода на экран последовательности символов , вида «1, 2, 3, 4, 5.», от единицы до конечного значения, запрашиваемого у пользователя.
- для вывода на экран изображение квадрата, состоящего из символа «#», с «дыркой» в центре квадрата. Размер стороны квадрата должен определяться нечетным числом, больше 3 и запрашиваться у пользователя.
Вам необходимо провести проверку кода в репозитории, указать на ошибки в нем и предложения по его модификации.
Код находится в репозитории GitHub. Создайте форк в свой репозиторий и сохраните в нем исправленный вариант.
https://github.com/VladimirLTarasov/DeveloperTest/blob/main/FirstTask.cs
2. Разработать WebApi для решения следующих задач, по уровням сложности:
a. Вес – Макс 20 баллов. Реализовать WebApi с методом определения Индекса Массы Тела (ИМТ, анг. термин Body Mass Index, https://ru.wikipedia.org/wiki/Индекс_массы_тела ). Вызов через GET. Метод должен принимать на вход параметры, необходимые для вычисления ИМТ (Рост и Вес человека). Метод должен проверять входные параметры на адекватность, в т.ч. применительно к человеку. Метод возвращает объект с рассчитанным индексом и его описанием. К решению приложить запросы из Postman с корректными и некорректными параметрами.
b. Вес – Макс 40 баллов. Доработать WebApi методом добавления пациента (ФИО, рост, вес, возраст), вызов через POST, метод автоматически вычисляет ИМТ для данного пациента и заносит информацию в Базу данных (спроектировать структуру самостоятельно). Метод должен проверять входные параметры, в случае ошибки возвращать правильный статус ошибки. К решению приложить запросы из Postman с корректными и некорректными параметрами. Приложить ER-диаграмму БД.
c. Вес – Макс 50 баллов. Доработать WebApi методом получения статистики по параметрам ИМТ пациентов из базы данных, вызов через GET. Метод вычисляет статистику посредством SQL-запроса и возвращает список характеристик ИМТ и процентное отношение клиентов в этой категории, по убыванию процентного соотношения, например: Норма – 70% Ниже нормы – 20% Ожирение – 10% Метод не принимает параметры. К решению приложить запросы из Postman, исходный код SQL-запроса.
d. Вес – Макс 50 баллов. Разработать хранимую процедуру для получения статистики по параметрам ИМТ пациентов из базы данных в разрезе возраста. Хранимка вычисляет статистику посредством SQL-запроса с группировкой по возрастам и возвращает список характеристик ИМТ и процентное отношение клиентов в этой категории, по убыванию процентного соотношения, например: Норма – 70% Ниже нормы – 20% Ожирение – 10%
Группировка происходит по диапазонам возрастов, вида:
0..10,
11..20,
21..30,
31..40, и тд.
Для каждой группы должно быть посчитано процентное отношение для каждой категории ИМТ. Исходный код SQL-запроса хранимой процедуры приложить в свой репозиторий. Приложить экранные формы вызова хранимой процедуры с результатом работы.
PS. Баллы за решение могут быть снижены при выявлении недостатков: небрежное оформление, нарушение codestyle, отсутствие валидации и комментариев, ошибки в алгоритмах.
Рекомендации по разработке WebApi: C#, ASP.NET WebApi, MSSQL/PostgreSQL, использование ORM (EF или Linq2Db) – опционально. Исходный код решения необходимо залить в свой репозиторий Git. Ссылку на ваш репозиторий направить на почту [email protected]