Skip to content

korobkov-k/vk-dropdown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

VK DROPDOWN

Тестовое задание для VK

Демо

https://vk-dropdown-demo.herokuapp.com/

*При наведении на элемент в дропдауне появляется title в котором содержится доменное имя. Первикс (local) указывает на то, что данные взяты из локальной базы пользователей, хранящейся в браузере. При этом локальный поиск не включает поиск по домену.

Структура проекта

/client

В папке client/src находятся основные файлы для клиентской части - скрипты и стили. При помощи gulp скрипта они собираются в один js файл и один css файл, в обоих случаях создаются минифицированые версии. Помимо сборки в директорию /dist скрипт копирует бандлы на сервер в папку server/public

client/src/js/dropdown.js - Содержит всю логику работы выпадающего списка, включая манипуляию данными. Подразумевается, что в компонент передаются источники данных, с которыми компонент может взаимодействовать.

client/src/js/app.js - В данном файле инициализируется демо-приложение, которое добавляет на страницу нескольок списков с разными настройками.

client/src/js/search.js client/src/js/keymap.js client/src/js/translit.js - Отвечают за логику поиска с учетом неправильных раскладок, кроме того в search.js содержится источник данных (Функция, возвращающая Promise), который используется для запроса на сервер.

client/src/js/set-frontend-users.js - Записывает первую 1000 пользователей в локальное хранилище браузера.

/server

В данной папке проинциализиравно Express.js приложение.

В /server/routes/users.js находится ендпоинт для поиска.

В /server/core находятся файлы, аналогичные тому, что есть на клиенте для поиска с учетом неправильных раскладок, в данном варианте идет поиск по домену

Идеи по доработке

Есть некоторые детали реализации, которые можно реализовать, но которые не были указаны в задаче и требуют времени. При необходимости могу сделать.

  1. Подсветка поисковой фразы в результатах поиска.
  2. Кастомный скроллбар.
  3. Улучшеная логика сортироки резултатов поиска на бекенде - выставление весов не только на основании призка "изначальный текст / транслит / измененная раскладка", но и на основании поля по которому искали. Разбиение поискового запроса по словам, выставление весов. (Тут уже желательно иметь БД и полнотекстовый поиск)
  4. Добавить debounce для запросов на сервер.

About

Dropdown for vk.com

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published