REST-сервис предоставляет интерфейс для возможности загрузки файлов и вывода списка уже загруженных файлов пользователя по заранее описанной спецификации.
Все запросы к сервису авторизованы.
Заранее подготовленное веб-приложение (FRONT) подключается к разработанному сервису без доработок, а также использует функционал FRONT для авторизации, загрузки и вывода списка файлов пользователя.
Изначально FRONT доступен на порту 8080, BACKEND - на порту 5050.
Описание проекта "с картинками" смотри чуть ниже.
USERNAME: user@one.user PASSWORD: user_one
USERNAME: user@two.user PASSWORD: user_two
- Приложение разработано с использованием Spring Boot;
- Использован сборщик пакетов Maven;
- Использована база данных MySql;
- Использована система управления миграциями Liquibase;
- Для запуска используется docker, docker-compose;
- Код размещен на github;
- Код покрыт unit тестами с использованием mockito;
- Добавлены интеграционные тесты с использованием testcontainers;
- Информация о пользователях сервиса хранится в базе данных;
- Информация о файлах пользователей сервиса хранится в базе данных.
Интеграционный тест и JPA тесты (StorageFileRepositoryTest.java, UserRepositoryTest.java) изначально закомментированы, поскольку с ними не получится выполнить maven-package, а также собрать docker-контейнер. После сборки docker-контейнера требуется раскомментировать и запустить данные тесты.
- Установить nodejs (версия не ниже 14.15.0) на компьютер следуя инструкции;
- Скачать FRONT (JavaScript);
- Перейти в папку FRONT приложения и все команды для запуска выполнять из нее;
- Следуя описанию README.md FRONT проекта запустить nodejs приложение (npm install...);
- Для запуска FRONT приложения с расширенным логированием использовать команду:
npm run serve
.
- Скачать данный проект, выполнить
maven -> clean -> package
; - Запустить
docker-compose.yml
. Автоматически создадутся все необходимые в базе данных таблицы (с двумя стартовыми пользователями в таблице users).
BACKEND можно запустить и через main метод в классе NetologyCloudStorageApplication.java, не используя docker-контейнер. Базу данных же все равно запускать через docker-контейнер.
Для этого на п.2 "Запуск BACKEND" вместо запуска всего docker-compose.yml
следует запустить
только docker-compose.yml -> database
, а само приложение через main метод.
Остальные шаги остаются неизменны.
Стандартная форма авторизации для ввода логина (почта) и пароля. Добавить нечего.
После авторизации будет доступна данная страница.
- Добавление файла в облачное хранилище. После нажатия будет предложено выбрать файл для загрузки и загрузить его;
- Список загруженных файлов. Изначально пуст;
- Переименование файла. По нажатию будет сгенерировано случайное новое имя, состоящее из трех цифр;
- Загрузить (скачать) файл с облачного хранилища;
- Удалить файл;
- В правом верхнем углу кнопка "Выйти" для выхода из своей учетной записи. По нажатию будет осуществлен автоматический переход на стратовую страницу.