Описание приложения по поиску номеров
Как запустить приложение
Для запуска введи в терминале:
npm start
Чтобы собрать билд введи:
npm run build
Какие инструменты использовались
В ходе разработки использовались React
, TypeScript
, Redux-Toolkit
, Модульные стили
, Адаптиваная верстка
. Для парсинга Exel документов использовалась библиотека SheetJS
Описание алгоритма
После того как файл прикреплен и библиотека SheetJS
обработала документ, алгоритм сверяет значения ячеек на предмет соответствия формату гос. номера РФ, а именно должны быть только буквы, используемые в номерах РФ, имеющие аналог из латинского алфавита (А, В, Е, К, М, Н, О, Р, С, Т, У, Х) и иметь вид А874АХ197. Если в документе обнаруживаются невалидные ячейки, показывается соответствующий алерт с перечнем таких значений. Если в документе не обнаруживается валидных ячеек, то показывается соответствующий алерт с предложением прикрепить другой документ, соответственно поля для поиска в этом случае нет.
Алгоритм не отсеивает номера в документе, которые имеют латинские буквы. В случае если такой номер обнаруживается, он обрабатывается функцией и посимвольно переопределяет латинские символы в кириллицу, тем самым приводя массив номеров к единому виду. После этого массив номеров записывается в Redux
.
Поле ввода для поиска индицируется, если документ прикреплен и имеет валидные значения. Имеется валидация введенного значения. Таким образом, если введено менее 3х символов, формат не соответсвует ГОСТу или введены латинские буквы, выдается сообщение об ошибке. Поиск можно инициировать двумя способами. Нажав кнопку найти или клавишей Enter.
Ниже расположен блок, показывающий результаты поиска. В случае если номер не найден, выдается сообщение красным цветом, если найден, то зеленым и список найденных номеров, т.к. в случае частичного ввода может быть обнаружено несколько значений.