Этот проект — тестовое задание для создания сайта по макету в Figma c функционалом визуализации рекурсивных объектов и работой с API. Он построен с использованием TypeScript, React и SASS, а также использует RTK Query для работы с API и стилизации компонентов.
- TypeScript
- React
- SASS
- RTK Query (опционально)
- MUI + styled-components (опционально)
- Vite как сборщик
@mantine/coreи@mantine/hooksдля компонентов UI@reduxjs/toolkitдля управления состояниемreact,react-dom,react-reduxдля настройки Reactsassдля стилизации
@eslint/js,eslint, иtypescript-eslintдля линтинга и поддержки TypeScriptviteдля работы с сервером разработки и сборкой проекта
Чтобы начать, клонируйте репозиторий и установите зависимости:
git clone https://github.com/StoneZol/test-swsf-ex
cd test-swsf-ex
npm installAPI доступно по адресу:
API Base URL
Полную документацию можно найти по ссылке:
API Документация
-
Создание сущности:
- URL:
/v1/outlay-rows/entity/create - Метод:
POST - Описание: Эта операция выполняется один раз для создания общей сущности. Возвращаемое значение
eIDбудет использоваться для дальнейших взаимодействий с API.
- URL:
-
Получение строк:
- URL:
/v1/outlay-rows/entity/{eID}/row/list - Метод:
GET - Описание: Получает все строки для конкретной сущности. Этот запрос должен выполняться только один раз при загрузке страницы. Последующие обновления должны обрабатываться локально.
- URL:
-
Создание строки:
- URL:
/v1/outlay-rows/entity/{eID}/row/create - Метод:
POST - Описание: Этот эндпоинт используется для создания новой строки. Пользователь может нажать на иконку существующей строки для создания новой, которая будет инициализирована нулями (кроме заголовка).
- URL:
-
Обновление строки:
- URL:
/v1/outlay-rows/entity/{eID}/row/{rID}/update - Метод:
POST - Описание: Этот эндпоинт используется для обновления существующей строки после её редактирования. Для этого нужно дважды кликнуть по строке.
- URL:
-
Удаление строки:
- URL:
/v1/outlay-rows/entity/{eID}/row/{rID}/delete - Метод:
DELETE - Описание: Удаляет строку при клике на иконку корзины.
- URL:
- Создание, обновление, удаление: После выполнения операции сервер возвращает массив обновленных строк. Эти данные следует использовать для обновления локального состояния.
- Локальные обновления: Локальные данные должны обновляться без повторных запросов к серверу. Новые данные нужно запрашивать только при первой загрузке страницы.
Чтобы запустить сервер разработки, выполните:
npm run devСервер разработки будет доступен по адресу http://localhost:5173.
Для сборки проекта в продакшен:
npm run build