Microservice developed to support the administration of video catalog of the hypotetical project called Codeflix.
This project was developed using the following technologies:
To run this project locally, you must install the following tools in your development environment:
To run this project, follow these steps:
- Clone this repository
# Clone via ssh
❯ git clone git@github.com:ayrtonbsouza/codeflix-catalog-admin-microservice.git
# Or clone via HTTPS
❯ git clone https://github.com/ayrtonbsouza/codeflix-catalog-admin-microservice.git
- Go to project folder
❯ cd codeflix-catalog-admin-microservice
- Run docker compose file
❯ docker compose up -d
- Wait until the project start and go to localhost:9000/docs
To run tests, follow these steps:
- Go to project folder
❯ cd codeflix-catalog-admin-microservice
- Run docker compose file
❯ docker compose up -d
- Wait until the container start and run tests
❯ yarn test
This project was developed using concepts found in the following references:
This is the design of the architecture that make up the applications of the Codeflix project. The microservice developed in this repository is highlighted in purple.
graph LR
A[fa:fa-user Subscriber] -->|HTTPS| B[React: Video Catalog]
A -->|HTTPS| C[Keycloak: Identity Service]
A -->|HTTPS| F[Free Language: Subscription]
B -->|HTTPS/JSON| D[Node Microservice: Video Catalog]
D -->|HTTPS/JSON| E[Elasticsearch: Catalog API Database]
G[fa:fa-user Subscription Admin] -->|HTTPS| F
F -->|HTTPS| C
F -->|Postgres Protocol|H[Postgres: Subscription Database]
I[fa:fa-user Catalog Admin] -->|HTTPS|J[React: Video Catalog Admin]
J -->|HTTPS|C
J -->|HTTPS/JSON|K[Node Microservice: Video Catalog Admin]
style K fill:#8257e5
K -->|TCP|L[MySQL: Video Catalog]
K -->|HTTPS|M[GCP: Raw Video Bucket]
K -.->|RabbitMQ videos.new|N[Go Microservice: Encoder]
K -.->|RabbitMQ videos.converted|N
N -.->|RabbitMQ videos.converted|K
N -.->|RabbitMQ videos.new|K
N -->|HTTPS|M
N -->|HTTPS|O[GCP: Encoded Video Bucket]
P[Kafka Connect]-.->|Sink|E
P -.->|Kafka Protocol|Q[Kafka: Message Broker]
P -.->|Debezium| L
This project is licensed under the MIT License. See the license file for more information.
Made with ❤️ by Ayrton Souza 👋 Get in touch!