Загрузка данных


Требования

- PHP 8.2+
- Composer 2+
- Node.js 20+ и npm
- Git
- SQLite (по умолчанию в проекте) или MySQL

Опционально:
- LibreOffice (`soffice`) для конвертации презентаций в PDF-превью.

## 2. Клонирование проекта

```bash
git clone <URL_репозитория>
cd file-tracker
```

Если проект уже открыт в IDE, этот шаг пропускается.

## 3. Установка зависимостей

```bash
composer install
npm install
```

## 4. Настройка окружения

Создать `.env` на основе примера:

```bash
cp .env.example .env
```

Для Windows PowerShell:

```powershell
Copy-Item .env.example .env
```

Сгенерировать ключ приложения:

```bash
php artisan key:generate
```

## 5. Настройка базы данных

### Вариант A (быстро, SQLite)

В `.env`:

```env
DB_CONNECTION=sqlite
```

Убедиться, что файл `database/database.sqlite` существует.

### Вариант B (MySQL)

В `.env`:

```env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=file_tracker
DB_USERNAME=root
DB_PASSWORD=your_password
```

## 6. Миграции и начальные данные

```bash
php artisan migrate --seed
```

Тестовые пользователи после сида:
- `admin@example.com` / `password`
- `moderator@example.com` / `password`
- `test@example.com` / `password`

## 7. Настройка файлового хранилища

### Локальный диск (по умолчанию)

В `.env`:

```env
FILESYSTEM_DISK=public
```

Создать симлинк:

```bash
php artisan storage:link
```

### Supabase Storage (если используется)

В `.env`:

```env
FILESYSTEM_DISK=supabase
SUPABASE_S3_KEY=your_access_key_id
SUPABASE_S3_SECRET=your_secret_access_key
SUPABASE_S3_BUCKET=file-tracker
SUPABASE_S3_REGION=us-east-1
SUPABASE_S3_ENDPOINT=https://<project-ref>.storage.supabase.co/storage/v1/s3
SUPABASE_S3_URL=https://<project-ref>.storage.supabase.co/storage/v1/object/public/file-tracker
```

Подробная настройка: см. `supabase.md`.

## 8. Запуск приложения

Терминал 1:

```bash
php artisan serve
```

Терминал 2:

```bash
npm run dev
```

Открыть:
- Laravel: `http://127.0.0.1:8000`
- Vite (dev assets): `http://127.0.0.1:5173`

## 9. Проверка работоспособности

1. Зарегистрироваться или войти тестовым пользователем.
2. Перейти в раздел `Файлы`.
3. Загрузить файл.
4. Проверить:
   - поиск/фильтрацию,
   - отображение тегов,
   - скачивание,
   - страницу просмотра файла.

## 10. Полезные команды

Очистка кешей:

```bash
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
```

Пересоздание БД:

```bash
php artisan migrate:fresh --seed
```

Тесты:

```bash
php artisan test
```

## 11. Частые проблемы

- `Vite websocket 400`:
  - перезапустить `npm run dev`;
  - открыть приложение по `127.0.0.1`, а не по `localhost`/`[::1]`.

- Файл не загружается в Supabase:
  - проверить `SUPABASE_S3_*` в `.env`;
  - выполнить `php artisan config:clear`;
  - проверить, что bucket создан и доступен.

- Нет предпросмотра презентаций:
  - нужен LibreOffice (`soffice`) для конвертации;
  - без него файл загружается, но preview может быть недоступен.