React-приложение бургерной, с конструктором бургеров и лентой заказов.
- netlify
- docker образ:
- скачать / обновить образ:
docker pull ghcr.io/ha308ing/stellar-burgers:latest
- запустить
docker run --rm -p 80:80 ghcr.io/ha308ing/stellar-burgers:latest
- скачать / обновить образ:
npm start
- dev-серверnpm run build
- сборка в директориюbuild
npm run start:build
- сервер продуктовой сборки
тесты:
npm run test
- тестирование хранилища, apinpm run test:watch
- запустить тесты в watch-режимеnpm run test:coverage
- с отображением покрытияnpm run test:verbose
- с подробным логом
npm run test:ui
- тестирование ui (параллельно запускает dev-сервер приложения и cypress, нужно убедиться, что приложение запущено)npm run cypress:build
- тестирование продуктовой сборки приложения (параллельно запускает сервер папки build и cypress)npm run cypress:run
- тестирование без интерфейса cypress (предварительно нужно запустить приложение)
линтеры, форматтеры:
npm run lint
- запустить все линтеры параллельноnpm run eslint
npm run stylelint
npm run prettier
- тестирование хранилища
- экшены, изменение состояния слайсов
- тестирование ui
- сборка и оформление заказа
- взаимодействие с модальными окнами
- тестирование контроллера api
- деплой: netlify
- github action для сборки docker образа packages
- добавить ленту заказов и историю заказов пользователя
- получать данные через WebSocket
- обновлять слайсы с лентой и историей с помощью middleware для redux хранилища
- информация о заказе в модальном окне при навигации из приложения, на отдельной странице при навигации извне
Миграция на typescript
- настроить роутинг и авторизацию
- авторизованный пользователь не может открыть: логин, регистрацию, восстановление пароля
- неавторизованный пользоатель не может открыть страницу профиля и её дочерние страницы
- страница с восстановлением пароля доступна только при переходе со страницы с запросом почты для кода
- при клике на ингридиент открывается модальное окно и меняется адрес, при переходе на этот адрес напрямую открывается отдельная страница с ингридиентом
- если сохранён актуальный токен доступа, восстанавливать доступ без авторизации
- использовать redux хранилице
- получение ингредиентов
- конструктор бургера
- отправка заказа
- активный ингредиент
- использовать drag & drop для перемещения ингридиентов
- активировать заголовок группы ингридиентов при скролле
- переписать компоненты на классах в функциональные
- получать данные ингридиентов через api
- модальные окна
- информация об ингредиенте (клик по ингридиенту)
- информация о заказе (клик по кнопке "Оформить заказ")
- инициализация проекта
- сверстать основные компоненты главного экрана (конструктора бургеров)
- create-react-app (css-modules, eslint) (
npx create-react-app stellar-burgers --template typescript
) - ui библиотека
- sass
- prettier (eslint-config)
- stylelint (конфиги: sass, idiomatic-order, css-modules)
- lefthook (pre-commit, commit-msg)
- commitlint (conventional commit specs, config)
- redux toolkit
- jest
- cypress
- utils:
- npm-run-all to run scripts
- serve to start server from dir
- cross-env to set env for scripts