{"id":24033317,"url":"https://github.com/augustomello09/vinhoja","last_synced_at":"2026-03-02T16:35:28.866Z","repository":{"id":196917228,"uuid":"697447269","full_name":"AugustoMello09/VinhoJa","owner":"AugustoMello09","description":"O Projeto VinhoJá é uma aplicação web desenvolvida utilizando as tecnologias Java, Spring boot 3+ e Angular. O projeto é feito em arquitetura de microsservice que seguem boas práticas como LoadBalance, Distributed Tracing, gataway, centralized configuration, centralized documentation, Docker, comunicação síncrona e assíncrona.","archived":false,"fork":false,"pushed_at":"2023-12-01T13:22:26.000Z","size":605,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T16:51:57.438Z","etag":null,"topics":["angular","config-server","docker","java","rabbitmq","spring-boot","swagger","zipkin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AugustoMello09.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-27T18:44:33.000Z","updated_at":"2024-01-25T05:48:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"94e35fe2-82a9-4dd4-b05f-9b7d77c0c6a6","html_url":"https://github.com/AugustoMello09/VinhoJa","commit_stats":null,"previous_names":["augustomello09/vinhoja"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AugustoMello09/VinhoJa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AugustoMello09%2FVinhoJa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AugustoMello09%2FVinhoJa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AugustoMello09%2FVinhoJa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AugustoMello09%2FVinhoJa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AugustoMello09","download_url":"https://codeload.github.com/AugustoMello09/VinhoJa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AugustoMello09%2FVinhoJa/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259827664,"owners_count":22917713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","config-server","docker","java","rabbitmq","spring-boot","swagger","zipkin"],"created_at":"2025-01-08T18:15:45.610Z","updated_at":"2026-03-02T16:35:23.430Z","avatar_url":"https://github.com/AugustoMello09.png","language":"Java","readme":"# VinhoJá\n\n### Projeto FullStack: 🍇🍷\n\nO Projeto VinhoJá é uma aplicação web desenvolvida utilizando as tecnologias Java, Spring boot 3+ e Angular. O objetivo do projeto é fornecer para uma plataforma de vinho um sistema onde os usuários possam comprar seus vinhos com segurança e tratamento personalizado.  O projeto é feito em arquitetura de microsservice que seguem boas práticas como LoadBalance, Distributed Tracing, gataway, centralized configuration, centralized documentation, Docker, comunicação síncrona e assíncrona.\n\nhttps://github.com/AugustoMello09/Locadora/assets/101072311/b490b3c7-200d-4a45-9ee7-7c9226a5de35\n\n### Backend: ⚙️\n\n## Arquitetura de Microsservices vinhoJá 🧱\n\n\n![arquitetura](https://github.com/AugustoMello09/Locadora/assets/101072311/18af3776-c311-4ba6-b269-a114fd7b5fe4)\n\n\n#### Microsservice de cadastro de usuário (User Service): 👷‍♀️\n\n- Responsável pelo cadastro e gerenciamento de informações do usuário, como nome e e-mail.\n- Fornece endpoints para registro de novos usuários.\n\n#### Microsservice de cadastro de cartão (Card Service): 💳\n\n- Responsável pelo cadastro e gerenciamento de informações do cartão, como nome do cartão, número do cartão, data de validade e código de segurança.\n- Fornece endpoints para registro de novos cartões.\n\n\n#### Microsservice  de pagamento (Payment Service): 💸\n\n- Lida com informações financeiras, como detalhes do cartão de crédito, dados do usuário como nome e email.\n- Fornece endpoints para fazer o processamento de pagamento.\n- Se comunica com o a fila de emissão-pagamento.\n\n#### Microsservice de email (Email Service): ✉️\n\n- Fica responsável por escutar a fila de emissão-pagamento e enviar o Email de confirmação de compra agradecendo a pessoa.\n\n## Fluxo entre Microsservices: 💫\n\n- O User Service e o Card Service são responsáveis pelo cadastro de informações do usuário e do cartão, respectivamente. Esses serviços podem ser utilizados de forma independente para gerenciar perfis de usuário e detalhes do cartão.\n\n- Quando um usuário realiza uma transação, o Payment Service é acionado. Ele utiliza as informações do usuário e do cartão para processar o pagamento.\n\n- Após o processamento bem-sucedido, o Payment Service coloca uma mensagem na fila de emissão-pagamento para notificar o Email Service.\n\n- O Email Service, ao escutar a fila de emissão-pagamento, envia automaticamente um e-mail de confirmação de compra ao usuário.\n\n![fluxovinho](https://github.com/AugustoMello09/Locadora/assets/101072311/19ffe2a2-90e5-4966-a8ff-a25b9305d250)\n\n## comunicação entre microsservices:\n\n### Fluxo com comunicação síncrona: 🔄\n\n- Para o processamento ser bem-sucedido ele depende de dois parâmetros como o UUID do usuário e UUID do mesmo, para pegar esses dados é usado OpenFeign para esse tipo de comunicação.\n\n![si](https://github.com/AugustoMello09/Locadora/assets/101072311/384ee98a-87b1-4f19-8d53-cb61e64203c6)\n\n### Fluxo com comunicação assíncrona: ⏱️\n\n- Após o processamento bem-sucedido, o Payment Service coloca uma mensagem na fila de emissão-pagamento para notificar o Email Service e ele consome essa mensagem enviando para o endereço de e-mail informado.\n\n![as](https://github.com/AugustoMello09/Locadora/assets/101072311/d92f50bf-4be5-40a0-be8e-b6f39769de8e)\n\n## Documentação centralizada com Swagger: 📗\n\n- Centralizamos a documentação do nosso sistema de pagamento usando Swagger, proporcionando uma visão unificada e acessível de todos os nossos serviços\n\n![swagger](https://github.com/AugustoMello09/Locadora/assets/101072311/ac154f64-3fbe-4fef-b34a-75c016a96fbf)\n\nhttps://github.com/AugustoMello09/Locadora/assets/101072311/7ccaf2f8-af35-44c9-9a45-6b7e29a93341\n\n__Acesse a documentação do projeto:__\n\n- __Acesse:__ http://localhost:8080/swagger-ui.html para visualizar os endpoints.\n\n## Configuração centralizada com Config Service: ⚙️\n\n- O serviço de Configuração Centralizada (Config Service) do projeto VinhoJá é uma parte essencial da arquitetura de microsservice. Ele é responsável por centralizar e gerenciar as configurações de todos os microsservices da aplicação.\n\n__Acesse o repositório do config service:__\n\n- __Acesse:__ https://github.com/AugustoMello09/vinhoja-config-server\n\n## Distributed Tracing com ZIPKIN: 👁️‍🗨️\n\n- Implementação Distributed Tracing no sistema utilizando o Zipkin, uma ferramenta poderosa para monitorar e analisar o fluxo de solicitações em ambientes distribuídos.\n\n![zip](https://github.com/AugustoMello09/Locadora/assets/101072311/f84ac63b-062d-46a2-a3f1-99edf31890be)\n\nhttps://github.com/AugustoMello09/Locadora/assets/101072311/7877152b-9175-409f-854a-89f09f7ece97\n\n__Acesse a documentação do projeto:__\n\n- __Acesse:__ http://localhost:9411/zipkin/ para visualizar o Zipkin.\n\n### Ferramentas e Tecnologias usadas no Back-end 🧱\n\u003cdiv style=\"display: inline_block\"\u003e\u003cbr\u003e\n\n\u003cimg align=\"center\" alt=\"Augusto-Java\" height=\"70\" width=\"70\" src=\"https://github.com/devicons/devicon/blob/master/icons/java/java-original.svg\"\u003e\n\u003cimg align=\"center\" alt=\"Augusto-SpringBoot\" height=\"70\" width=\"70\" src=\"https://raw.githubusercontent.com/devicons/devicon/1119b9f84c0290e0f0b38982099a2bd027a48bf1/icons/spring/spring-original-wordmark.svg\"\u003e\n\u003cimg align=\"center\" alt=\"Augusto-POSTGRESQL\" height=\"60\" width=\"60\" src=\"https://raw.githubusercontent.com/devicons/devicon/1119b9f84c0290e0f0b38982099a2bd027a48bf1/icons/postgresql/postgresql-original-wordmark.svg\"\u003e\n\u003cimg align=\"center\" alt=\"Augusto-Rabbitmq\" height=\"40\" width=\"40\"\nsrc=\"https://www.svgrepo.com/show/303576/rabbitmq-logo.svg\"\u003e\n\u003cimg align=\"center\" alt=\"Augusto-Docker\" height=\"70\" width=\"70\" src=\"https://raw.githubusercontent.com/devicons/devicon/1119b9f84c0290e0f0b38982099a2bd027a48bf1/icons/docker/docker-original.svg\"\u003e\n\u003cimg align=\"center\" alt=\"Augusto-Java\" height=\"40\" width=\"40\" src=\"https://github.com/AugustoMello09/Locadora/assets/101072311/a895137a-8126-4eed-8a5c-9934ed30401b\"\u003e\n\n\u003c/div\u003e\n\n## Execute o projeto 👁‍🗨\n\n### Backend 🧱\n\n__Pré-requisitos:__ Java 17 e Docker\n\n__Clone o repositório do projeto__\n\n~~~~~~\ngit clone https://github.com/AugustoMello09/VinhoJa.git\n~~~~~~\n\n### Configurando o projeto local 🏠\n\n__Configurando o ambiente:__\n\n- Navegue até o diretório do projeto\n\n~~~~~~\ncd vinhoJa/vinhoJa-Backend\n~~~~~~\n\n- Acesse todos os diretórios do projeto, utilize o comando mvn install para instalar todas as dependências necessárias:\n\n~~~~~~\n# exemplo\ncd vinhoJa-Backend/users\n\n./mvnw install\n~~~~~~\n\n- Acesse o diretório de cada microsserviço (por exemplo, User Service, Card Service).\nAbra o arquivo de configuração application.yml.\n\n- Modifique as configurações necessárias, como URLs dos serviços dependentes.\n\n~~~~~~\nmanagement:\n  tracing:\n    sampling:\n      probability: 1.0\n  zipkin:\n    tracing:\n      endpoint: http://localhost:9411/api/v2/spans\n\n///////////////////////////////////////////////////\n\n  config:\n    import: optional:configserver:http://localhost:8888\n\n  rabbitmq:\n    host: localhost       \n~~~~~~\n\n__Senhas de App__\n\n__Acesse a documentação do google:__\n\n- __Acesse:__ https://support.google.com/accounts/answer/185833 para visualizar o como criar a senha de App.\n\n- Tenha a verificação em duas etapas ativada.\n\n![1](https://github.com/AugustoMello09/vinhoja-config-server/assets/101072311/fc6e1105-e9bf-4291-8b0c-7a4ff728d509)\n\n- Acesse o local para criar a senha de App\n\n![Screenshot_3](https://github.com/AugustoMello09/vinhoja-config-server/assets/101072311/1789f4a3-c6bd-44d5-8a71-528d84992ba4)\n\n- Crie a senha de App\n\n![Screenshot_2](https://github.com/AugustoMello09/vinhoja-config-server/assets/101072311/a547b0cb-6c0d-4483-ae94-53fe67cb607f)\n\n- Acesse o diretório do microsservice email e coloque suas informações de email\n\n`\n🔴: o email com a verificação em duas etapas.\n🟢: a senha de App que criou.\n`\n\n![email](https://github.com/AugustoMello09/vinhoja-config-server/assets/101072311/c7dd815d-fa7a-4c07-9f5a-7ca9286f5b27)\n\n- Crie um network\n\n~~~~~~\ndocker network create local\n~~~~~~\n\n- Suba o container do serviço ZIPKIN e Rabbitmqp\n\n~~~~~~\ndocker run -d -p 9411:9411 --net local --name zipkin openzipkin/zipkin:latest\n\ndocker run -d -it --rm --name rabbitmq --net local -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management\n~~~~~~\n\n- Acesse o rabbit para criar a fila de emissao-pagamento\n\n- __Acesse:__ http://localhost:15672/ para visualizar o Rabbitmq.\n\n![criarfila](https://github.com/AugustoMello09/Locadora/assets/101072311/8bb9f159-df0b-479d-b5f0-5d9d316cdf3a)\n\n- Suba os microsservices na seguinte ordem:\n\n`config-service, euraka-service, gateway e etc...`\n\n~~~~~~\n# Exemplo para o User Service\ncd user-service\n./mvnw spring-boot:run\n~~~~~~\n\n### Configurando o projeto para usar Docker-compose 🐳\n\n__Executar com Docker-compose:__\n\n- Navegue até o diretório do projeto\n\n~~~~~~\ncd vinhoJa/vinhoJa-Backend\n~~~~~~\n\n- Acesse todos os diretórios do projeto, utilize o comando mvn install para instalar todas as dependências necessárias:\n\n~~~~~~\n# exemplo\ncd vinhoJa-Backend/users\n\n./mvnw install\n~~~~~~\n\n- Acesse o diretório de cada microsserviço (por exemplo, User Service, Card Service).\nAbra o arquivo de configuração application.yml.\n\n- Modifique as configurações necessárias, como URLs dos serviços dependentes.\n\n~~~~~~\nmanagement:\n  tracing:\n    sampling:\n      probability: 1.0\n  zipkin:\n    tracing:\n      endpoint: http://zipkin-service:9411/api/v2/spans\n\n///////////////////////////////////////////////////\n\n  config:\n    import: optional:configserver:http://config-service:8888\n\n///////////////////////////////////////////////////\n\n rabbitmq:\n    host: rabbit-mq  // nome do serviço lá no docker-compose         \n~~~~~~\n\n- Navegue até o local do arquivo docker-compose.yml e suba\n\n~~~~~~\ncd vinhoJa-Backend\n\ndocker-compose up -d\n~~~~~~\n\n- __ATENÇÃO__: a primeira vez que sobe o conteiner da o seguinte erro:\n`dependency failed to start: container config-service is unhealthy`.\n\n- Acesse o rabbit para criar a fila de emissao-pagamento\n\n![criarfila](https://github.com/AugustoMello09/Locadora/assets/101072311/8bb9f159-df0b-479d-b5f0-5d9d316cdf3a)\n\n- Suba o docker-compose novamente.\n\n~~~~~~\ncd vinhoJa-Backend\n\ndocker-compose up -d\n~~~~~~\n\n### Frontend 🌐\n\n__Pré-requisitos:__ Angular\n\n__Executar__\n\n- Certifique-se de ter o Node.js e o Angular CLI instalados em seu ambiente.\n- Navegue até a pasta do projeto front-end:\n\n~~~~~~\ncd vinhoJa/vinhoJa-Frontend\n~~~~~~\n\n__Instale as dependências do projeto:__\n\n~~~~~~\nnpm install\n~~~~~~\n\n__Inicie a aplicação:__\n\n~~~~~~\nng serve\n~~~~~~\n\n__ATENÇÃO__ : não use os dados do cartão de crédito real.\n\n- __Acesse:__ https://www.4devs.com.br/gerador_de_numero_cartao_credito para gerar os dados do cartão.\n\n### Ferramentas e Tecnologias usadas no Frontend ⚙️\n\u003cdiv style=\"display: inline_block\"\u003e\u003cbr\u003e\n\n\u003cimg align=\"center\" alt=\"Augusto-HTML\" height=\"50\" width=\"50\" src=\"https://raw.githubusercontent.com/devicons/devicon/1119b9f84c0290e0f0b38982099a2bd027a48bf1/icons/html5/html5-plain.svg\"\u003e\n\u003cimg align=\"center\" alt=\"Augusto-CSS\" height=\"50\" width=\"50\" src=\"https://raw.githubusercontent.com/devicons/devicon/1119b9f84c0290e0f0b38982099a2bd027a48bf1/icons/css3/css3-original.svg\"\u003e\n\u003cimg align=\"center\" alt=\"Augusto-JAVASCRIP\" height=\"50\" width=\"50\" src=\"https://raw.githubusercontent.com/devicons/devicon/1119b9f84c0290e0f0b38982099a2bd027a48bf1/icons/javascript/javascript-plain.svg\"\u003e\n\u003cimg align=\"center\" alt=\"Augusto-TYPESCRIPT\" height=\"60\" width=\"60\" src=\"https://img.icons8.com/?size=512\u0026id=nCj4PvnCO0tZ\u0026format=png\"\u003e\n\u003cimg align=\"center\" alt=\"Augusto-ANGULAR\" height=\"50\" width=\"50\" src=\"https://raw.githubusercontent.com/get-icon/geticon/fc0f660daee147afb4a56c64e12bde6486b73e39/icons/angular-icon.svg\"\u003e\n\n\u003c/div\u003e\n\n### Entre em contato  \n\nPara mais informações sobre o projeto ou para entrar em contato, você pode me encontrar através dos canais abaixo:\n\n\u003cdiv style=\"display: flex\"\u003e\n\n  \u003ca href=\"https://www.linkedin.com/in/jos%C3%A9-augusto-mello-794a94234\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/-LinkedIn-%230077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\" target=\"_blank\"\u003e\u003c/a\u003e\n \u003ca href=\"mailto:joseaugusto.Mello01@gmail.com\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Gmail-D14836?style=for-the-badge\u0026logo=gmail\u0026logoColor=white\" target=\"_blank\"\u003e\u003c/a\u003e   \n\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugustomello09%2Fvinhoja","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faugustomello09%2Fvinhoja","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugustomello09%2Fvinhoja/lists"}