Skip to content

Instantly share code, notes, and snippets.

@qodunpob
Last active March 25, 2021 07:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save qodunpob/9ea2f5ebd5f0ac74efa462a84d83c9a5 to your computer and use it in GitHub Desktop.
Save qodunpob/9ea2f5ebd5f0ac74efa462a84d83c9a5 to your computer and use it in GitHub Desktop.

Тестовое задание для соискателя на вакансию full-stack разработчика.

Задание

Необходимо разработать приложение для учета заказов в кафе со следующим функционалом.

Страницы:

  • список столов;
  • страница отдельного стола.

Список столов

На странице отображется перечень имеющихся в заведении столов по номерам (можно использовать ID): стол №1, стол №2 и т.д..

Список можно отфильтровать по:

  • столам с невыполненными заказам;
  • пустым столам.

У каждого стола должно присутствовать два параметра:

  • количество посетителей;
  • количество невыполненных заказов.

Страница отдельного стола

На странице стола отображается перечень посетителей по номерам (можно использовать ID), закрепленных за столом: посетитель №1, посетитель №2 и т.д.. У каждого посетителя виден список его заказов. Заказы в списке представлют собой следующее:

  • текст содержимого заказа;
  • статус заказа;
  • кнопка "Выполнить" (только для невыполненных заказов).

Помимо списка заказов у каждого поситетеля должна присутствовать кнопка удаления, которая удаляет его и все его заказы со страницы стола.

Здесь же, на странице стола имеются кнопка для добавления посетителя и форма для добавления заказа.

Форма для добавления заказа содержит два поля:

  • поле выбора из списка посетителей;
  • текстовое поле для ввода содержимого заказа.

Дополнительная информация

Требования к выполнению тестового задания:

  • код должен быть написан на TypeScript;
  • необходимо разработать GrapqhQL-сервер на Node.js;
  • выбор СУБД не имеет значения;
  • для разработки клиента использовать Angular;
  • по возможности искользовать менеджер локального состояния для распределния данных между местами использования;
  • доступно использовать любые библиотеки и фреймворки;
  • интерфейс полностью на ваше усмотрение;
  • к проекту необходимо приложить документацию, содержащую описание структуры, взаимосвязей основных сущностей и исчерпывающую инструкцию по запуску.

По тому, как вы реализуете решение будут оцениваться следущие навыки:

  • понимание основ UI/UX;
  • уровень владения версткой;
  • знание Angular и библиотеки RxJS;
  • умение работать с Node.js и СУБД.
  • дизайн GraphQL API;
  • знание и соблюдение хороших практик;
  • умение писать аккуратный, переиспользуемый код, который легко поддерживать;
  • написание документации.

Результатом тестового задания должна быть ссылка на проект гитхаба.

Просьба не употреблять в описании и названии репозитория слова isp, ISPsystem, Cartbee.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment