{"id":15129876,"url":"https://github.com/clacerda/geekshoppingdotnetcore6","last_synced_at":"2026-02-11T15:02:04.628Z","repository":{"id":256835970,"uuid":"856370888","full_name":"clacerda/GeekShoppingDotNetCore6","owner":"clacerda","description":"Loja virtual - Desenvolvida à partir de um curso de .Net Core 6 com RabbitMQ e Docker.  Venho fazendo melhorias interessantes, como uma arquitetura de infraestrutura através de docker-compose e armazenamento de arquivos através de banco não relacional, além de buscar manter o padrão SOLID.","archived":false,"fork":false,"pushed_at":"2024-10-09T20:18:04.000Z","size":48430,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T19:22:12.353Z","etag":null,"topics":["api","api-gateway","arquitetura","aspnet-core","csharp","css","docker","docker-compose","dotnetcore6","entity-framework-core","identity-management","javascript","mongodb","mysql","rabbitmq"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clacerda.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-09-12T13:20:53.000Z","updated_at":"2024-10-09T20:18:08.000Z","dependencies_parsed_at":"2024-09-16T14:18:17.478Z","dependency_job_id":null,"html_url":"https://github.com/clacerda/GeekShoppingDotNetCore6","commit_stats":null,"previous_names":["clacerda/geekshoppingdotnetcore6"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/clacerda/GeekShoppingDotNetCore6","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clacerda%2FGeekShoppingDotNetCore6","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clacerda%2FGeekShoppingDotNetCore6/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clacerda%2FGeekShoppingDotNetCore6/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clacerda%2FGeekShoppingDotNetCore6/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clacerda","download_url":"https://codeload.github.com/clacerda/GeekShoppingDotNetCore6/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clacerda%2FGeekShoppingDotNetCore6/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269963123,"owners_count":24504298,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["api","api-gateway","arquitetura","aspnet-core","csharp","css","docker","docker-compose","dotnetcore6","entity-framework-core","identity-management","javascript","mongodb","mysql","rabbitmq"],"created_at":"2024-09-26T02:22:08.187Z","updated_at":"2026-02-11T15:02:04.579Z","avatar_url":"https://github.com/clacerda.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GeekShopping Web - Loja virtual em .Net\n\n \nEste projeto é originalmente desenvolvido no curso: # [Arquitetura de Microsserviços do 0 com ASP.NET, .NET 6 e C#](https://www.udemy.com/course/microservices-do-0-a-gcp-com-dot-net-6-kubernetes-e-docker)\nO curso é muito interessante, mas o projeto em si não teve a profundidade que eu procurava, portanto, decidi por conta iniciar uma série de evoluções no projeto afim de torná-lo o que eu buscava aprender. Não que isto seja um demérito ao curso, porém, estou encarando isto como uma oportunidade para o aperfeiçoamento pessoal.\nO sistema conta com as seguintes tecnologias (já contando com melhorias particulares):\n\n - Duende Identity -\u003e Servidor de autenticação Auth2;\n - .Net Core 6 -\u003e API's;\n - RabbitMQ -\u003e Menssageria;\n - Ocelot -\u003e Api Gateway;\n - MySql -\u003e Armazenamento de dados;\n - MongoDB -\u003e Armazenamento de imagens;\n\n## Releases planejadas...\n - ~~Alterar cadastro de produtos: Ao invés de cadastrar url de imagens, armazená-las no mongoDb;~~ Completo\n - ~~Alterar cadastro de produtos: Cadastrar mais de uma imagem para o mesmo produto;~~ Completo\n - ~~Alterar cadastro de produtos: Carregar imagens como ícones no momento do cadastro;~~ Completo\n - ~~HomePage: Incluir 'Carousel' para que as imagens possam ser paginadas na home;~~ Completo\n - Integração com whatsApp;\n - Compartilhamento de produto em redes sociais;\n - ~~Calculo de frete~~;\n - ~~Validação de cartão de crédito~~;\n    - ~~Inclusão da bandeira de cartão de crédito utilizado - Awsome fonts.~~\n    - ~~Layout adaptativo para outros métodos de pagamento.~~\n - Envio de e-mail;\n - Infraestrutura com docker-compose;\n    -  Criação de Projeto específico para manter a infraestrutura: GeekShopping.Infraestructure\n        1. ~~MongoDB;~~ Completo\n        2. ~~mysql:8.0;~~ Completo\n        3. ~~rabbitmq:3;~~ Completo\n        4. API's;\n        5. FrontEnd (AspNet);\n - TDD XUnit;\n - Etc..\n\n## Arquitetura\n\n```mermaid\ngraph TD;\n    subgraph APIS [APIs e Serviços]\n        GeekShopping.ProductAPI\n        GeekShopping.CouponAPI\n        GeekShopping.CartAPI\n        GeekShopping.OrderAPI\n        GeekShopping.Email\n        GeekShopping.PaymentApi\n    end\n\n    subgraph MQ [Mensageria]\n        RabbitMQ\n    end\n   subgraph MG [MongoDatabase]\n        GeekShopping.ProductAPI--\u003eMongoDB\n    end\n\n    subgraph MS [MySQLDatabase]\n        MySQLDatabase\n    end\n\n    GeekShopping.Web--\u003e IdentityServer-Duende\n    GeekShopping.Web--\u003eAPIS\n    GeekShopping.CartAPI--\u003eRabbitMQ\n    GeekShopping.Email--\u003eRabbitMQ\n    GeekShopping.PaymentApi--\u003eRabbitMQ\n    GeekShopping.OrderAPI--\u003eRabbitMQ\n    GeekShopping.CouponAPI\u003c--\u003eGeekShopping.CartAPI\n    APIS\u003c--\u003eMS\n```\n\n## Tutorial\nPara executar o projeto é muito simples, basta executar a seguinte sequência:\n- GeekShopping.Infrastructure\n    - O projeto Infrastructure vai cediar tudo que se relaciona a sustenção de ambientes.\n    - Ao executá-lo, deve ser criado os bancos de dados e o serviço de RabbitMQ.\n- Após isto, pode verificar se na solution, na opção \"Configurar projetos de inicialização\", estão sinalizados para iniciar os seguintes projetos:\n    - GeekShopping.ApiGateway \n\t- GeekShopping.CartApi\n\t- GeekShopping.CouponApi\n\t- GeekShopping.Email\n\t- GeekShopping.IdentityServer\n\t- GeekShopping.Infrastructure\n\t- GeekShopping.OrderAPI\n\t- GeekShopping.PaymentAPI\n\t- GeekShopping.Product\n\t- geekshopping.Web\n- Nota: Os projetos GeekShopping.MessageBus e GeekShopping.PaymentProcessor não devem ser iniciados automaticamente.\n- Após isto, o projeto deve carregar todas as API's através do swagger e o frontend no endereço: https://localhost:4430\n![Home Page](https://github.com/clacerda/GeekShoppingDotNetCore6/blob/main/geekshopping.Web/wwwroot/images/home.PNG?raw=true)\n\n## Novidades:\n- Atualização 18/09\n    - O checkout já conta com uma validação de cartão de crédito tanto no front-end como no back-end;\n    - Agora, ao digitar o número do cartão, a aplicação identifica em tempo real (javascript) a bandeira do cartão;\n    - Estamos evoluindo para um layout adaptativo dos pagamentos, então será mais simples de adicionar outras features de pagamento como boletos, pix ou... Bitcoin?!\n ![Home Page](https://github.com/clacerda/GeekShoppingDotNetCore6/blob/main/geekshopping.Web/wwwroot/images/payment_creditCard.PNG?raw=true)\n\n ## Novidades:\n- Atualização 03/10\n    - O checkout merecia uma forma de valorizar o frete, e agora chegou! Inicialmente pensei em usar o webservice do correio, mas fui surpreendido com o encerramento do serviço e a burocracia para trabalhar com as Api's novas.\n    - Por conta da burocracia, acabei fazendo um benchmark com as ferramentas do mercado e encontrei a melhor envio (#melhorenvio) e foi muito simples usar a api dos caras, além de terem uma infinidade de funções, o mais legal é o sandbox deles!\n    - Link da API melhorEnvio: https://sandbox.melhorenvio.com.br/api/v2/me/shipment/calculate\n ![Home Page](https://github.com/clacerda/GeekShoppingDotNetCore6/blob/main/geekshopping.Web/wwwroot/images/MelhorEnvio.PNG?raw=true)\n    - Além disto, alguns detalhes que já estavam no backlog deste projeto foram corrigidos, por exemplo, o bug do Contador de produtos na cesta.\n\n\n## Suporte\nPara suporte, mande um email para claudiovieira_jr@hotmail.com ou entre em nosso canal do Slack.\n\n\n## Local de partida\nComo informado, este projeto iniciou-se com o curso da Erudio, o cara realmente é fera e vale muito participar do treinamento. Caso queira comparar o projeto inicial e o meu projeto atual, segue o link:\n\n- Git do projeto original: https://github.com/leandrocgsi/erudio-microservices-dotnet6\n- Cursos da  empresa: https://pub.erudio.com.br/meus-cursos\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclacerda%2Fgeekshoppingdotnetcore6","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclacerda%2Fgeekshoppingdotnetcore6","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclacerda%2Fgeekshoppingdotnetcore6/lists"}