Frontend developer test job
Тестовое задание для Frontend Developer
Вариант с использованием React Hooks
.
Подложкой всей страницы должна служить интерактивная карта местности, источник данных — openstreetmap.org.
- при загрузке страцы должен происходить какой-то транзишен на карте, чтобы пользователь понял, что она интерактивна;
- использование геоданных броузера будет плюсом;
- изменение URL, если пользователь "подвигал" карту, так чтобы при перезагрузке страницы использовались пользовательские координаты, будет плюсом.
Единственный элемент страницы -- форма логина с полями Email
, Remember Me
& Password
, кнопками (ссылками) Sign In
& Forgot password?
.
- Форма должны быть доступна на трех языках: русском, английском и немецком. Определять язык страница должна по настройкам браузера пользователя;
- После нажатия на
Sign In
форма должна запоминать введеную почту при перезагрузке страницы; - При нажатии на
Forgot password?
форма должна показывать форму восстановления пароля, если пользователь успел ввести почту для логина -- она должна "предзаполнится" в форме восстановления.
- Результат -- в репозитории на Github/GitLab/Bitbucket, в README.md должно быть достаточно информации, чтобы получить работающий экземпляр страницы;
- Страница должна быть responsive, и реагировать на изменение размера viewport без видимых breakpoint'ов;
- Страница должна использовать SSR для рендеринга форм логина и восстановления пароля. При этом нормально обрабатывать смену пользователем языка или геолокации и перезагрузку страницы;
- Dockerfile для изготовления контейнера с рабочим веб-сервером внутри будет плюсом.
- Скачать файл архива приложения из репозитария GitHub
- Распаковать из архива папку
fd-test-job-hooks
- Перейти в папку
fd-test-job-hooks
и выполнить команды:
$ npm install
$ npm build
$ npm start
Приложение будет доступно в браузере по адресу localhost:3000
Если Docker установлен на компьютере, выполните команду:
docker run -p 3030:3000 -d minimus/fd-test-job-hooks
Приложение будет доступно в браузере по адресу localhost:3030