{"id":26013276,"url":"https://github.com/19950512/bames","last_synced_at":"2025-09-16T09:56:58.429Z","repository":{"id":274040201,"uuid":"921676531","full_name":"19950512/Bames","owner":"19950512","description":"Bames - Um exemplo de arquitetura e design de um sistema - Backend","archived":false,"fork":false,"pushed_at":"2025-01-30T10:20:28.000Z","size":1009,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-09T13:18:56.722Z","etag":null,"topics":["arquitetura","backend","design-system","php","php84"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/19950512.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-24T12:01:44.000Z","updated_at":"2025-02-25T13:05:44.000Z","dependencies_parsed_at":"2025-09-16T09:56:58.140Z","dependency_job_id":null,"html_url":"https://github.com/19950512/Bames","commit_stats":null,"previous_names":["19950512/bames"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/19950512/Bames","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/19950512%2FBames","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/19950512%2FBames/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/19950512%2FBames/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/19950512%2FBames/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/19950512","download_url":"https://codeload.github.com/19950512/Bames/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/19950512%2FBames/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275399549,"owners_count":25457779,"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-09-16T02:00:10.229Z","response_time":65,"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":["arquitetura","backend","design-system","php","php84"],"created_at":"2025-03-06T01:28:02.864Z","updated_at":"2025-09-16T09:56:58.373Z","avatar_url":"https://github.com/19950512.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# **B A M E S**\n\n## **Descrição**\n\nO **BAMES** é um projeto focado em estudos de arquitetura de software, design de sistemas e testes. Atualmente, o projeto está sendo desenvolvido com um foco específico no Brasil, e, por isso, a documentação e o desenvolvimento seguem a linguagem portuguesa.\n\n## **Arquitetura**\n\nO projeto segue uma arquitetura baseada em sistemas distribuídos, utilizando comunicação assíncrona. A comunicação entre os serviços é realizada por meio de mensageria, com o **RabbitMQ** atuando como broker.\n\n### **Camadas da Arquitetura**\nO projeto é dividido em três camadas principais:\n- **Aplicação**: Responsável pela lógica de negócio e pela interação com o usuário.\n- **Domínio**: Onde residem as regras de negócio e os agregados do sistema.\n- **Infraestrutura**: Onde ficam os detalhes de implementação, como comunicação entre serviços, persistência de dados e integração com outros sistemas.\n\n## **Design**\n\nO design do projeto segue os princípios do **Domain Driven Design (DDD)**, promovendo uma separação clara de responsabilidades entre as camadas **Aplicação**, **Domínio** e **Infraestrutura**. Isso facilita a manutenção, escalabilidade e evolução do sistema.\n\n## **Testes**\n\nO projeto utiliza o **Pest** como framework de testes, oferecendo uma sintaxe simples e intuitiva para escrever testes automatizados.\n\n### **Cobertura de Testes**\nA cobertura de testes do projeto pode ser visualizada diretamente na página [Coverage](https://19950512.github.io/bames).\n\n## **Tecnologias Utilizadas**\n\nO **BAMES** é construído utilizando as seguintes tecnologias:\n- **PHP 8.3**: Versão atual do PHP utilizada no projeto.\n- **Docker Compose**: Utilizado para orquestrar os containers e facilitar o ambiente de desenvolvimento.\n- **PostgreSQL**: Banco de dados relacional utilizado para armazenamento de dados.\n- **Redis**: Utilizado como cache e broker de mensagens.\n- **Nginx**: Servidor web utilizado para balanceamento de carga e proxy reverso.\n- **Firebase JWT**: Para autenticação e controle de acesso via tokens JWT.\n- **RabbitMQ**: Broker de mensagens utilizado para comunicação assíncrona entre os serviços.\n- **Flutter**: Framework utilizado para o desenvolvimento de aplicativos móveis.\n\n## **Como Rodar os Testes e Visualizar a Cobertura**\n\nPara rodar os testes e verificar a cobertura, execute o seguinte comando:\n```bash\ncomposer coverage\n```\n\n### **Problema Comum**\nCaso você encontre o seguinte erro:\n```\nERROR: No code coverage driver is available.\n```\nIsso indica que o **xdebug** não está instalado ou configurado corretamente.\n\n### **Resolução**\n\n1. **Instalar o xdebug para PHP 8.3**:\n    ```bash\n    apt install php8.3-xdebug\n    ```\n\n2. **Configurar o xdebug no PHP**:\n    - No seu sistema **Linux**, edite o arquivo `php.ini` localizado em `/etc/php/8.3/cli/php.ini`.\n    - Adicione as seguintes linhas no final do arquivo:\n    ```conf\n    [xdebug]\n    zend_extension=xdebug.so\n    xdebug.mode=coverage\n    xdebug.start_with_request=yes\n    ```\n\n3. **Reiniciar o servidor PHP**:\n    Após a configuração, reinicie o servidor PHP para aplicar as mudanças.\n\nAgora, a cobertura de testes deve funcionar corretamente.\n\n## **Documentação das APIs**\n\n### **Atualizando a Documentação**\nPara atualizar a documentação das APIs, execute o comando abaixo:\n```bash\nnpx @redocly/cli build-docs src/Infraestrutura/APIs/Autenticacao/doc.yaml -o doc-api-auth.html --title API - Auth\n```\n\n### **Links das Documentações**\n- [API Auth](doc-api-auth.html)\n\n## **Dependências**\n\n### **Doc2PDF**\nO projeto utiliza a ferramenta **unoconv** para converter arquivos DOCX em PDF. Para instalar as dependências necessárias, execute os seguintes comandos:\n\n1. **Instalar o LibreOffice e o unoconv**:\n    ```bash\n    sudo apt install libreoffice\n    sudo apt install unoconv\n    ```\n\n2. **Converter arquivos DOCX para PDF**:\n    Após a instalação, você pode usar o comando abaixo para realizar a conversão:\n    ```bash\n    sudo /usr/bin/doc2pdf --headless -o /tmp/doc2pdf.pdf /path/to/documento.docx\n    ```\n\n---\n\n### Considerações Finais\nEsse documento tem como objetivo fornecer informações claras e diretas sobre o projeto **BAMES**, suas tecnologias, arquitetura e como colaborar com os testes e documentação. O projeto está em constante evolução, e qualquer contribuição é bem-vinda!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F19950512%2Fbames","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F19950512%2Fbames","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F19950512%2Fbames/lists"}