Giter VIP home page Giter VIP logo

cloudservice's Introduction

Сервис хранения файлов в облаке

Описание проекта

Получи доступ к файлам из любой точки мира!

Предназначен для хранения и извлечения файлов в облачном хранилище.

Проект реализова с использованием следующих Api:

  • Spring boot;
  • Spring security;
  • Spring data;
  • Spring mvc;
  • Jwwt;
  • Lombok;
  • Liquebase;
  • MySql;
  • Junit;
  • Testconteiners;
  • Docker;
  • Docker-compose.

Как установить и запустить проект

Для запуска приложения необходимо:

  • установить Docker Compose;
  • сделать git pull приложения;
  • перейти в корневую папку приложения;
  • собрать проект выполнив команду docker-compose build;
  • выполнить команду docker compose up -d
  • перейти по адресу http://localhost:8081/

Справочно

  • структура проекта схематично отображена в директории documentation;
  • ТЗ проекта представлено в директории documentation;
  • файлы системных логов записываются:
    • В Windows тома находятся по умолчанию в \wsl.localhost\docker-desktop-data\data\docker\volumes\moneytransferservice_logs_app_data;
    • В Linux тома находятся по умолчанию в /var/lib/docker/volumes/;
  • по умолчанию сервер запускается на порту 8080;
  • процесс обмена backend'ом и frontend'ом описан в CloudServiceSpecification.yaml.

Научился

  1. Создавать REST-приложение;
  2. Использовать библиотеку валидации jakarta.validation.Valid;
  3. Обрабатывать Json объекты с использованием аннотаций;
  4. Использовать @CrossOrigin аннотацию для совместного использования ресурсов между разными источниками;
  5. Настраивать политику обратки входящих запросов;
  6. Реализовывать аутентификацию с использование токенов;
  7. Создавать и настраивать фильтры в spring security;
  8. Реализовал разделение активных профилей для разработки и тестов;
  9. Создавать Dockerfile для backend'а и frontend'а;
  10. Создавать композиции с помощью docker-compose.yaml;
  11. Использовать тома для сохранения лог фалов приложения;
  12. Использовать spring data jpa;
  13. Создавать собственные запросы к MySql;
  14. Создавать и управлеять связанными таблицами;
  15. Создавать миграции с использованием Liqeibase;
  16. Фильтровать миграции в зависимости от context'a;
  17. Настройка логирования(разделение по уровням логирования, логирование в файл и в консоль) с использованием Logback;
  18. Интеграционное тестирование приложения на уровне представления с использованием MockMvc;
  19. Интеграционное тестирование с использованием аннотации @Testcontainers;

cloudservice's People

Contributors

madmaxim22 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.