Skip to content

alisaorange/alisaorange.github.io

 
 

Repository files navigation

src/ ├── app/ # Настройка и инициализация приложения │ ├── providers/ # Провайдеры для App (Redux, Router) │ │ ├── StoreProvider.tsx # Конфигурация Redux Store │ │ └── ApiProvider.tsx # Провайдер для RTK Query │ └── routes/ # Конфигурация маршрутов приложения │ └── AppRouter.tsx # Маршруты React Router ├── features/ │ ├── auth/ │ │ ├── authSlice.ts # Логика авторизации │ │ ├── authSaga.ts # │ │ ├── Auth.types.ts # Типы для authSlice │ │ └── AuthService.ts # Логика работы с API для авторизации │ ├── products/ │ │ ├── productsSlice.ts # Логика управления товарами │ │ ├── Products.types.ts # Типы для productsSlice │ │ └── ProductService.ts # Логика работы с API для продуктов │ ├── cart/ │ │ ├── cartSlice.ts # Логика управления корзиной │ │ ├── Cart.types.ts # Типы для cartSlice │ │ └── CartService.ts # Логика работы с API для корзины (опционально) │ └── user/ │ ├── userSlice.ts # Логика управления профилем пользователя │ ├── User.types.ts # Типы для userSlice │ └── UserService.ts # Логика работы с API для профиля пользователя ├── pages/ # Страницы приложения │ ├── HomePage.tsx # Главная страница с товарами │ ├── LoginPage.tsx # Страница входа │ ├── RegisterPage.tsx # Страница регистрации │ ├── ProfilePage.tsx # Страница профиля │ ├── LoginPage.tsx # Страница входа │ └── RegisterPage.tsx # Страница регистрации ├── entities/ # Основные сущности приложения │ ├── Product/ # Логика и компоненты продуктов │ │ ├── model/ # Логика продукта │ │ │ ├── productSlice.ts # Slice для продуктов │ │ │ └── productApi.ts # API запросы для продуктов │ │ └── ui/ # Компоненты интерфейса │ │ └── ProductCard.tsx # Карточка продукта │ ├── User/ # Логика и компоненты пользователя │ │ ├── model/ # Логика пользователя │ │ │ ├── userSlice.ts # Slice для пользователя │ │ │ └── userApi.ts # API запросы для пользователя │ │ └── ui/ # Компоненты интерфейса │ │ └── UserProfile.tsx # Профиль пользователя │ └── Cart/ # Логика и компоненты корзины │ ├── model/ # Логика корзины │ │ └── cartSlice.ts # Slice для корзины │ └── ui/ # Компоненты интерфейса │ └── CartItem.tsx # Компонент элемента корзины ├── shared/ │ ├── api/ │ │ └── api.ts # Настройка RTK Query │ ├── components/ │ │ ├── Button.tsx # Универсальная кнопка │ │ ├── Modal.tsx # Универсальное модальное окно │ │ ├── Input.tsx # Универсальный инпут │ │ ├── Layout.tsx # Главный макет приложения (контейнер) │ │ └── Header.tsx # Заголовок, включая меню навигации │ │ └── NavBar.tsx # Меню │ ├── styles/ │ │ ├── variables.scss # Переменные стилей │ │ ├── mixins.scss # Общие миксины │ │ └── global.scss # Глобальные стили │ └── utils/ │ ├── store.ts # Утилита для работы с localStorage │ └── helpers.ts # Вспомогательные функции ├──sagas/ └── rootSaga.ts # Главная сага для объединения всех саг └── index.tsx # Точка входа приложения

Необходимо создать хранилище данных с помощью redux toolkit

В хранилище должен быть

токен инициация приложения (булево значение, срабатывает один раз при загрузке приложения) профиль корзина (для интернет магазина) список товаров/список операций

Токен создается при авторизации Профиль зависит от токена, если токен есть - добавляем в хранилище данные профиля. Если токена нет, очищаем профиль. Токен должен сохраняться в локальном хранилище и обмениваться между вкладками.

Кнопки "в корзину" в карточке товара добавляют соответствующих товар в корзину. Кнопки "удалить" в карточке товара в корзине, соответственно удаляют товар из корзины.

Также необходимо создать защищенный роутинг, модальное окно добавления/редактирования товара должно быть доступно только админу.

Профиль доступен только авторизованным пользователям.

Задача - реализовать регистрацию нового пользователя. Используйте наш боевой rest api сервер

Необходимо создать компонент регистрации нового пользователя. Компонент представляет собой форму регистрации, содержит инпут ввода email, password и кнопку отправки данных. Компонент должен обрабатывать ошибки, которые могут приходить в сервера, в частности ошибку о том, что email не валиден. Валидации на стороне фронтенда реализовывать не надо, чтобы проверяющий мог оценить обработку ошибок.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 78.0%
  • CSS 16.2%
  • JavaScript 5.1%
  • Other 0.7%