Проект написан на современном стеке - React/TypeScript. Сборщик - Vite. Препроцесор стилей - SCSS.
В ходе проекта стояла задача реализовать несколько важных аспектов:
- динамическая подгрузка данных с сервера по api
- создание новой записи в таблице через форму, с отправкой данных по api и её добавление в таблицу
- написание тестов (в том числе покрывающих сетевые запросы)
В качестве хранилища данных используется json-файл, в качестве сервера - библиотека json-server
Для UI-компонентов использовалась библиотека Ant Design
Для кеширования запросов и работы с динамической подгрузкой данных используется популярное решение Tanstack Query. Эта библиотека имеет ряд преимуществ, перед написанием этой же логики самостоятельно:
- готовая оптимизированная логика
- уменьшение общего количества кода, а следовательно и времени, затраченного на разработку и отладку
- производительность
Все это является очень важными аспектами с точки зрения бизнес логики.
Поскольку TanStack Query уже предоставляет кэширование, инвалидацию и фоновое обновление данных, добавление Redux/Zustand приведёт к избыточности без реальной пользы. Однако, если в будущем потребуется расширить функционал, можно будет легко интегрировать стор.
-
Клонирование репозитория
git clone https://github.com/mksotto/test-task.git
-
Установка зависимостей:
npm ci
-
Запуск backend:
npm run db-start
-
Запуск frontend:
npm run dev
-
Тестирование:
npm test