E-commerce

spa
React
MobX
TypeScript
SCSS Modules
Webpack

Полноценное Single Page Application (SPA), имитирующее работу интернет-магазина. Приложение взаимодействует с реальным REST API (FakeAPI Platzi) и реализует полный цикл пользовательского опыта: от поиска товара до оформления корзины.

Слайд 1
Слайд 2
Слайд 3
Слайд 4

Ключевые особенности UX/UI

Я уделил особое внимание удобству использования и сохранению состояния пользователя:

  • Синхронизация с URL: Фильтры, поисковые запросы и категории записываются в query-параметры. Ссылкой на конкретную выборку товаров можно поделиться, и она откроется в том же состоянии.
  • Infinite Scroll: Реализована пагинация через бесконечную прокрутку для плавного просмотра каталога.
  • Персистентность: Состояние корзины сохраняется в LocalStorage, данные не теряются при перезагрузке страницы.
  • Сложные UI-компоненты: Реализован кастомный MultiDropdown, позволяющий выбирать несколько параметров фильтрации одновременно.

Техническая реализация

Проект демонстрирует углубленное понимание инструментов разработки и архитектуры React-приложений.

1. Кастомная сборка (No CRA/Vite) Проект написан без использования бойлерплейтов. Среда разработки настроена вручную на Webpack + Babel:

  • Настроены Alias (абсолютные импорты);
  • Поддержка SCSS Modules для изоляции стилей;
  • Интеграция TypeScript и SourceMaps;
  • Линтинг кода по строгим правилам Airbnb.

2. Управление состоянием (MobX) Использована реактивная архитектура на базе MobX 6.

  • RootStore паттерн: Единая точка входа, объединяющая доменные сторы (ProductsStore, CategoriesStore) и UI-сторы (CartStore).
  • Разделение логики: Бизнес-логика вынесена из компонентов в сторы, что делает UI чистым и легким для тестирования.

3. Компонентная база Приложение разбито на переиспользуемые common компоненты (Button, Typography, Input) и специфичные local модули. Это позволяет легко масштабировать проект и добавлять новые страницы.