Необходимо разработать приложение для учета заказов в кафе со следующим функционалом.
Страницы:
- список столов;
- страница отдельного стола.
На странице отображется перечень имеющихся в заведении столов по номерам (можно использовать ID): стол №1, стол №2 и т.д..
Список можно отфильтровать по:
- столам с невыполненными заказам;
- пустым столам.
У каждого стола должно присутствовать два параметра:
- количество посетителей;
- количество невыполненных заказов.
На странице стола отображается перечень посетителей по номерам (можно использовать ID), закрепленных за столом: посетитель №1, посетитель №2 и т.д.. У каждого посетителя виден список его заказов. Заказы в списке представлют собой следующее:
- текст содержимого заказа;
- статус заказа;
- кнопка "Выполнить" (только для невыполненных заказов).
Помимо списка заказов у каждого поситетеля должна присутствовать кнопка удаления, которая удаляет его и все его заказы со страницы стола.
Здесь же, на странице стола имеются кнопка для добавления посетителя и форма для добавления заказа.
Форма для добавления заказа содержит два поля:
- поле выбора из списка посетителей;
- текстовое поле для ввода содержимого заказа.
Требования к выполнению тестового задания:
- код должен быть написан на TypeScript;
- необходимо разработать GrapqhQL-сервер на Node.js;
- выбор СУБД не имеет значения;
- для разработки клиента использовать Angular;
- по возможности искользовать менеджер локального состояния для распределния данных между местами использования;
- доступно использовать любые библиотеки и фреймворки;
- интерфейс полностью на ваше усмотрение;
- к проекту необходимо приложить документацию, содержащую описание структуры, взаимосвязей основных сущностей и исчерпывающую инструкцию по запуску.
По тому, как вы реализуете решение будут оцениваться следущие навыки:
- понимание основ UI/UX;
- уровень владения версткой;
- знание Angular и библиотеки RxJS;
- умение работать с Node.js и СУБД.
- дизайн GraphQL API;
- знание и соблюдение хороших практик;
- умение писать аккуратный, переиспользуемый код, который легко поддерживать;
- написание документации.
Результатом тестового задания должна быть ссылка на проект гитхаба.
Просьба не употреблять в описании и названии репозитория слова isp, ISPsystem, Cartbee.