Frontend-приложение для RideTrip на базе React + TypeScript + Vite с готовой архитектурой: роутинг, Zustand, JWT-авторизация, axios-клиент с интерсепторами, refresh-токены, уведомления, глобальный loader и error boundary.
- React 18
- TypeScript
- Vite
- React Router
- Zustand (state management)
- Axios (API client)
- JWT auth + refresh flow
- Context API (toast-уведомления)
- Инициализирован React + TS через Vite
- Абсолютные импорты (@/...)
- Грамотная структура проекта
- Роутинг с protected routes
- Lazy loading страниц
- Zustand store (auth) + persist
- Axios client с:
- baseURL из .env
- timeout и дефолтными headers
- JWT interceptor
- refresh token flow
- единая обработка ошибок
- API services (auth, user)
- Toast-уведомления
- Глобальный loader
- Error Boundary
- Установка зависимостей:
npm install- Запуск в dev-режиме:
npm run dev- Сборка:
npm run build- Preview сборки:
npm run previewРеализовано:
- access token (JWT)
- автоматическая подстановка Authorization header
- refresh token через interceptor
- повтор запроса после обновления токена
- авто-logout при ошибке refresh
- сохранение сессии в localStorage (Zustand persist)
Toast-система через Context API.
Глобальный перехват ошибок React
Интерфейс должен вызывать только шлюз. URL-адрес шлюза настраивается с помощью переменных Vite env.
Создайте env-файлы в корневом каталоге проекта:
VITE_API_URL=https://api.example.com
VITE_API_PREFIX=/api