Разработать приложение - REST-сервис. Сервис должен предоставить REST интерфейс для возможности загрузки файлов и вывода списка уже загруженных файлов пользователя. Подробнее о постановке задачи по ссылке
- Spring boot
- Maven сборщик проектов
- Docker
- JUnit 5, Mockito тестирование
- Liquibase миграции баз данных
- Java-jwt для генерации токена
- PostgreSQL база данных
- Logback логгирование, файл с настройками
src/main/resources/logback-spring.xml
В приложении реализована классическая трехслойная архитектура Spring Web MVC, состоящая из трех ключевых компонентов: Controller, Service, Repository.
В дополнении к основным компонентам, реализован компонент GzipUtils. Данный компонент создан для сжатия файлов перед загрузкой в базу данных. Он нужен для уменьшение объема файла в целях экономичного хранения в базе данных.
Чтобы изменить максимально допустимый для загрузки размер файла нужно в src/main/resources/application.properties
изменить аттрибут spring.servlet.multipart.max-file-size
и spring.servlet.multipart.max-request-size
.
Для тестовых проверок сервиса в базу данный загружен пользователь user@gmail.com
пароль password
Согласно условиям задания, клиентское приложение (разработанное за рамками данного проекта) должно быть запущено в docker контейнере используя docker-compose. Ниже описано создание и процедура запуска FRONT приложения:
- Выполнить шаги по клонированию репозитория FRONT.
- Скопировать
DockerfileFRONT
в папку проекта фронта - /card-transfer/ (содержащую файлpackage.json
). - Собрать docker образ выполнив команду
docker build -f DockerfileFRONT -t frontcloudstorage .
- Собрать приложение, выполнив
mvn clean package
- Перейти корневую папку проекта и собрать docker образ выполнив команду в корневой папке проекта
docker build -f DockerfileRESTAPP -t restapp .
- Перейти корневую папку проекта и собрать docker образ выполнив команду в корневой папке проекта
docker build -f DockerfilePostgres -t postgres .
Для запуска всех приложений в docker-compose выполнить команду:
docker-compose up
при добавлении ключа -d
приложение запустится в фоновом режиме
(Файл с описанием docker-compose находится в корневой папке проекта docker-compose.yml
)