/react-stellar-burger

πŸ”Stellar Burger - 🌟Боздай свой Π·Π²Ρ‘Π·Π΄Π½Ρ‹ΠΉ Π±ΡƒΡ€Π³Π΅Ρ€!πŸŒŸπŸ‘½

Primary LanguageTypeScript

πŸ”Stellar BurgerπŸ‘½ - 🌟Боздай свой Π·Π²Ρ‘Π·Π΄Π½Ρ‹ΠΉ Π±ΡƒΡ€Π³Π΅Ρ€!🌟

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ прСдставляСт собой одностраничноС Π½Π΅ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для создания ΠΈ Π·Π°ΠΊΠ°Π·Π° Π±ΡƒΡ€Π³Π΅Ρ€ΠΎΠ². ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈΠ· списка, ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² конструктор Π±ΡƒΡ€Π³Π΅Ρ€Π°, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π·Π°ΠΊΠ°Π·ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ, Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своим ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΌ.

Бсылки

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° gh-pages | ΠœΠ°ΠΊΠ΅Ρ‚ Π² Figma

Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ сайта

Π§Ρ‚ΠΎ сдСлала

1 этап - ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ вСрстка

ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π»Π° инфраструктуру ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:
  • Π‘ΠΎΠ·Π΄Π°Π»Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ установила Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.
  • Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»Π° git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π° layout Π³Π»Π°Π²Π½ΠΎΠΉ страницы:
  • AppHeader β€” шапка прилоТСния.
  • BurgerIngredients β€” список ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ².
  • BurgerConstructor β€” Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ состав Π±ΡƒΡ€Π³Π΅Ρ€Π°.
  • ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… с использованиСм propTypes.

2 этап - Redux ΠΈ React DND

Обновила инфраструктуру прилоТСния для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Redux ΠΈ react-dnd:
  • Установила Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для Redux-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈ DnD.
  • ИзмСнила структуру прилоТСния для использования Redux.
ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Redux:
  • ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС ΠΈ создала Ρ€Π΅Π΄ΡŒΡŽΡΠ΅Ρ€Ρ‹.
  • ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.
Π‘ΠΎΠ·Π΄Π°Π»Π° ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡΠΊΡˆΠ΅Π½Ρ‹ ΠΈ Ρ€Π΅Π΄ΡŒΡŽΡΠ΅Ρ€Ρ‹:
  • Описала Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ.
  • Использовала redux-thunk для асинхронных дСйствий.
Настроила Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Π°ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ react-intersection-observer:
  • Π‘ΠΎΠ·Π΄Π°Π»Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ Π² BurgerIngredients для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ с подсвСткой ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ².
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° сортировку ΠΈ пСрСтаскиваниС ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ react-dnd:
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° пСрСтаскиваниС ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ· BurgerIngredients Π² BurgerConstructor с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ счСтчика ΠΈ динамичСским расчётом стоимости Π±ΡƒΡ€Π³Π΅Ρ€Π°.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° пСрСтаскиваниС ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ BurgerConstructor.
ВзаимодСйствовала с API:
  • ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΠ»Π° запрос ΠΊ API для создания Π·Π°ΠΊΠ°Π·Π° ΠΈ получСния Π½ΠΎΠΌΠ΅Ρ€Π°.
Π‘Π΄Π΅Π»Π°Π»Π° layout ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠΎΠ½:
  • Π”Π΅Ρ‚Π°Π»ΠΈ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Π°.
  • Π”Π΅Ρ‚Π°Π»ΠΈ Π·Π°ΠΊΠ°Π·Π°.

3 этап - Π ΠΎΡƒΡ‚ΠΈΠ½Π³ ΠΈ авторизация

Π‘Π΄Π΅Π»Π°Π»Π° layout страниц:
  • Авторизации ΠΈ рСгистрации.
  • ВосстановлСния ΠΈ сброса пароля.
  • ΠŸΡ€ΠΎΡ„ΠΈΠ»Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π° запросы ΠΊ API:
  • Авторизация ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π°.
  • Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· систСмы.
  • ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅.
Настроила Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³:
  • Установила ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³Π°.
  • Π‘ΠΎΠ·Π΄Π°Π»Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ BrowserRouter, Router ΠΈ Routes Π² App.
  • Π‘ΠΎΠ·Π΄Π°Π»Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ /pages ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ страниц.
  • Настроила ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ для ΠΊΠ½ΠΎΠΏΠΎΠΊ Π½Π° страницах Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ рСгистрации.
  • Настроила Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

4 этап - Π›Π΅Π½Ρ‚Π° Π·Π°ΠΊΠ°Π·ΠΎΠ²

Π‘Π΄Π΅Π»Π°Π»Π° layout страниц:
  • Π›Π΅Π½Ρ‚Π° Π·Π°ΠΊΠ°Π·ΠΎΠ².
  • Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Π·Π°ΠΊΠ°Π·ΠΎΠ².
  • Π”ΠΎΠ±Π°Π²ΠΈΠ»Π° страницы для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ просмотра Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΈΠ½Π³Ρ€Π΅Π΄ΠΈΠ΅Π½Ρ‚Π° ΠΈ Π·Π°ΠΊΠ°Π·Π°.
Настроила сокСт-соСдинСниС с Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ:
  • Настроила ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π»Π΅Π½Ρ‚Ρ‹ ΠΈ истории Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ списка Π·Π°ΠΊΠ°Π·ΠΎΠ² Π½Π° сСрвСрС.
  • Обновила ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π·Π°ΠΊΠ°Π·Π΅.

5 этап - "Hello TypeScript!"

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ типизация:
  • ΠŸΠ΅Ρ€Π΅Π²Π΅Π»Π° всС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ€Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с PropTypes Π½Π° TypeScript.
  • Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»Π° ΡΠΊΡˆΠ΅Π½Ρ‹, Ρ€Π΅Π΄ΡŒΡŽΡΠ΅Ρ€Ρ‹, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ Ρ…ΡƒΠΊΠΈ.
  • Π’ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»Π° DnD ΠΈ react-intersection-observer.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΈΠ»ΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. 🐾

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ инструмСнты ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

  • Π―Π·Ρ‹ΠΊΠΈ: HTML CSS JavaScript TypeScript
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ: Git GitHub GitHub Pages
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: Node.js Webpack NPM React Create React App React Router Redux
  • ВзаимодСйствиС с API: WebSockets API requests
  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ: React DnD react-intersection-observer

Запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

  • Π‘ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.
  • УстановитС зависимости с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
npm install
  • ЗапуститС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ
npm start

Запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Для запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° локально Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  1. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:

      git clone https://github.com/gudrum1983/react-stellar-burger.git
    
  2. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

      cd react-stellar-burger
    
  3. УстановитС зависимости:

      yarn install
    
  4. ЗапуститС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

      yarn start
    
  5. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅: ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ адрСсу http://localhost:3000 Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

  6. Π‘ΠΎΠ±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚: Для создания production-сборки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

      yarn build
    

БистСмныС трСбования

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ потрСбуСтся Node.js ΠΈ любой соврСмСнный Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.


ΠšΠΎΡ‡ΠΊΠΈΠ½Π° Π•ΠΊΠ°Ρ‚Π΅Ρ€ΠΈΠ½Π° - Π‘ΠΏΡ€ΠΈΠ½Ρ‚Ρ‹ 7, 8, 9, 10 - ΠžΡΠ½ΠΎΠ²Ρ‹ React, Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚, Π ΠΎΡƒΡ‚ΠΈΠ½Π³ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, авторизация ΠΈ WebSocket, TypeScript - 2023-2024Π³.