Frontend приложение для системы управления задачами TaskMate, построенное на React + TypeScript + Vite.
- React 18 - UI библиотека
- TypeScript - Типизация
- Vite - Сборщик и dev сервер
- React Router - Маршрутизация
- Zustand - State management
- TanStack Query - Управление серверным состоянием
- Axios - HTTP клиент
- Tailwind CSS - CSS фреймворк
- date-fns - Работа с датами
- react-hook-form - Работа с формами
- Node.js 18+
- npm или yarn
# Установка зависимостей
npm install
# Создать .env файл на основе .env.example
cp .env.example .env
# Отредактировать .env и указать правильный API URL
# VITE_API_BASE_URL=http://localhost:8000/api/v1npm run devПриложение будет доступно по адресу http://localhost:5173
npm run buildСобранные файлы будут в папке dist/
npm run previewVite встраивает переменные окружения (начинающиеся с VITE_) в JavaScript во время сборки, а не во время запуска. Это означает, что переменные должны быть переданы как build arguments при сборке образа.
# Сборка с дефолтным API URL (http://localhost:8007/api/v1)
docker build -t taskmate-frontend .
# Сборка с кастомным API URL
docker build \
--build-arg VITE_API_BASE_URL=http://your-api-url:8007/api/v1 \
-t taskmate-frontend .docker run -p 80:80 taskmate-frontendПриложение будет доступно по адресу http://localhost
Добавьте в docker-compose.yml:
services:
frontend:
build:
context: ./TaskMateFrontend
dockerfile: Dockerfile
args:
# Передаем build argument для Vite
VITE_API_BASE_URL: ${VITE_API_BASE_URL:-http://localhost:8007/api/v1}
ports:
- "80:80"
depends_on:
- apiПримечание: Runtime переменные окружения (через environment:) НЕ работают для Vite приложений, так как код уже собран. Используйте только build.args.
src/
├── api/ # API клиент и endpoints
│ ├── client.ts # Axios instance
│ ├── auth.ts # Аутентификация
│ ├── users.ts # Пользователи
│ ├── tasks.ts # Задачи
│ └── dashboard.ts # Dashboard
│
├── components/ # React компоненты
│ ├── auth/ # Компоненты аутентификации
│ ├── layout/ # Layout компоненты
│ ├── users/ # Компоненты пользователей
│ └── tasks/ # Компоненты задач
│
├── pages/ # Страницы приложения
│ ├── LoginPage.tsx
│ ├── DashboardPage.tsx
│ ├── UsersPage.tsx
│ └── TasksPage.tsx
│
├── stores/ # Zustand stores
│ └── authStore.ts
│
├── hooks/ # Custom hooks
│ ├── useAuth.ts
│ └── usePermissions.ts
│
├── types/ # TypeScript типы
│ ├── user.ts
│ ├── task.ts
│ ├── api.ts
│ └── dashboard.ts
│
├── utils/ # Утилиты
└── constants/ # Константы
Приложение использует Bearer Token аутентификацию (Laravel Sanctum):
- Пользователь вводит логин и пароль
- После успешного входа токен сохраняется в localStorage
- Токен автоматически добавляется ко всем API запросам
- При получении 401 ошибки пользователь перенаправляется на страницу входа
- employee - Сотрудник (базовый доступ)
- observer - Наблюдатель (только чтение)
- manager - Управляющий (создание/редактирование задач и пользователей)
- owner - Владелец (полный доступ)
VITE_API_BASE_URL- URL API сервера (по умолчанию:http://localhost:8007/api/v1)
Создайте .env файл:
cp .env.example .envОтредактируйте .env:
VITE_API_BASE_URL=http://localhost:8007/api/v1
При использовании Docker переменные должны передаваться как build arguments, а не runtime environment variables. Смотрите раздел "Docker" выше для подробностей.
Смотрите файл creating_intructions/FRONTEND_GUIDE.md для подробной документации по интеграции с API.
Proprietary License Copyright © 2023-2025 谢榕川 All rights reserved.