Приложение для работы с таблицей записей с возможностью добавления новых записей через форму.
- Таблица с данными (15 полей)
- Бесконечная подгрузка данных при прокрутке (Infinite Loading)
- Форма добавления новых записей с валидацией
- Фильтрация и сортировка данных
- Адаптивный дизайн
- Темная/светлая темы
- React + TypeScript
- Material UI для компонентов интерфейса
- Redux Toolkit для управления состоянием
- JSON Server в качестве бэкенда
- Jest для тестирования
В проекте используется Redux Toolkit как стейт-менеджер по следующим причинам:
- Оптимизация для типичных сценариев - работа с асинхронной загрузкой данных и Infinite Loading требует четкого управления состоянием.
- Типизация с TypeScript - обеспечивает безопасность типов и автодополнение.
- Уменьшение шаблонного кода - RTK избавляет от необходимости писать много boilerplate-кода.
- Встроенные инструменты для асинхронных операций - createAsyncThunk идеально подходит для работы с API.
- Node.js 14.x или выше
- npm или yarn
npm install
# или
yarn
npm run server
# или
yarn server
JSON Server будет запущен на порту 3001.
npm start
# или
yarn start
Приложение будет доступно по адресу http://localhost:3000.
npm test
# или
yarn test
/src
/api - API клиент и запросы к серверу
/components - React компоненты
/store - Redux хранилище и слайсы
/tests - Тесты
/types - TypeScript типы
/utils - Вспомогательные функции
Приложение использует локальную базу данных JSON Server. Файл db.json
в корне проекта содержит начальные данные для приложения.