nikibor / File-manager

Файловый менеджер для Unix систем, под управлением Django фреймворка

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

File manager

Задачи проекта

Разработать файловый менеджер для локального запуска и отображения

Требования к программе:

  • файловый менеджер должен отображаться в веб-браузере
  • возможность подниматься вверх по структуре и внуть папки
  • корнем должна быть отдельная папка static, заданная в структуре приложения
  • доступ выше корневой папки и к файлам приложения должен быть закрыт для пользователя
  • возможность загрузки файла
  • возможность открывать/скачивать файл
  • возможность удалить файл
  • (дополнительно) возможность отображения картинок при наведении на нее в списке файлов (подгрузка через JavaScript)
  • (дополнительно) отображение размера файла/папки

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

Сначала необхоисо активировать виртуальное окружение и скачать все необходимые пакеты:

$ pip install -v virtualenv && virtualenv --no-site-packages ./venv
$ ./venv/bin/activate 
$ pip install -v -r requirements.txt

Данное приложение запускается на внутреннем сервере Gunicorn, который будет установлен вместе со всеми пакетами

Далее необходимо запустить миграции базы данных и создать суперпользователя всей системы:

$ python manage.py migrate
$ python manage.py createsuperuser

Запуск приложения (По умолчанию запуск происходит на 8000 порту)

$ sudo python manage.py runserver

Также вохможна сборка из Docker контейнера:

$ sudo docker-compose up

Тестирование

Тестирование осуществляется внутренним фреймворком Django. Оно носит модульный характер и проверяет работу эндпоинтов

Запуск всех тестов осуществляется через команду python manage.py test:

$ python manage.py test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
...
----------------------------------------------------------------------
Ran 3 tests in 0.001s

OK
Destroying test database for alias 'default'...

About

Файловый менеджер для Unix систем, под управлением Django фреймворка


Languages

Language:Python 69.9%Language:HTML 29.6%Language:Dockerfile 0.5%