GithubHelp home page GithubHelp logo

gitstanhub / rococo_ym Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yaroslavmorenov/rococo

0.0 0.0 0.0 5.69 MB

Shell 1.57% JavaScript 0.28% Java 66.98% TypeScript 8.80% CSS 1.71% HTML 1.60% FreeMarker 0.30% Dockerfile 0.17% Svelte 18.59%

rococo_ym's Introduction

Rococo

Дипломная работа по курсу QA.GURU Advanced


О проекте

  • Rococo - web-приложение для сохранения художников, их картин и музеев.

Технологии, использованные в Rococo:

Микросервисы rococo:


Минимальные предусловия для работы с проектом Rococo:

1. Установить docker (Если не установлен)

Установка на Windows

Установка на Mac (Для ARM и Intel разные пакеты)

Установка на Linux

После установки и запуска docker daemon необходимо убедиться в работе команд docker, например docker -v

2. Спуллить контейнер postgres:15.1, zookeeper и kafka версии 7.3.2

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

3. Создать volume для сохранения данных из БД в docker на вашем компьютере

docker volume create rococo

4. Запустить БД, zookeeper и kafka 4-мя последовательными командами:

Для *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

6. Установить одну из программ для визуальной работы с Postgres.

Например, 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;

8. Установить Java версии 17 или новее.

9. Установить пакетый менеджер для сборки front-end npm

Инструкция. Рекомендованная версия Node.js - 18.13.0 (LTS)


Запуск Rococo локальное в IDE:

1. Запусти фронт Rococo, для этого перейти в соответствующий каталог

cd rococo-client

Обнови зависимости и запускай фронт:

npm i
npm run dev

Фронт стартанет в твоем браузере на порту 3000: http://127.0.0.1:3000/

2. Прописать run конфигурацию для всех сервисов rococo-* - Active profiles local

Для этого зайти в меню Run -> Edit Configurations -> выбрать main класс -> указать Active profiles: local Инструкция.

3 Запустить сервис rococo-auth c помощью gradle или командой Run в IDE:

  • Запустить сервис 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

Запуск Rococo в докере:

1. Создать бесплатную учетную запись на https://hub.docker.com/ (если отсутствует)

2. Создать в настройках своей учетной записи access_token

Инструкция.

3. Выполнить docker login с созданным access_token (в инструкции это описано)

4. Прописать в etc/hosts элиас для Docker-имени

127.0.0.1       client.rococo.dc
127.0.0.1       auth.rococo.dc
127.0.0.1       gateway.rococo.dc

5. Перейти в корневой каталог проекта

cd rococo

6. Запустить все сервисы

bash docker-compose-dev.sh

Дождаться старта всех контейнеров rococo-*

Rococo при запуске в докере доступен по адресу http://client.rococo.dc

Запуск e-2-e тестов в докере:

1. Перейти в корневой каталог проекта

cd rococo

2. Запустить все сервисы и тесты:

bash docker-compose-e2e.sh

rococo_ym's People

Contributors

dtuchs avatar yaroslavmorenov 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.