Skip to content

Repository files navigation

DocBoard

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

Демонстрация приложения: https://plohoj.github.io/doc-board/test-doc

Плюсы реализации

  1. При изменении размера страницы (ответ Backend), аннотации на последующих страницах не теряют своего местоположения (потому что позиционирование выполняется относительно страницы в процентах, что так же решает проблему при масштабировании).
  2. Автоматический выбор масштаба страниц, при первом открытии приложении (особенно актуально на мобильном экране).
  3. Текст аннотации стремится не выходить за область экрана (актуально при большом масштабе).

Минусы реализации

  1. Нет возможности переносить аннотацию между страницами.
    • Решение: Алгоритм (в сервисе), который будет искать страницу с которой пересекается аннотация, и перемещение аннотации на страницу с которой она пересекается. Для поиска пересечения можно завести HashMap {HTMLElement: DocBoardPageComponent }, в которую компоненты страниц будут сами себя регистрировать.
  2. Интуитивный клик вне области аннотации для закрытия аннотации, создаёт новую аннотацию.
  3. В некоторых местах не учтено то, что ширина страниц может отличаться от 794px.
    • Решение: Реализовать сервис который загрузит все изображения и будет хранить ссылки на HTMLImageElement в оперативной памяти. Тогда можно будет получить максимальную ширину страниц (изображений).

Известные проблемы

  1. Прокрутка страницы на сенсорном экране закрывает раскрытую аннотацию.
    • Решение: Добавление единого сервиса, которое контролирует клики (тапы) и перетаскивания, и принимает решения об отмене и/или делегировании обработки событий.
  2. Удаление аннотации вызывает повторную отрисовку всех аннотаций после этой аннотации.
    • Решение: Добавить фейковый id (используемый только на Frontend) для аннотаций и использовать его в trackBy.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages