Можно использовать любую комбинацию UI и слоя данных для реализации
- Bootstrap 5
- React JS.
- Books - книги (Id, автор, название, год издания)
- Authors - авторы
- Categorys - категории
- Shops - магазины
- BooksShops - наличие книг в магазинах
- Orders - заказы
- Users - пользователи
- Roles - роли
Для демонстрации взаимосвязей создать UML-диагрмму.
- Адаптер БД (MS SQL Server, PostgreSQL, Entity Framework);
- Получение данных через WebAPI (RESTfull);
- Чтение/запись в/из локального файла для выгрузки и загрузки данных.
-
Веб-приложение на ASP.NET.
-
Консольный режим реализовать две команды: get и buy get = возвращает полный список книг, по умолчанию осторитрованный по Id флаги: --title=%% вернуть книгу(и) если указанная подстрока встречается в названии, если таких книги нет, написать сообщение; --author=%% вернуть книгу(и) только с этим автором, если такой книги нет, написать сообщение; --date=%% аналогично, но для даты, дата в формате yyyy-MM-dd, если дата указана неправильно, вывести текст ошибки --order-by=[title|author|date] отсортировать список книг по указанному полю, если указано неправильное поле, то вывести текст ошибки
флаги могут использоваться одновременно, например:
get --author="Тютчев" --order-by="date"
- на выходе должен быть список книг с автором "Тютчев", отсортированных по дате публикацииbuy = убирает одну книгу из списка отображаемых обязательный флаг: --id=%% Id книги, которую нужно купить
В приложении должен быть использован микросервисный подход
- Авторизация/Регистрация.
- Страница с отображением списка книг.
- Возможностью сортировать список по любому из параметров.
- Корзина. Кнопка "купить".
- Фильтрация по книгам/магаизнам/авторам.
- Избранное. Возможность добавить книгу в избранное.
- Уведомить о поступлении.
- Добавление/удаление/редактирование (CRUD) книг, магазинов, заказов, пользователей
В проекте дожны быть использованы внешние сервисы
- Яндекс карты для указания местонахождения магазинов.
- Отправка уведомлений в Telegram через чат-бота.
- Документирование методов
- Документирование функционала при помощи Swagger
- Необходимо написать Unit тесты для самых значимых методов.
Исходный код должен быть опубликован в Git хранилище. Для значимых классов создать UML-диаграммы.
Дизайн UI, дополнительные функции (добавление/изменение и т.п.) НЕ влияют на оценку выполнения задачи
Структура классов, открытая к расширению, приветствуется.
Если данные берутся из файла: скинуть файл со списком книг. Если данные берутся из БД: прислать бэкап или скрипт развёртывания/заполнения БД.