{"id":25435695,"url":"https://github.com/pauloruszel/api-gen-barcode","last_synced_at":"2025-06-19T07:34:24.557Z","repository":{"id":187207367,"uuid":"676497293","full_name":"pauloruszel/api-gen-barcode","owner":"pauloruszel","description":"Api para gerar QR Codes, que retorna imagem png ou json com o QR Code.","archived":false,"fork":false,"pushed_at":"2024-02-15T15:06:33.000Z","size":66,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-17T07:35:34.504Z","etag":null,"topics":["docker-compose","dockerfile","java21","lombok","webflux","zxing-library"],"latest_commit_sha":null,"homepage":"","language":"Java","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/pauloruszel.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":"2023-08-09T10:33:31.000Z","updated_at":"2024-02-09T19:31:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"8dcd8a54-02b9-499c-aae7-68f7a109083f","html_url":"https://github.com/pauloruszel/api-gen-barcode","commit_stats":null,"previous_names":["pauloruszel/api-gen-barcode"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pauloruszel%2Fapi-gen-barcode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pauloruszel%2Fapi-gen-barcode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pauloruszel%2Fapi-gen-barcode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pauloruszel%2Fapi-gen-barcode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pauloruszel","download_url":"https://codeload.github.com/pauloruszel/api-gen-barcode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254254041,"owners_count":22039792,"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":["docker-compose","dockerfile","java21","lombok","webflux","zxing-library"],"created_at":"2025-02-17T07:31:30.829Z","updated_at":"2025-05-15T01:11:11.588Z","avatar_url":"https://github.com/pauloruszel.png","language":"Java","readme":"# 🎯 API QR Code\nEste projeto consiste em uma API RESTful versátil projetada para a geração de QR Codes personalizáveis e o gerenciamento eficiente de convidados para eventos diversos. Através desta API, usuários podem criar QR Codes adaptáveis, permitindo ajustes em tamanho, cor, e oferecendo alternativas entre download direto e visualização online.\n\nAlém de sua funcionalidade principal de geração de QR Codes, a API se estende para facilitar o gerenciamento de convidados, incorporando recursos para o cadastro e a confirmação de presença de convidados via QR Codes únicos. Esses QR Codes podem ser utilizados para uma variedade de propósitos, incluindo, mas não se limitando a, controle de acesso a eventos, validação de identidade e facilitação no gerenciamento de registros de presença.\n\nImplementada com uma arquitetura baseada em microserviços, esta API adota as melhores práticas de desenvolvimento, incluindo separação de responsabilidades através da distinção entre camadas de Controller e Service, injeção de dependências para maior flexibilidade e manutenibilidade do código, e o uso de padrões reativos com Spring WebFlux para lidar com eventos de maneira não bloqueante, garantindo assim um desempenho superior em ambientes com alto volume de requisições.\n\nEste projeto é ideal para organizadores de eventos, sistemas de gestão de acesso, e desenvolvedores que buscam integrar funcionalidades de geração de QR Code e gerenciamento de convidados de forma eficiente e escalável em suas aplicações.\n\n## Padrões de microserviço utilizados\n* Separação em camadas (Controller, Service)\n* Injeção de dependências com Spring\n* Uso de Record para representação de dados\n* Reativo com Spring WebFlux\n\n## ✔️ Tecnologias e bibliotecas usadas\n- `Java 21`\n- `Spring Boot 3.2.2`\n- `Spring WebFlux`\n- `Lombok`\n- `ZXing`\n- `PostgreSQL` com R2DBC para reatividade no acesso ao banco de dados\n- `Docker` para conteinerização\n\n## Endpoints\n### Gerar QR Code\n\n- Método: `GET`\n\n```bash\nURL: /api/v1/qrcode?texto={texto}\u0026scale={scale}\u0026foreground={foreground}\u0026background={background}\u0026download={download}\u0026base64={base64}\n```\nDescrição: Gera um QR Code com as opções especificadas.\n\nParâmetros\n- `texto:` O texto que será codificado no QR Code.\n- `scale:` A escala (tamanho) do QR Code.\n- `foreground:` A cor do primeiro plano do QR Code.\n- `download:` A cor do plano de fundo do QR Code.\n- `download:` Opção para download do QR Code (valores possíveis: \"true\", \"false\").\n- `base64:` Opção para retornar o QR Code em formato base64 (valores possíveis: \"true\", \"false\").\n\n### Exemplo de teste\nVocê pode testar o endpoint com o seguinte payload:\n```json\n{\n  \"texto\": \"https://www.reddit.com\",\n  \"scale\": 200,\n  \"foreground\": \"#9C27B0\",\n  \"background\": \"#E1BEE7\",\n  \"download\": \"false\",\n  \"base64\": \"false\"\n}\n```\n\n### Cadastrar Convidado\n- Método: `POST`\n\n```bash\nURL: localhost:8080/api/v1/convidados/cadastrar\n```\nDescrição: Cadastra um convidado e gera um QR Code único para confirmação de presença.\n\nExemplo de Payload para Cadastro de Convidado\n```json\n{\n  \"nome\": \"Fulano de Tal\",\n  \"email\": \"fulano@example.com\"\n}\n```\nNota: Os campos idUnico, status e qrCode são gerados automaticamente pelo sistema e não devem ser incluídos no payload de envio.\n\n## Confirmar Presença\n- Método: `POST`\n\n```bash\nURL: localhost:8080/api/v1/convidados/confirmar/{idUnico}\n```\nDescrição: Confirma a presença de um convidado através do ID único fornecido pelo QR Code.\n\nExemplo para Confirmar Convidado\n```bash\nlocalhost:8080/api/v1/convidados/confirmar/e5b87a8c-6ed4-4995-b272-66d3d9dc5ba9\n```\nImagem com os endpoints no Swagger:\n\nURL para acessar o Swagger:\n\n```bash\nlocalhost:8080/swagger-ui.html\n```\n\n![image](https://github.com/pauloruszel/api-gen-barcode/assets/12766450/85d34995-9e91-4125-a8bf-92aea8010482)\n\n\n## 🛠️ Execução do projeto\nPara executar o projeto, é necessário ter o Java 21 e o Maven instalados, além de Docker para a conteinerização.\n\n## 🚀 Como usar\n## Clone o repositório:\n```bash\ngit clone https://github.com/pauloruszel/api-gen-barcode.git\n```\n## 📁 Entre na pasta do projeto:\n```bash\ncd api-gen-barcode\n```\n### Execute o comando abaixo para compilar e empacotar o projeto:\n```bash\nmvn clean package\n```\n## 🐳 Execute o docker-compose:\n```bash\ndocker-compose up --build\n```\nA API estará disponível em http://localhost:8080.\n\n## Observações:\nA aplicação permite a geração de QR Codes personalizados, incluindo opções para definir o tamanho, as cores do primeiro plano e do fundo, e se a imagem deve ser baixada ou visualizada no navegador. Também é possível retornar a imagem em formato base64.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpauloruszel%2Fapi-gen-barcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpauloruszel%2Fapi-gen-barcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpauloruszel%2Fapi-gen-barcode/lists"}