React application for searching and booking entertainment quests in St. Petersburg.
This application contains several screens: the main page with the list of available entertainment quests, the page with additional information about each quest, the page with the form for signing up for the application, the page for booking the quest, and the page with the list of booked quests.
On the main page of the application is a list of cards with brief information about each quest.
The user has the ability to apply two types of sorting: by type of quest and by degree of difficulty.
The other screen available to the user has information about the contact information of the company-provider of entertaining quests The address of the company is dynamically displayed as a marker on the map.
When user click on any of the cards quests page appears with a detailed description: the quest story, complexity, number of participants, etc.
To successfully book the quest, the user only needs to click on the big orange button. However, if the user is not authorized, the app will redirect him to the registration page, where he will have to enter his email and password.
When the user successfully registers, he will be redirected to a page with a very convenient booking form! This form provides a choice of the quest location by clicking on the marker on the interactive map, the choice of the quest time by clicking on the checkbox. In addition, the user will need to leave their contact information, but be very careful, because the criteria for valid entered data is quite strict :)
Another private page, which is only available to registered users, is the page with the list of bookings. On it, the user can quietly see his upcoming events and, if necessary, cancel the quest.
- ReactJS,
- Typescript,
- React Router Dom,
- Redux Toolkit,
- React Hook Form
- Axios
- Leaflet-map
- Toast
All errors are intercepted.
https://escape-room-korsakova.vercel.app/
- Clone repository:
git clone git@github.com:LenaKorsakov/six-city.git
- Install dependencies repository:
npm install
- Run application:
npm start
- Check tests
npm test