- Создан frontend/src/lib/api.ts с 43 методами для всех API endpoint'ов - Создан frontend/src/lib/permissions.ts для проверки прав доступа - Исправлен URL в getChatMessagesAround: /messages/around/ → /messages-around/ - Исправлен параметр: message_id → around_id - Восстановлен backend из ветки master для стабильности - Удалены конфликтующие файлы Pages Router (src/pages, App.tsx, providers) - Оставлена только чистая структура Next.js App Router - Добавлена документация по миграции API v2
6.0 KiB
6.0 KiB
Frontend Setup Complete! ✅
🎉 Что создано
✅ React + TypeScript приложение
- Framework: Refine.dev (специально для REST API)
- Bundler: Vite (быстрая сборка)
- UI: Headless (без библиотеки, можно добавить Ant Design / Material-UI позже)
✅ Настроено подключение к Django
- API URL:
http://localhost:8000/api/v1(настраивается через.env) - WebSocket:
ws://localhost:8000/ws(для чатов) - Data Provider: Автоматически работает с DRF pagination и фильтрами
✅ JWT Авторизация
- Login:
POST /api/auth/token/→ получение access + refresh токенов - Auto-refresh: Автоматическое обновление истекших токенов
- Token storage: LocalStorage с ключом
eusrr-auth-token - Authorization header: Автоматически добавляется ко всем API запросам
✅ Ресурсы (CRUD страницы)
Настроены следующие модули:
- Сотрудники (
/employees) - ✅ Страница списка готова! - Отделы (
/departments) - Документы (
/documents) - Заявки (
/requests) - Календарь (
/events) - Лента (
/feed) - Чаты (
/chats)
✅ Созданные файлы
frontend/
├── .env # Конфигурация (API URL)
├── .env.example # Шаблон конфигурации
├── QUICKSTART.md # Инструкция запуска
│
├── src/
│ ├── App.tsx # ✅ Настроен с вашими ресурсами
│ │
│ ├── providers/
│ │ ├── auth.ts # ✅ JWT авторизация для Django
│ │ ├── data.ts # ✅ Data provider с JWT токеном
│ │ └── constants.ts # ✅ API URLs из .env
│ │
│ └── pages/
│ └── employees/
│ ├── list.tsx # ✅ Таблица сотрудников
│ └── index.ts
✅ Документация
- QUICKSTART.md - Быстрый запуск
- docs/guides/DJANGO_CORS_SETUP.md - Настройка CORS
🚀 Следующие шаги
1. Настроить CORS на Django (5 минут)
cd backend
.venv/Scripts/pip install django-cors-headers
Добавить в settings.py:
INSTALLED_APPS = ["corsheaders", ...]
MIDDLEWARE = ["corsheaders.middleware.CorsMiddleware", ...]
CORS_ALLOWED_ORIGINS = ["http://localhost:5173"]
Подробнее: docs/guides/DJANGO_CORS_SETUP.md
2. Запустить приложение
Terminal 1:
cd backend && .venv/Scripts/python manage.py runserver 8000
Terminal 2:
cd frontend && npm run dev
Открыть: http://localhost:5173
📊 Текущее состояние
| Модуль | Backend API | Frontend Page | Status |
|---|---|---|---|
| Сотрудники | ✅ /api/v1/employees/ | ✅ /employees | Готово |
| Отделы | ✅ /api/v1/departments/ | ⏳ TODO | Backend готов |
| Документы | ✅ /api/v1/documents/ | ⏳ TODO | Backend готов |
| Заявки | ✅ /api/v1/requests/ | ⏳ TODO | Backend готов |
| Календарь | ✅ /api/v1/calendar/events/ | ⏳ TODO | Backend готов |
| Лента | ✅ /api/v1/posts/ | ⏳ TODO | Backend готов |
| Чаты | ✅ /api/v1/chats/ | ⏳ TODO | Backend готов |
🎯 Планы развития
Фаза 1: Основные CRUD страницы (1-2 недели)
- Создать страницы для documents, requests, departments
- Добавить формы создания/редактирования
- Добавить валидацию форм
Фаза 2: UI библиотека (3-5 дней)
- Установить Ant Design или Material-UI
- Переписать компоненты с использованием UI библиотеки
- Добавить темную тему
Фаза 3: Продвинутый функционал (2-3 недели)
- Интегрировать WebSocket для чатов
- Добавить real-time уведомления
- Реализовать календарь (FullCalendar)
- Добавить файловые загрузки
Фаза 4: Производительность и UX (1-2 недели)
- Добавитькэширование запросов
- Оптимизировать загрузку
- Добавить skeleton loaders
- Мобильная адаптация
🔧 Полезные команды
# Установка зависимостей
cd frontend && npm install
# Запуск dev сервера
npm run dev
# Сборка для production
npm run build
# Preview production build
npm run preview
# Lint
npm run lint
📚 Ресурсы
- Refine Documentation: https://refine.dev/docs/
- Ant Design Components: https://ant.design/components/overview/
- React Router: https://reactrouter.com/
- TanStack Table: https://tanstack.com/table/latest
❓ Вопросы?
Если что-то не работает:
- Проверьте что оба сервера запущены (Django на 8000, Vite на 5173)
- Откройте DevTools → Console для ошибок JavaScript
- Откройте DevTools → Network для ошибок API/CORS
- Проверьте файл
.envв frontend
Всё готово для разработки! 🎉