Aviasales — это высокопроизводительное приложение для поиска авиабилетов, обрабатывающее до 11 000 записей с использованием технологии long polling.
- Загрузка данных:
- Постепенное получение билетов через long polling
- Возможность работы с частичными данными до полной загрузки
- Визуальный индикатор процесса загрузки
- Фильтрация: Фильтрация билетов по количеству пересадок
- Сортировка: 3 критерия сортировки: цена, время в пути, оптимальный вариант
- Пагинация: Постепенная подгрузка по 5 билетов
- Индикатор загрузки: Визуализация процесса загрузки данных
- ✅ Мгновенный отклик интерфейса благодаря прогрессивной загрузке данных
- ✅ Оптимизированная работа с большими массивами данных (11 000+ билетов)
- ✅ Устойчивость к ошибкам сети и сервера
- ✅ Адаптивный дизайн для комфортного использования на любых устройствах
- React 19 — библиотека для создания пользовательского интерфейса
- Redux Toolkit — управление состоянием приложения
- Redux Thunk — middleware для асинхронных сценариев
- CSS Modules — изолированные стили компонентов
- Vite — инструмент сборки проекта
- ESLint + Prettier — единый стиль кода
- Vercel — платформа для деплоя приложения
- Перейдите на сайт приложения: Aviasales на Vercel
- Используйте фильтры для отбора билетов по количеству пересадок
- Выберите вариант сортировки билетов
- Нажимайте "Показать еще 5 билетов" для загрузки дополнительных результатов
- Индикатором загрузки покажет процесс загрузки всех данных
Для локального запуска выполните:
-
Клонируйте репозиторий:
git clone https://github.com/seva123321/Aviasales.git -
Перейдите в папку проекта:
cd Aviasales -
Установите зависимости:
npm install -
Запустите проект:
npm run dev -
Откройте браузер и перейдите по адресу: http://localhost:5173.