Created
July 19, 2022 10:29
-
-
Save hedgeven/b1c7b85c36baecb5565cf686da4bf15c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Создать monorepo (1) в котором будет два отдельных приложения server (2) и client (3). | |
## 1. Требования по monorepo | |
### Технологии: | |
- TypeScript | |
- Eslint | |
- любой пакетный менеджер, который поддерживает монорепо | |
### Команды в корневом package.json: | |
- dev – команда для старта сервера и клиента в watch режиме | |
- build – сборка клиента и сервера с упаковкой в Docker-образ | |
- eslint – Проверка eslint (сервера и клиента) | |
- tscheck – Проверка типизации проекта (сервера и клиента) | |
## 2. Требования по приложению /server | |
### Технологии: | |
- GraphQL в качестве API | |
- dotenv для загрузки переменных из .env | |
- любой сервер | |
### Задача приложения: | |
- Предоставить два Query метода: | |
- Получить всех пользователей с пагинацией | |
- Получить пользователя по id | |
- Предоставить три Mutation метода: | |
- Добавить пользователя | |
- Обновить пользователя | |
- Удалить пользователя | |
- Список из 100 пользователей можно нагенерировать через faker.js при старте сервера. Поля entity User: | |
- id | |
- name | |
- photo | |
- Не забудьте разрешить CORS для запросов по адресу /graphql | |
- В папке /server должен быть Dockerfile для сборки приложения | |
- Придожение в dev режиме стартует на 4000 порту | |
## 3. Требования по приложению /client | |
### Технологии: | |
- React (можно любой на выбор CRA, NextJS, Remix) | |
- Ant.design в качестве ui библиотеки | |
- ApolloClient 3 в качестве state менеджера для GraphQL | |
- Используем env-переменную GRAPHQL_API_URL для указания ссылки на подключение к GraphQL серверу | |
### Задача приложения: | |
- Отображать список пользователей с пагинацией. Каждая запись имеет две иконки управления | |
- Редактировать – переходим на страницу пользователя /users/[id] | |
- Удалить – показываем confirm перед отправкой команды удаления на сервер. После удаления, строка пользователя должна пропасть из таблицы. | |
- На странице пользователя дать возможность редактировать и сохранять его данные (при возврате в список, данные пользователя должны автоматом обновиться). | |
- На странице списка пользователей должна быть кнопка для создания нового пользователя /users/new | |
- На странице создания пользователя должны быть поля для ввода данных пользователя (поле для имени, поле для фото, поле для email) с какой-нибидь валидацией полей. | |
- В папке /client должен быть Dockerfile для сборки приложения | |
- Приложени в dev режиме стартует на 3000 порту |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment