{"id":24149242,"url":"https://github.com/denisson-pereira/clean-architecture-store","last_synced_at":"2026-04-15T14:02:52.379Z","repository":{"id":257893894,"uuid":"864525530","full_name":"Denisson-Pereira/clean-architecture-store","owner":"Denisson-Pereira","description":"O Clean Architecture Store é um projeto full stack baseado no modelo client-server, que adota a Clean Architecture e os princípios da Programação Orientada a Objetos.","archived":false,"fork":false,"pushed_at":"2024-10-23T00:23:47.000Z","size":6367,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T17:28:57.581Z","etag":null,"topics":["auth","clean-architecture","clean-code","css","design-patterns","html","java","javascript","jwt","jwt-authentication","mysql","solid","spring-boot","spring-security","swagger"],"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/Denisson-Pereira.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":"2024-09-28T13:02:59.000Z","updated_at":"2024-10-29T00:03:42.000Z","dependencies_parsed_at":"2024-10-17T10:26:30.369Z","dependency_job_id":null,"html_url":"https://github.com/Denisson-Pereira/clean-architecture-store","commit_stats":null,"previous_names":["denisson-pereira/clean-architecture-store"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Denisson-Pereira/clean-architecture-store","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Denisson-Pereira%2Fclean-architecture-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Denisson-Pereira%2Fclean-architecture-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Denisson-Pereira%2Fclean-architecture-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Denisson-Pereira%2Fclean-architecture-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Denisson-Pereira","download_url":"https://codeload.github.com/Denisson-Pereira/clean-architecture-store/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Denisson-Pereira%2Fclean-architecture-store/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31844329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T13:28:40.153Z","status":"ssl_error","status_checked_at":"2026-04-15T13:28:29.396Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["auth","clean-architecture","clean-code","css","design-patterns","html","java","javascript","jwt","jwt-authentication","mysql","solid","spring-boot","spring-security","swagger"],"created_at":"2025-01-12T08:37:13.996Z","updated_at":"2026-04-15T14:02:52.350Z","avatar_url":"https://github.com/Denisson-Pereira.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clean-architecture-store\n \n![Web 1](./github/banner.gif) \n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Denisson-Pereira/clean-architecture-store\"\u003e\u003cimg src=\"https://img.shields.io/github/languages/top/Denisson-Pereira/clean-architecture-store?color=blue\" alt=\"Primary Language\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Denisson-Pereira/clean-architecture-store/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-raw/Denisson-Pereira/clean-architecture-store\" alt=\"Open Issues\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Denisson-Pereira/clean-architecture-store/graphs/contributors\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors/Denisson-Pereira/clean-architecture-store\" alt=\"Contributors\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Denisson-Pereira/clean-architecture-store/commits/main\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/Denisson-Pereira/clean-architecture-store\" alt=\"Last Commit\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Denisson-Pereira/clean-architecture-store/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/Denisson-Pereira/clean-architecture-store\" alt=\"Stars\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# 📝 Sumário\n\n1. [Sobre o Projeto](#-sobre-o-projeto)\n2. [Arquitetura de software](#-arquitetura-de-software)\n   - [Sobre](#-sobre)\n   - [Sobre a Clean Architecture](#-sobre-a-clean-architecture)\n3. [Stack Tecnológica e Descrições](#-stack-tecnológica-e-descrições)\n   - [Backend](#-backend)\n        - [Princípios SOLID](#-princípios-solid)\n        - [Design patterns](#-design-patterns)\n        - [Estrutura do Banco de Dados](#-estrutura-do-banco-de-dados)\n   - [Frontend](#-frontend)\n   - [Design](#-design)\n4. [Pré-requisitos](#-pré-requisitos)\n5. [Como Executar o Projeto](#-como-executar-o-projeto)\n   - [Clonar Repositório Git](#-clonar-repositório-git)\n   - [Acessar Backend](#-acessar-backend)\n   - [Documentação](#-documentação)\n6. [Visuals and Screenshots](#-visuals-and-screenshots)\n   - [Software em Ação](#-software-em-ação)\n7. [Edição](#-edição)   \n8. [Aguarde! Ainda Não Terminou!](#-aguarde-ainda-não-terminou)\n9. [Licença](#-licença)\n10. [Autor](#-autor)\n\n# 📑 Sobre o projeto \n\nO **Clean Architecture Store** é um projeto *full stack* baseado no modelo *client-server*, que adota a **Clean Architecture** e os princípios da **Programação Orientada a Objetos**. Desenvolvido com foco nas regras de negócio de um aplicativo de delivery de alimentos, o *back-end* foi implementado em **Java** com **Spring Boot**, enquanto o banco de dados utiliza **MySQL**. O *front-end* foi construído com **HTML**, **CSS** e **JavaScript**, proporcionando uma interface simples e eficaz. O código é projetado seguindo padrões de design e boas práticas, como a abstração de entidades, os princípios **SOLID** e a aplicação de **Design Patterns**.\n\nPara garantir a segurança da aplicação, foram implementados mecanismos robustos como encapsulamento de dados, **Spring Security** para controle de acesso e criptografia de senhas com **BCrypt**. A autenticação dos usuários é feita por meio de **JWT** (*JSON Web Token*), que assegura a proteção e integridade das sessões autenticadas. Dessa forma, o projeto combina eficiência, segurança e organização, alinhando-se aos melhores padrões de desenvolvimento de software.\n\n# 🏢 Arquitetura de software\n\n## 📖 Sobre\n\nEste projeto foi desenvolvido com base nos princípios da **Clean Architecture**, que visa criar uma estrutura de código organizada, modular e altamente escalável. **A Clean Architecture** promove a separação clara de responsabilidades entre camadas do sistema, mantendo o domínio da aplicação isolado de detalhes técnicos, como *frameworks* ou bancos de dados. Isso facilita a manutenção, testes e evolução da aplicação ao longo do tempo, permitindo a fácil adaptação a novas necessidades ou tecnologias.\n\n\u003cimg src=\"./github/clean.png\" min-width=\"100px\" max-width=\"100px\" width=\"300px\" align=\"right\" alt=\"Computador iuriCode\"\u003e\n\nNo projeto, temos duas entidades principais que compartilham muitas características em comum: *Products* e *Categories*. Com isso em mente, foi projetada uma estrutura abstrata que permite o reuso de código e o fortalecimento da arquitetura. Essa estrutura é composta por camadas de *entities*, *useCases*, *exceptions*, *interfaces* e *controllers*, garantindo que os comportamentos comuns entre as entidades sejam implementados de forma padronizada e extensível. Assim, cada nova entidade pode herdar essa base, mantendo a consistência e a simplicidade do projeto, enquanto possibilita adaptações específicas de acordo com as necessidades de cada caso de uso.\n\n## 🏢 Sobre a Clean Architecture\n\n| **Camada**                        | **Descrição**                                                                                                                                                               |\n|-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **Entities (Entidades)**          | Representam as regras de negócio e a lógica central do sistema, sendo independentes de frameworks externos e bibliotecas. Nesta aplicação, as entidades `Product` e `Category` são exemplos claros, onde foi aplicada a abstração para reuso e consistência. |\n| **Use Cases (Casos de Uso)**      | Os casos de uso são responsáveis por orquestrar as interações entre as entidades e outros componentes da aplicação, executando ações específicas da lógica de negócio. No projeto, isso inclui operações como a adição de um produto ao carrinho ou a criação de uma nova categoria. |\n| **Controllers (Controladores)**   | Fazem a interface entre a camada de entrada (web, dispositivos, etc.) e os casos de uso, processando requisições do usuário e convertendo os dados para serem utilizados pelos casos de uso. No projeto, o controle de requisições HTTP para manipulação de produtos e categorias é feito pelos controladores. |\n| **Gateways (Interfaces Externas)**| Fornecem a comunicação com serviços externos, como bancos de dados ou APIs. A aplicação se comunica com o banco MySQL através de gateways que isolam os detalhes de implementação da camada de persistência. |\n| **Presenters (Apresentadores)**   | São responsáveis por preparar e formatar os dados para serem exibidos, como na interface do usuário (UI) ou via APIs. Eles traduzem a resposta dos casos de uso para um formato que o front-end ou sistemas externos possam consumir. |\n| **External Interfaces (Interfaces Externas)** | São serviços, APIs ou bibliotecas externas que interagem com o sistema, como gateways de pagamento ou serviços de busca de produtos. Essa camada lida com essas integrações de forma isolada das regras de negócio centrais. |\n\n# 📚 Stack Tecnológica e Descrições\n\n## • Backend\n\n[![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge\u0026logo=openjdk\u0026logoColor=white)](https://www.java.com/)\n![Maven](https://img.shields.io/badge/Maven-C71A36?style=for-the-badge\u0026logo=apache-maven\u0026logoColor=white)\n[![Spring](https://img.shields.io/badge/spring-%236DB33F.svg?style=for-the-badge\u0026logo=spring\u0026logoColor=white)](https://spring.io/)\n![MySQL](https://img.shields.io/badge/mysql-4479A1.svg?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)\n![Swagger](https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge\u0026logo=swagger\u0026logoColor=white)\n![JWT](https://img.shields.io/badge/JWT-000000?style=for-the-badge\u0026logo=jsonwebtokens\u0026logoColor=white)\n![BCrypt](https://img.shields.io/badge/BCrypt-FFA500?style=for-the-badge\u0026logo=hashicorp\u0026logoColor=white)\n![Spring Security](https://img.shields.io/badge/Spring%20Security-6DB33F?style=for-the-badge\u0026logo=spring\u0026logoColor=white)\n\nO backend deste projeto foi desenvolvido com o objetivo de fornecer dados para uma loja de comidas, além de garantir uma autenticação segura para os usuários. Utilizando **Java** e **Spring Boot**, a aplicação oferece uma estrutura robusta e escalável, permitindo gerenciar produtos, categorias e usuários de forma eficiente. A documentação da **API** foi realizada utilizando o **Swagger**, facilitando a compreensão e a interação com os endpoints disponíveis, promovendo uma experiência de desenvolvimento mais fluida e organizada.\n\n### 🏢 Princípios SOLID\n\nA arquitetura deste projeto é fortemente influenciada pelos princípios SOLID, que promovem um design de software limpo e sustentável. Abaixo estão os princípios observados na aplicação:\n\n**1. Princípio da Responsabilidade Única (SRP)**\nCada classe e módulo tem uma única responsabilidade:\n- **Controladores** (ex: `AbstractController`) lidam exclusivamente com a lógica de controle e as interações de entrada e saída.\n- **Repositórios** (ex: `JpaCategoryImpl`) se concentram em operações de persistência de dados.\n- **Casos de uso** (ex: `CreateAbstractUseCase`, `DeleteByIdAbstractUseCase`) gerenciam a lógica de negócios específica, como criar ou deletar entidades.\n\n**2. Princípio Aberto/Fechado (OCP)**\nAs classes estão abertas para extensão, mas fechadas para modificação:\n- As classes abstratas (como `AbstractController`, `AbstractEntity` e `AbstractRepository`) permitem que você crie novas implementações ou classes que estendam seu comportamento sem modificar o código existente.\n\n**3. Princípio da Substituição de Liskov (LSP)**\nAs subclasses devem ser substituíveis por suas superclasses:\n- As classes que estendem `AbstractEntity`, como `Category`, podem ser utilizadas em qualquer lugar que um `AbstractEntity` seja esperado, sem que o comportamento do programa seja afetado negativamente.\n\n**4. Princípio da Segregação de Interfaces (ISP)**\nAs interfaces devem ser específicas e não forçar classes a implementar métodos que não usam:\n- A interface `AbstractRepository` define métodos que são relevantes para qualquer repositório que implemente a persistência de uma entidade, evitando a implementação de métodos desnecessários.\n\n**5. Princípio da Inversão de Dependência (DIP)**\nDependências devem ser de abstrações, não de implementações concretas:\n- As classes de casos de uso dependem de abstrações (interfaces como `AbstractRepository`) em vez de implementações concretas, facilitando a troca de implementações de repositórios e aumentando a testabilidade do código.\n\nEsses princípios foram fundamentais para garantir que o sistema seja escalável, testável e de fácil manutenção.\n\n### 💅 Design patterns\n\nA aplicação adota vários padrões de design que contribuem para sua estrutura modular, escalável e de fácil manutenção. Os principais padrões observados são:\n\n**1. Template Method**\nO padrão Template Method é utilizado na classe `UpdateAbstractByIdUseCase`, onde o método `execute()` define o esqueleto da operação de atualização. As subclasses devem implementar o método `updateFields(T entity, DTO dto)`, permitindo que a lógica específica de atualização seja definida pelas classes concretas.\n\n**2. Repository Pattern**\nO padrão Repository é empregado através da interface `AbstractRepository`, que abstrai a lógica de acesso a dados. Isso permite que a aplicação interaja com o armazenamento de dados sem se preocupar com os detalhes da implementação.\n\n### 💾 Estrutura do Banco de Dados\n\nO banco de dados `foodhub` contém três tabelas principais: `category`, `product` e `user`.\n\n### Tabela: category\n\n| Campo   | Tipo         | Descrição                               |\n|---------|--------------|-----------------------------------------|\n| id      | int       | Identificador único da categoria        |\n| name    | varchar(255) | Nome da categoria                       |\n| image   | varchar(255) | URL da imagem da categoria              |\n\n**Exemplo de Dados**:\n\n| id | name    | image |\n|----|---------|-------|\n| 1  | Burger  | [Link](https://firebasestorage.googleapis.com/v0/b/foodhub-ba95f.appspot.com/o/categorias%2FMask%20Group.png?alt=media\u0026token=d42d4657-9af1-4ac4-84e6-a2774c183cfd) |\n| 2  | Donat   | [Link](https://firebasestorage.googleapis.com/v0/b/foodhub-ba95f.appspot.com/o/categorias%2FMask%20Group%20(1).png?alt=media\u0026token=d6633fe5-d259-4a29-a53c-908de806be2e) |\n\n### Tabela: product\n\n| Campo          | Tipo         | Descrição                          |\n|----------------|--------------|------------------------------------|\n| id             | int       | Identificador único do produto      |\n| name           | varchar(255) | Nome do produto                    |\n| evaluation     | varchar(255) | Avaliação do produto               |\n| description    | varchar(255) | Descrição do produto               |\n| price          | varchar(255) | Preço do produto                   |\n| category       | varchar(255) | Categoria do produto               |\n| establishment   | varchar(255) | Estabelecimento onde o produto está disponível |\n| image          | varchar(255) | URL da imagem do produto           |\n\n**Exemplo de Dados**:\n\n| id | name                       | evaluation | description                                      | price | category | establishment | image                                                                                                         |\n|----|----------------------------|------------|--------------------------------------------------|-------|----------|---------------|---------------------------------------------------------------------------------------------------------------|\n| 1  | Margherita Bliss           | 5          | A classic Margherita with fresh tomatoes...      | 49999 | pizza    | Subway        | [Link](https://firebasestorage.googleapis.com/v0/b/foodhub-ba95f.appspot.com/o/estabelecimentos%2FRed%20Pizza.png?alt=media\u0026token=66048747-3137-49d2-849e-e7118683761a) |\n| 2  | Pepperoni Supreme          | 4          | Pepperoni pizza loaded with spicy slices...      | 3999  | pizza    | Subway        | [Link](https://firebasestorage.googleapis.com/v0/b/foodhub-ba95f.appspot.com/o/estabelecimentos%2FChicken%20wailan.png?alt=media\u0026token=21eb816b-f5b7-42a7-b134-b8144cb95ff6) |\n| 3  | BBQ Chicken Delight        | 3          | Enjoy a BBQ Chicken pizza with tangy sauce...   | 1999  | pizza    | Jimmy John's  | [Link](https://firebasestorage.googleapis.com/v0/b/foodhub-ba95f.appspot.com/o/estabelecimentos%2FRed%20Pizza.png?alt=media\u0026token=66048747-3137-49d2-849e-e7118683761a) |\n| 4  | Veggie Garden Extravaganza | 2          | Indulge in a Veggie Delight with mushrooms...    | 4499  | pizza    | Jimmy John's  | [Link](https://firebasestorage.googleapis.com/v0/b/foodhub-ba95f.appspot.com/o/estabelecimentos%2FChicken%20wailan.png?alt=media\u0026token=21eb816b-f5b7-42a7-b134-b8144cb95ff6) |\n\n### Tabela: user\n\n| Campo   | Tipo         | Descrição                               |\n|---------|--------------|-----------------------------------------|\n| id      | int       | Identificador único do usuário          |\n| name    | varchar(255) | Nome do usuário                         |\n| login   | varchar(255) | Login do usuário                        |\n| password| varchar(255) | Senha do usuário                       |\n\n**Exemplo de Dados**:\n\n| id | name     | login    | password   |\n|----|----------|----------|------------|\n| 1  | Pereira     | denisson | $2a$10$T8ASa58EC2GxXAXePudFMOagO844O6zH6Y5dR0i1GDmKa4Il/1TFO |\n| 2  | denisson | den      | $2a$10$8n5UdTlmQTbYHOb//j9vMucj9LEmXGSgsdGRUqsXKNBn0MFYFli96 |\n\n\n## • Frontend\n\n![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge\u0026logo=html5\u0026logoColor=white)\n![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge\u0026logo=css3\u0026logoColor=white)\n![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E)\n\nO *frontend* foi desenvolvido seguindo o padrão **MVC** (*Model-View-Controller*), onde a *view* foi implementada diretamente no **Spring Boot** utilizando **HTML5**, **CSS3** e **JavaScript**. Essa abordagem foi inspirada na **Clean Architecture**, buscando criar uma estrutura limpa e minimalista, evitando a dependência excessiva de *frameworks* e bibliotecas externas. O objetivo é garantir que a aplicação seja simples, escalável e duradoura, facilitando a manutenção e a evolução do sistema ao longo do tempo.\n\n## • Design\n\n![Adobe Photoshop](https://img.shields.io/badge/adobe%20photoshop-%23051D34?style=for-the-badge\u0026logo=adobe%20photoshop\u0026logoColor=%233CA3F7)\n![Figma](https://img.shields.io/badge/figma-%23F24E1E.svg?style=for-the-badge\u0026logo=figma\u0026logoColor=white)\n[![Canvas](https://img.shields.io/badge/Canvas-%2300599C.svg?style=for-the-badge\u0026logo=canvas\u0026logoColor=white)](https://canvas.instructure.com/)\n\nO **Adobe Photoshop** foi empregado para a edição e manipulação de imagens, garantindo qualidade e profissionalismo. Além disso, **Figma** foi utilizado para criar protótipos e layouts, facilitando a visualização e a colaboração no design da interface. Para capturas de tela e materiais educacionais, recorreu-se ao **Canvas**, que oferece uma plataforma intuitiva para a criação e compartilhamento de conteúdos visuais.\n\n# ⚙ Pré-requisitos\n\n**Certifique-se de ter o o Java 17**\n\nAntes de mais nada, é necessário verificar se o Java 17 está instalado em sua máquina. Você pode baixá-lo e instalá-lo a partir do site oficial da Oracle.\n\n![Oracle JDK](https://img.shields.io/badge/Oracle%20JDK-FF6A00?style=for-the-badge\u0026logo=oracle\u0026logoColor=white)\n\n# 🚀 Como executar o projeto\n\n## 👯 Clonar repositório git\n\n```\ngit clone https://github.com/Denisson-Pereira/clean-architecture-store\n```\n\n## 🏧 Acessar Backend\n\nApós clonar o repositório, para acessar o backend, basta digitar o seguinte comando no terminal:\n\n```\ncd backend\n```\n\nVocê pode rodar a aplicação com o seguinte comando:\n\n```\nmvn spring-boot:run\n```\n\nEsse comando irá compilar e rodar a aplicação diretamente no terminal.\n\n![Web 1](./github/spring.gif) \n\n## Logar \n\nPara fazer requisições `POST` pelo terminal Linux, você pode utilizar o comando `curl`. Para instalar o curl via terminal e verificar sua versão, basta digitar os comandos:\n```\nsudo apt update\n```\n\n```\nsudo apt install curl\n```\n\n```\ncurl --version\n```\nAgora, com a sua aplicação rodando na porta 8080, basta fazer a requisição com o comando:\n\n```\ncurl -X POST http://localhost:8080/auth/login -H \"Content-Type: application/json\" -d '{\"login\":\"den\", \"password\":\"12345\"}'\n```\n\nDessa forma, o servidor, caso o login e a senha estejam corretos, responderá com um token, que será utilizado para consumir quaisquer dados em rotas privadas. Por exemplo, para acessar os produtos, basta fazer uma requisição enviando o token no cabeçalho:\n\n```\ncurl -X GET http://localhost:8080/private/products -H \"Authorization: Bearer {TOKEN_AQUI}\"\n```\n\n![Web 1](./github/products.gif) \n\nLembre-se de que os dados do banco estão localizados, a partir da raiz do projeto, em `database/Dump20241015.sql`.\n\n\n## 📱 Documentação\n\nPara acessar a documentação da API, basta visitar a URL:\n\n```\nhttp://localhost:8080/swagger-ui/index.html#/\n```\n\n![Doc 1](./github/swagger.png) \n\n# 📸 Visuals and Screenshots\n\nDê uma espiada no nosso projeto em funcionamento e esclareça todas as suas dúvidas sobre como executá-lo!\n\n\n## 💻 Software em Ação\n\n![Mob 1](./github/software.gif) \n\n\n# 📺 Edição\n\nNo desenvolvimento deste projeto, foram utilizados os seguintes editores:\n\n![IntelliJ IDEA](https://img.shields.io/badge/IntelliJIDEA-000000.svg?style=for-the-badge\u0026logo=intellij-idea\u0026logoColor=white)\n![MySQL Workbench](https://img.shields.io/badge/MySQL_Workbench-005C6C.svg?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)\n\n# 🚨 Aguarde! Ainda não terminou!\n\n\u003eEste projeto está atualmente em desenvolvimento, e está sujeito a futuras atualizações e melhorias conforme evolui. Estamos trabalhando para torná-lo ainda mais robusto e funcional ao longo do tempo. Agradecemos sua paciência e interesse nesta fase inicial.\n\n\u003ePor fim, gostaríamos de ressaltar que este projeto é aberto a contribuições de qualquer pessoa interessada em colaborar. Se você tem ideias, sugestões ou melhorias para oferecer, sinta-se à vontade para participar do desenvolvimento do projeto. Juntos, podemos criar algo incrível e beneficiar a comunidade de forma colaborativa.\n\n\n# 📜 Licença\n\n[![NPM](https://img.shields.io/npm/l/react)](https://github.com/Denisson-Pereira/clean-architecture-store/blob/main/LICENSE) \n\n# 📝 Autor \n\nDenisson Pereira Santos\n\n\u003cdiv align='center'\u003e \n\u003ca href=\"https://www.linkedin.com/in/denisson-pereira\" 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=\"https://denissonpereira.com\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Meu%20Site-%2333cc33?style=for-the-badge\u0026logo=fontawesome\u0026logoColor=white\u0026logoWidth=15\u0026labelColor=black\"  target=\"_blank\"\u003e\u003c/a\u003e \n\u003ca href=\"https://github.com/Denisson-Pereira\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/GitHub-%23181717?style=for-the-badge\u0026logo=github\u0026logoColor=white\u0026logoWidth=15\u0026labelColor=black\"  target=\"_blank\"\u003e\u003c/a\u003e \n\u003ca href=\"https://www.instagram.com/denisson_pereira1?igshid=OGQ5ZDc2ODk2ZA%3D%3D\u0026utm_source=qr\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/-Instagram-%23E4405F?style=for-the-badge\u0026logo=instagram\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003c/div\u003e\u0026nbsp;\u0026nbsp;\n\n![Web 2](./github/banner2.gif) ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenisson-pereira%2Fclean-architecture-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenisson-pereira%2Fclean-architecture-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenisson-pereira%2Fclean-architecture-store/lists"}