Проект представляет собой одностраничный сайт космической бургерной, на которой можно собрать бургер из ингредиентов и сделать заказ.
Проект создан в процессе обучения на Яндекс Практикуме.
Готовый проект можно посмотреть по ссылке.
- Главная страница (перетаскивание ингредиентов в конструктор, перетакивание ингредиентов внутри конструктора, создание заказа).
- Авторизация (регистрация, вход, восстановление пароля).
- Профиль (изменение своих данных, просмотр своих заказов, выход из профиля).
- Лента заказов (все заказы).
- Модальные окна (одного ингредиента, номера заказа, деталей заказов).
- HTML и CSS. Соблюдается корректная семантика тегов и продвинутая стилизация, адаптивная верстка для больших экранов.
- React (React-router, React-dnd). Компонентная сборка, реализовано открытие и закрытие модальных окон, авторизация, роутинг (в т.ч. с динамическим url), drag-n-drop.
- Redux (Thunk). Используется хранилище Redux для хранения данных с API и работы с глобальным контекстом.
- Typescript. Весь код протипизован, в т.ч. и Redux хранилище.
- Jest, Cypress. Основная бизнес-логика (Redux) протестирована с помощью юнит-тестов Jest, главная страница протестирована с помощью функциональных тестов Cypress.
- WebSocket. Лента заказов обновляется по сокету.
- JWT Tokens. Работа с токенами: авторизация, сохранение токена в cookies и его удаление.
- Деплой. Реализован с помощью виртуальной машины Яндекс Облака, настройки nginx и SSL (временно не работает, можно посмотреть альтернативный деплой на gh-pages).
Проект создан с помощью Create React App
Проект запускается локально по адресу http://localhost:3000/ путем клонирования данного репозитория и последовательного запуска команд в терминале.
Предварительно должны быть установлены программы Git, NodeJS и менеджер пакетов npm.
// clone repo
git clone /~https://github.com/snurnisyan/react-stellar-burger
// go to dir
cd react-stellar-burger
// install dependencies
npm install
// build project
npm run build
// run dev mode
npm run dev
// run prod mode
npm run start
// run tests (Jest)
npm run test
// run tests in Cypress
npm run cypress
- Улучшить адаптивную верстку (для маленьких экранов)
- Добавить экраны загрузки
Если вы заметили какой-то баг или просто хотите поделиться мыслями по поводу этого (и не только) проекта, можете написать мне сюда:
- Telegram: @snurnisyan
- Email: snurnisyan@gmail.com