Тестовое задание
Владислав ПоляковТестовое задание будет в основном не на написание кода, а на умение интегрировать и связывать различные технологии между собой. В данном тестовом задании вам необходимо создать веб приложение, точнее инфраструктуру для него.
Backend часть
Требуется создать graphql api server и реализовать авторизацию при помощи JWT, используйте mock данные.
Frontend часть
Требуется написать React приложение, которое будет взаимодействовать с backend graphql api сервером. Создаем форму авторизации и приватную страницу, которая будет доступна после авторизации.
Уровни сложности (от простых к сложным), выбирайте по своим навыкам, лучше сделать хорошо, чем не сделать вообще.
Совет: Для общения клиента и сервера по graphql api можно использовать apollo server + apollo client (apollo react)
- Create React App + css фрэймворк + typescript / javascript
- Create React App + чистый (css, sass, less и т.п.) + typescript / javascript
- Create React App + css in js (styled-components v5) + typescript / javascript (functional components + react hooks)
4. Webpack + Hot module replacement + все из 3 пункта (за исключением CRA)
5. Webpack + lazy-load + hot module replacement + SSR (server-side-rendering) + все из 3 пункта (за исключением CRA), и все это работает в build и в dev mode.
Если не получается с TypeScript, делайте на JavaScript (4-5 уровень строго на typescript)
NB! SSR должен работать на едином сервере с api
Что в итоге
- У вас должно получится простое веб приложение для авторизации пользователя.
- Настроены линтеры (eslint, prettier)
- Настроены git хуки
- (необязательно) Dockerfile и .sh скрипт для его запуска
Список библиотек, которые вам могут пригодится:
- React 16.8 +
- Koa (Express в меньшем приоритете)
- apollo-server
- apollo-tools
- apollo-client
- jsonwebtoken
- bcrypt
- faker (для mock данных)
Что не стоит использовать:
- Обилие сторонних и не нужных фреймворков и библиотек
- Чужой код, без понимания как он работает