Corp/frontend/SETUP_COMPLETE.md
igor_nadein 8b2d3b378e feat(frontend): добавлен API клиент и восстановлен backend из master
- Создан 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
2026-02-24 15:40:50 +03:00

6.0 KiB
Raw Blame History

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

✅ Документация


🚀 Следующие шаги

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

📚 Ресурсы


❓ Вопросы?

Если что-то не работает:

  1. Проверьте что оба сервера запущены (Django на 8000, Vite на 5173)
  2. Откройте DevTools → Console для ошибок JavaScript
  3. Откройте DevTools → Network для ошибок API/CORS
  4. Проверьте файл .env в frontend

Всё готово для разработки! 🎉