{"id":36749345,"url":"https://github.com/peulearning/monitoramento-cotacoes","last_synced_at":"2026-01-12T12:42:21.584Z","repository":{"id":327108263,"uuid":"1104978846","full_name":"peulearning/monitoramento-cotacoes","owner":"peulearning","description":"Este repositório foi criado com propósito de estudos em Java para acompanhar as cotações da moeda em relação ao R$ (Real) ,  utilizando uma API pública.","archived":false,"fork":false,"pushed_at":"2025-12-01T19:08:23.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-04T09:22:09.311Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/peulearning.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-27T00:56:58.000Z","updated_at":"2025-12-01T19:08:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/peulearning/monitoramento-cotacoes","commit_stats":null,"previous_names":["peulearning/monitoramento-cotacoes"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/peulearning/monitoramento-cotacoes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peulearning%2Fmonitoramento-cotacoes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peulearning%2Fmonitoramento-cotacoes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peulearning%2Fmonitoramento-cotacoes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peulearning%2Fmonitoramento-cotacoes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peulearning","download_url":"https://codeload.github.com/peulearning/monitoramento-cotacoes/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peulearning%2Fmonitoramento-cotacoes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338983,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2026-01-12T12:42:20.866Z","updated_at":"2026-01-12T12:42:21.578Z","avatar_url":"https://github.com/peulearning.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📈 Monitoramento de Cotações Financeiras (Backend Java)\n\n**Status:** Em Desenvolvimento 🚧 | **Versão:** 1.0.0\n\nUma API RESTful robusta, desenvolvida em Java com Spring Boot 3, projetada para monitorar, armazenar e analisar dados históricos de cotações de moedas em tempo real. Este projeto serve como base para um dashboard financeiro e demonstra um backend bem estruturado, seguindo princípios de **Clean Architecture** e **SOLID**.\n\n## ✨ Funcionalidades Principais\n\n* **API RESTful Segura:** Endpoints para consulta de cotações históricas e análises.\n* **Integração Automatizada:** Agendamento (`@Scheduled`) para buscar e persistir cotações de APIs externas (Ex: Câmbio USD/BRL).\n* **Persistência Histórica:** Armazenamento dos dados em **PostgreSQL** com **Spring Data JPA**.\n* **Autenticação JWT:** Implementação de segurança com **Spring Security** e **JSON Web Tokens (JWT)**.\n* **Recurso de Contribuição:** Endpoint exclusivo para geração de **QR Code Pix Estático**, demonstrando integração com serviços de pagamento (simulado).\n* **Monitoramento:** Uso de **Spring Actuator** para verificação da saúde da aplicação.\n\n## 📐 Arquitetura do Projeto (Clean Architecture \u0026 SOLID)\n\nA estrutura do projeto adota a Clean Architecture para garantir a separação de responsabilidades, testabilidade e manutenção.\n\n| Camada | Descrição | Princípios SOLID Aplicados |\n| :--- | :--- | :--- |\n| **`domain`** | Contém Entidades (regras de negócio puras), Casos de Uso (a lógica principal) e Interfaces. **Independente** de frameworks. | **SRP** (Single Responsibility Principle) e **DIP** (Dependency Inversion Principle). |\n| **`application`** | Adapta os Casos de Uso para o contexto da aplicação Spring (serviços agendados, transacionais). | **OCP** (Open/Closed Principle) - Aberto para extensão, fechado para modificação. |\n| **`infrastructure`** | Contém implementações concretas de interfaces do `domain`, como Repositórios (JPA), Controladores (REST) e Adapters para APIs externas. | **ISP** (Interface Segregation Principle) - interfaces específicas. |\n\n## 🛠️ Tecnologias Utilizadas\n\n* **Linguagem:** Java (versão 17 estável)\n* **Framework:** Spring Boot 3\n* **Segurança:** Spring Security + JWT\n* **Banco de Dados:** PostgreSQL (Produção) e H2 (Testes)\n* **Persistência:** Spring Data JPA\n* **Integração:** Spring WebClient\n* **Documentação:** Swagger/OpenAPI\n\n## 🚀 Como Executar o Projeto\n\n### Pré-requisitos\n1.  JDK 17 ou superior.\n2.  Docker (Opcional, para rodar o PostgreSQL).\n3.  Maven.\n\n### Passos\n1.  **Clone o Repositório:**\n    ```bash\n    git clone [https://github.com/seunome/monitoramento-cotacoes.git](https://github.com/seunome/monitoramento-cotacoes.git)\n    cd monitoramento-cotacoes\n    ```\n2.  **Configuração do Banco de Dados:**\n    * Crie um banco de dados PostgreSQL.\n    * Configure as credenciais em `src/main/resources/application.properties` (ou `.yml`).\n3.  **Execução:**\n    ```bash\n    ./mvnw spring-boot:run\n    ```\n4.  **Acesso à Documentação:**\n    * Swagger UI estará disponível em: `http://localhost:8080/swagger-ui.html`\n\n## 🔐 Endpoints da API\n\n| Método | Endpoint | Descrição | Proteção |\n| :--- | :--- | :--- | :--- |\n| `POST` | `/api/auth/login` | Gera o token JWT. | Livre |\n| `GET` | `/api/cotacoes/latest` | Retorna a cotação mais recente. | JWT |\n| `GET` | `/api/cotacoes/historico` | Histórico de cotações por período. | JWT |\n| `GET` | `/api/pix/contribuicao` | Gera o payload/imagem do QR Code Pix. | Livre (ou JWT, se preferir) |\n\n---\n## 💡 Pague-me um Café (Contribute)\n\nGostou do projeto? Considere me pagar um café via Pix! Essa funcionalidade é totalmente construída por esta API (demonstrando a integração com a geração de QR Code).\n\n**Chave Pix (Exemplo):** `peuhenry2018@gmail.com`\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeulearning%2Fmonitoramento-cotacoes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeulearning%2Fmonitoramento-cotacoes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeulearning%2Fmonitoramento-cotacoes/lists"}