Skip to content

kaskar2008-experiments/ke-test-task

Repository files navigation

ke-frontend-test

KazanExpress Frontend test task

Easy

  • Каждая новая вкладка с приложением - отдельный проект со своим списком задач;
  • Редактируемое название проекта в качестве заголовка страницы;
  • Список с задачами:
    • Добавление новой задачи в список;
    • Удаление любой задачи из списка;
    • Возможность пометить любую задачу сделанной и возможность убрать эту пометку (mark as done/not done);
  • Вся информация (название проекта, список задач, состояние задач) должна сохраняться при перезагрузке страницы;

Опционально:

  • Возможность добавлять подзадачи в любую задачу (с потенциально бесконечной глубиной);
  • Поле ввода для поиска/фильтрации задач в списке (фильтр должен сохраняться после перезагрузки страницы);
  • Возможность редактирования названия задачи после её создания;

Medium

Все требования easy, включая опциональные. А также:

  • Возможность перемещать любые задачи (со всем списком подзадач) из любого открытого проекта в любой другой открытый проект;
  • Нельзя использовать LocalStorage, Cookies, IndexedDB и WebSQL хранилища;
  • Экспорт проекта в файл / импорт проекта из файла;
    • Имя сохраняемого файла должно соответствовать названию проекта.
  • Drag-n-drop для перемещения задач в списке;
  • Сохранение текущего фильтра для возможности его быстрого применения потом;
  • Итоговое приложение должно весить не более 200 KB (сумма всех загружаемых браузером файлов, включая сторонние библиотеки, gzipped);

Опционально:

  • Наличие CSS-анимаций для drag-n-drop и фильтрации задач;
  • Использовать TypeScript для 100% кодовой базы (исключая вёрстку и стили);
  • Использовать Vue Composition API или vue@next;
  • Использовать ESLint/TSLint для контроля качества кода (приветствуется использование настройки KazanExpress/TSLint);
  • Использовать сборщик/бандлер (например, webpack) для сборки приложения в SPA;

Hard

Все требования medium, включая опциональные, а также:

  • Итоговое приложение должно весить не более 100 KB (сумма всех загружаемых браузером файлов, включая сторонние библиотеки, gzipped);
  • Drag-n-drop с поддержкой тач-скрина;
  • Масштабируемость на мобильные устройства до 320*480px (iPhone 4);
  • Возможность быстрого просмотра и редактирования описания у любой задачи;

Опционально:

  • SSR;
  • PWA;
  • Опция фильтрации задач по RegExp;
  • Если в двух вкладках открыт один и тот же проект (например, совершён импорт из одного и того же файла),
    все действия в этих вкладках/проектах должны синхронизироваться без задержки.
    Включая (но не ограничиваясь):
    • Название проекта;
    • Список, состояния, описания, порядок и названия всех задач
      (например, при добавлении задачи в одной вкладке - она должна появиться и в другой);
    • Список сохранённых фильтров;
  • Возможность добавлять/удалять именованные списки для задач, между которыми их можно перетаскивать (как в trello)

Build Setup

# install dependencies
$ npm install

# serve with hot reload at localhost:3000
$ npm run dev

# build for production and launch server
$ npm run build
$ npm run start

# generate static project
$ npm run generate

For detailed explanation on how things work, check out Nuxt.js docs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published