/production

production project

Primary LanguageTypeScript

GitHub top language GitHub code size in bytes

Файловая структура: Feature-Sliced Design

  1. Shared — переиспользуемый код, не имеющий отношения к специфике приложения/бизнеса.
  2. Entities (сущности) — бизнес-сущности (например, User, Product или Order).
  3. Features (фичи) — взаимодействия с пользователем, действия, которые несут бизнес-ценность для пользователя.
  4. Widgets (виджеты) — композиционный слой для соединения сущностей и фич в самостоятельные блоки.
  5. Pages (страницы) — композиционный слой для сборки полноценных страниц из сущностей, фич и виджетов.
  6. Processes — сложные сценарии, покрывающие несколько страниц (например, аутентификация).
  7. App — настройки, стили и провайдеры для всего приложения.

Этапы разработки:

Webpack

Routes, Styles, linting, Jest

Storybook, RTL, Bundle analyzer, Error Boundary, UI tests

  • Добавлен ErrorBoundary, компонент ошибки PageError
  • Установлен webpack-bundle-analyzer для отслеживания размера бандла
  • Установлен react-testing-library. Написаны тесты на Button,Sidebar
  • Установлен Storybook. Написана stories на каждую страницу и компонент
  • Установлен Loki для скриншотного тестирования в связке со Storybook
  • Настроен Github Actions pipeline. Автоматические тесты при pull-request или push в master. Добавлены скриншотные тесты.
  • Добавлены размеры M, L, XL для Button. Обновлён Storybook. Ссылки перенесены в Sidebar. Добавлены иконки для ссылок.
  • Установлен reg-cli для более удобного сравнения скриншотов для тестирования

Database, Redux

Авторизация. Husky. Input. Работа с текстом. Lazy modal. Reducers, slices, async thunk

Async reducers. Тесты. Instance API. TS strict mode. Модуль профиля

Модуль профиля. Avatar. Редактирование и сохранение. Приватные роуты

Статьи, комментарии. Нормализация данных. Блочная структура. Union типы. Skeleton. Protected Routes

Профили, Infinite Scroll, Intersection API, Отправка комментариев, профили пользователей.

  • Добавлена возможность оставлять комментарии. Доступны сущности профилей. Редактирование только своего профиля.
  • Добавлен кастомный компонент Card. Реализовано отображение статьи.