Дипломная работа по курсу QA.GURU Advanced
- Rococo - web-приложение для сохранения художников, их картин и музеев.
- Spring Authorization Server
- Spring OAuth 2.0 Resource Server
- Spring data JPA
- Spring Web
- Spring actuator
- Postgres
- Apache Kafka
- Docker
- Svelte
- Jakarta Bean Validation
- JUnit 5 (Extensions, Resolvers, etc)
- Allure
- Selenide
- Selenoid & Selenoid-UI
- Allure-docker-service
- Java 17
- Gradle 7.6
- rococo-auth - Сервис авторизации
- rococo-gateway - Api-шлюз
- rococo-userdata - Сервис для работы с профилями пользователей
- rococo-artist - Сервис для работы с художниками
- rococo-country - Сервис для работы с геоданными
- rococo-museum - Сервис для работы с музеями
- rococo-painting - Сервис для работы с картинами
Установка на Mac (Для ARM и Intel разные пакеты)
После установки и запуска docker daemon необходимо убедиться в работе команд docker, например docker -v
docker pull postgres:15.1
docker pull confluentinc/cp-zookeeper:7.3.2
docker pull confluentinc/cp-kafka:7.3.2
После pull
вы увидите спуленный image командой docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
postgres 15.1 9f3ec01f884d 10 days ago 379MB
confluentinc/cp-kafka 7.3.2 db97697f6e28 12 months ago 457MB
confluentinc/cp-zookeeper 7.3.2 6fe5551964f5 7 years ago 451MB
docker volume create rococo
Для *nix:
docker run --name rococo-db -p 5432:5432 -e POSTGRES_PASSWORD=secret -v rococo:/var/lib/postgresql/data -d postgres:15.1
docker run --name=zookeeper -e ZOOKEEPER_CLIENT_PORT=2181 -e ZOOKEEPER_TICK_TIME=2000 -p 2181:2181 -d confluentinc/cp-zookeeper:7.3.2
docker run --name=kafka -e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=$(docker inspect zookeeper --format='{{ .NetworkSettings.IPAddress }}'):2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 \
-e KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 \
-p 9092:9092 -d confluentinc/cp-kafka:7.3.2
Для Windows:
docker run --name rococo-db -p 5432:5432 -e POSTGRES_PASSWORD=secret -v rococo:/var/lib/postgresql/data -d postgres:15.1
docker run --name=zookeeper -e ZOOKEEPER_CLIENT_PORT=2181 -e ZOOKEEPER_TICK_TIME=2000 -p 2181:2181 -d confluentinc/cp-zookeeper:7.3.2
docker run --name=kafka -e KAFKA_BROKER_ID=1 -e KAFKA_ZOOKEEPER_CONNECT=$(docker inspect zookeeper --format='{{ .NetworkSettings.IPAddress }}'):2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 -e KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 -e KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 -p 9092:9092 -d confluentinc/cp-kafka:7.3.2
Например, PgAdmin 4 или DBeaver.
7.Подключиться к БД postgres (host: localhost, port: 5432, user: postgres, pass: secret, database name: postgres) из PgAdmin и создать пустые БД микросервисов
create
database "rococo-auth" with owner postgres;
create
database "rococo-userdata" with owner postgres;
create
database "rococo-artist" with owner postgres;
create
database "rococo-country" with owner postgres;
create
database "rococo-museum" with owner postgres;
create
database "rococo-painting" with owner postgres;
Инструкция. Рекомендованная версия Node.js - 18.13.0 (LTS)
cd rococo-client
Обнови зависимости и запускай фронт:
npm i
npm run dev
Фронт стартанет в твоем браузере на порту 3000: http://127.0.0.1:3000/
Для этого зайти в меню Run -> Edit Configurations -> выбрать main класс -> указать Active profiles: local Инструкция.
- Запустить сервис auth
cd rococo-auth
gradle bootRun --args='--spring.profiles.active=local'
Или просто перейдя к main-классу приложения RococoAuthApplication выбрать run в IDEA (предварительно удостовериться что выполнен предыдущий пункт)
4 Запустить в любой последовательности другие сервисы: rococo-gateway, rococo-userdata, rococo-geo, rococo-artist, rococo-museum, rococo-painting
1. Создать бесплатную учетную запись на https://hub.docker.com/ (если отсутствует)
127.0.0.1 client.rococo.dc
127.0.0.1 auth.rococo.dc
127.0.0.1 gateway.rococo.dc
cd rococo
bash docker-compose-dev.sh
Дождаться старта всех контейнеров rococo-*
Rococo при запуске в докере доступен по адресу http://client.rococo.dc
cd rococo
bash docker-compose-e2e.sh