Стек технологий:
- Java 21
- Spring Framework
- Liquabase
- PostgreSQL
- Maven
- Lombok
- Testcontainers
- JUnit
- Docker/Docker Compose
- Grafana
- Kafka
- Prometheus
- Elastic Search
- Logstash
- Minio
Требования: в системе должен быть установлен docker и docker-compose
- Скачайте архив с репозиторием в удобное место у себя на компьютере:
git clone https://github.com/Alexandr-Kokorin/CaseLabProject.git - Далее перейдите в директорию с файлом docker-compose.yml:
cd CaseLabProject cd docker - Теперь можно указать почту для нотификаций, указав адрес электронной почты и пароль приложения:
- С помощью любого удобного редактора откройте файл
.env, находящийся в директории docker и отредактируйте следующую переменную:... MAIL_USERNAME=<EMAIL> MAIL_PASSWORD=<PASSWORD> ... Вместо `<EMAIL>` необходимо вставить адрес электронной почты. Вместо `<PASSWORD>` необходимо вставить пароль приложения для указанного адреса почты.
- С помощью любого удобного редактора откройте файл
- Теперь можно запустить приложение:
- Для Linux систем:
docker compose up - Для Windows систем:
docker-compose up
- Для Linux систем:
- Теперь можно протестировать приложение перейдя по следующему адресу:
http://localhost:8080/swagger-ui/index.html ... Данные для входа в аккаунт администратора: Почта: admin@gmail.com Пароль: admin321@&123 Данные для входа в аккаунт Grafana: Login: admin Пароль: admin ...
Cоздана ветка develop, ответвленная от main. Основная работа будет происходить в этой ветке, и все новые фичи, багфиксы и улучшения должны разрабатываться в отдельных feature-ветках, которые будут ответвляться от develop. Ветки создавайте по мере необходимости.
Для вливания одной ветки в другую используется Pull Request, в нем настроены тесты и проверка стиля, необходимо чтобы все успешно выполнялось, а так же необходимо подтверждение от любого другого участника команды, в таком случае ветку можно слить.
Критические багфиксы для продакшн-версии будем править через hotfix-ветки, которые ответвляются от main и вливаются обратно в main и develop.
Почитать про git flow можно тут
- Запустить docker (версия 4.34.2 и новее)
- Выбрать способ запуска:
- Отладочный - БД в контейнере, приложение отдельно - запустить
elastic-compose.ymlи после запустить классApplication - Чистый - всё собирается в одном контейнере - запустить
compose.yml - Полный - запускается все, что в чистом способе запуска, только вместе с системами метрик и мониторинга -
в директории
spring-metricsзапуститьmetrics-compose.yml
- Отладочный - БД в контейнере, приложение отдельно - запустить
Так же можно локально выполнить проверку код-stile, введя команду mvn checkstyle:check. Или же полную проверку, как
в github, введя команду mvn package. Чтобы ввести команды, необходимо нажать дважды ctrl.
База данных
При проектировании БД был использован архитектурный стиль EAV (Entity-Attribute-Value)

