Skip to content

Web File Manager application using S3 compatible storage. Laravel 10.

Notifications You must be signed in to change notification settings

agdobrynin/file-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Web приложение "Файловый менеджер".

Приложение позволяет загружать файлы для зарегистрированных пользователей, делится файлами с другим зарегистрированными пользователями в рамках приложения.

Реализована возможность поиска файла или папки по имени в разделах приложения - "Мои файлы", "Файлы розданные мной", "Файлы переданные мне", "Моя корзина".

В разделе "Корзина" для удаленных файлов есть функция восстановления удаленных файлов или полного их удаления.

Поддерживается простое оповещение о получении файлов от пользователя через email сообщение (notification).

Приложение взаимодействует с "S3 Like" объектным хранилищем файлов MinIO (Amazon S3 API).

Часть задач требующих длительной обработки или имеющих ограничение по частоте вызов вынесены в очереди (queue worker).

Стек:

  • 🐘 Php 8.2 + Laravel 10 with Laravel/Breeze InertiaJs
  • 🌊 Tailwind CSS - css фреймворк
  • 🥉VueJs + InertiaJs - фронт приложение
  • 🦖 MariaDb - основная база
  • 🗃 MinIO - объектное хранилище, совместимое с Amazon S3 API
  • 🐋 Docker, Laravel Sail - для локальной разработки.
  • PHPUnit - тестирование приложения.

Установка проекта

Для развертывания проекта потребуется установленный 🐳 docker или же 🐋 docker desktop проект будет работать как на Windows с поддержкой WSL2 так и на Linux машине.

Локальная разработка и тестирование проекта использует легковесный Laravel Sail для работы с docker контейнерами.

Настроить переменные окружения (если требуется изменить их):

cp .env.example .env

Установить зависимости проекта:

docker run --rm -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php82-composer:latest \
    composer install --ignore-platform-reqs

на этом подготовка к работе с Laravel Sail закончена.

Запуск проекта

Поднять docker контейнеры с помощтю Laravel Sail

./vendor/bin/sail up -d

доступные команды по остановке или реконструкции (rebuild) контейнеров можно узнать на странице Laravel Sail или выполните команду ./vendor/bin/sail для получения краткой справки о доступных командах.

  • Сгенерировать application key

    ./vendor/bin/sail artisan key:generate
  • Выполнить миграции и заполнить таблицы тестовыми данными

    ./vendor/bin/sail artisan migrate --seed
  • Собрать фронт

    ./vendor/bin/sail npm install
    ./vendor/bin/sail npm run build
  • Запустить воркер (worker) обрабатывающий задачи из очереди сообщений

    ./vendor/bin/sail artisan queue:work --queue=upload,default

    в проекте используется очереди с разными приоритетами.

Запуск тестов проекта

Для запуска тестов и контроля покрытия кода тестами

./vendor/bin/sail artisan test  --compact --coverage

Доступные сайты в dev окружении

Host Назначение
http://localhost сайт приложения
http://localhost:8025 Mailpit - вэб интерфейс для отладки отправки email сообщения
http://localhost:8900 MinIO object store - логин sail, пароль password

About

Web File Manager application using S3 compatible storage. Laravel 10.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published