Skip to content

Releases: vicistomin/react-burger

Pre-release 0.2.0-alpha

13 Aug 18:27
273701a
Compare
Choose a tag to compare
Pre-release

Pre-release 0.2.0-alpha

This release is reflecting the state of the project after completion of the "React Developer" course in Yandex.Praktikum.
(pre-release v.0.1.0 was omitted as it was considered as bare Create React App boilerplate)

Functionality added in this release

  • Interactive burger constructor with drag-n-drop for adding and reordering of ingredients
  • Order placement (only for authorized users)
  • Two feeds with places orders: for all users and for authorized user only (orders history)
  • Orders feeds data is updating in real-time from server
  • User registration, authorization, forgot/reset password functionality
  • Different routes protection for authorized and guest users
  • After succesful authorization user is redirecting to the last page he requested
  • Modal windows for ingredients and order details
  • Modals have their unique URLs an can be opened as separate page when reloaded or with direct link
  • Modals can be closed with the 'X' button, click outside modal or with 'Esc' key
  • 404 page

Release tech specs

  • React 17 with functional components and hooks
  • CSS Modules
  • Redux with Toolkit using thunk, slices and custom middleware
  • Routing with React Router with 3 types of protected routes and URL params
  • User authorisation with JWT and token refresh (token become stale in 20 minutes)
  • Websocket connection to API for real-time orders feed update
  • Unit tests for all slices with Jest and Enzyme
  • Cypress functional test for drag-n-dropping of ingredients into burger constructor (with react-dnd library)
  • TypeScript for all project code except tests
  • Github Action for automatic code testing in PR's and commits to main branch
  • Project code is automaticly deploying to Github Pages
  • React Developer Burger UI components library (by Yandex) was used in this project
  • Backend API used is this project was gracefully provided by Yandex