Здесь находится описание тестового задания на позицию Junior разработчика в компанию XXX.
Создать одностраничное приложение файловый менеджер с поддержкой текстовых файлов и директорий с использованием фронтенд и бекенд фреймворков с возможностью добавления/удаления/обновления файлов, директорий. Выложить решение в публичный git репозиторий.
- Дизайн на усмотрение разработчика.
- Структура директорий хранится в БД, в качестве СУБД использовать PostgreSQL.
- Вся информация должна сохраняться при перезагрузке страницы.
- Использовать для фронта Angular, для бекенда Symfony.
Показано правильное использование:
- стандартного функционала фреймворков;
- пакетных менеджеров;
- применение стандартных пакетов/бандлов/модулей;
- применение подхода REST API.
Всё, что не указано в требованиях, остаётся на усмотрение исполнителя задачи.
Тип | Название | Удалить | Редактировать |
---|---|---|---|
dir | .. | - | - |
dir | Directory 1 | delete | edit |
file | File 1 | delete | edit |
file | File 2 | delete | edit |
- | new file | new dir | trash |
- Последняя строка представляет собой список действий: создание файла в текущей директории, создание директории в текущей директории, переход в корзину.
- При отображении всегда должна быть сортировка по типу, потом по названию: сначала директории отсортированные по названию, потом файлы названию.
- Нажатие на название директории открывает сожержимое директории.
- Нажатие на название файла открывает файл на редактирование.
- Файл содержит в себе название файла и текстовое содержимое.
- Нажатие на delete перемещает директорию/файл в корзину.
- Нажатие на new dir позволяет создать директорию в текущей директории.
- Нажатие на new file позволяет создать файл в текущей директории.
- Нажатие на .. открывает родительскую директорию текущей директори.
- Нажатие на trash открывает корзину удалённых файлов и директорий.
Тип | Название | Восстановить | Удалить |
---|---|---|---|
dir | .. | - | - |
dir | Directory 2 | restore | delete |
file | File 3 | restore | delete |
- Нажатие на restore восстанавливает директорию(и всё её содержимое)/файл.
- Нажатие на delete удаляет директорию(и всё её содержимое)/файл.
- При отображении всегда должна быть сортировка по типу, потом по названию: сначала директории отсортированные по названию, потом файлы названию.
- Если директория в которую происходит удаление файла/директории удалена, то восстанавливать в корень.
- У файла должны быть редактируемое название и текстовое содержимое.
- У директории должно быть редактируемое название.
- Для решения использовать СУБД PostgreSQL.
- В качесте хранилища использовать Firebase.