{"id":27140315,"url":"https://github.com/vinizanindev/picpaysimplificado","last_synced_at":"2025-04-10T00:44:11.617Z","repository":{"id":286513442,"uuid":"961610232","full_name":"vinizanindev/picpaysimplificado","owner":"vinizanindev","description":"Desafio Backend PicPay com Java e Spring boot","archived":false,"fork":false,"pushed_at":"2025-04-06T22:36:45.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T23:25:53.993Z","etag":null,"topics":["java","java-spring","microservice","picpay","spring","spring-boot"],"latest_commit_sha":null,"homepage":"https://github.com/PicPay/picpay-desafio-backend?tab=readme-ov-file#desafio-back-end-picpay","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/vinizanindev.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":"2025-04-06T21:27:05.000Z","updated_at":"2025-04-06T22:36:48.000Z","dependencies_parsed_at":"2025-04-06T23:26:00.515Z","dependency_job_id":"d11bdc34-b94e-4221-9745-c28612b1e372","html_url":"https://github.com/vinizanindev/picpaysimplificado","commit_stats":null,"previous_names":["vinizanindev/picpaysimplificado"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinizanindev%2Fpicpaysimplificado","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinizanindev%2Fpicpaysimplificado/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinizanindev%2Fpicpaysimplificado/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinizanindev%2Fpicpaysimplificado/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vinizanindev","download_url":"https://codeload.github.com/vinizanindev/picpaysimplificado/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247785943,"owners_count":20995644,"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":["java","java-spring","microservice","picpay","spring","spring-boot"],"created_at":"2025-04-08T05:51:41.329Z","updated_at":"2025-04-08T05:51:41.954Z","avatar_url":"https://github.com/vinizanindev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/5/5e/PicPay_Logogrande.png\" width=\"50\"/\u003e PicPay Simplificado\n\nEste projeto é uma API RESTful que simula um sistema de transferências entre usuários, inspirada no funcionamento de plataformas como o PicPay. Ele foi desenvolvido como parte de um desafio técnico para avaliação de conhecimentos em back-end.\n\n\u003e ⚠️ **Importante:** Este projeto foi criado **apenas para fins de estudo e prática pessoal**, com base no desafio proposto pela PicPay. **Não foi submetido ao processo seletivo** e não representa uma tentativa de participação ou avaliação oficial.\n\n## 🚀 Tecnologias utilizadas\n\n- Java 17\n- Spring Boot\n- JPA (Hibernate)\n- H2 Database (em memória)\n- Maven\n- REST Template (para integração com APIs externas)\n- Lombok\n\n## 📌 Requisitos atendidos\n\n✔️ Cadastro de usuários com validações de unicidade (CPF e e-mail)  \n✔️ Diferença entre usuários comuns e lojistas  \n✔️ Transferência entre usuários com verificação de saldo  \n✔️ Lojistas não podem enviar dinheiro, apenas receber  \n✔️ Chamada a API externa para autorização da transação  \n✔️ Transações revertidas em caso de falha  \n✔️ Notificações via mock de API externa  \n✔️ Arquitetura em camadas (Controller, Service, Repository, Domain, DTO)  \n✔️ Código limpo, organizado e pronto para manutenção  \n\n---\n\n## 📂 Estrutura de pastas\n\nsrc/ └── main/ └── java/com/picpaysimplificado/ ├── controller/ ├── domain/ ├── dtos/ ├── repositories/ ├── services/ └── resources/ └── application.properties\n\n---\n\n## 🔄 Endpoints disponíveis\n\n### 📤 POST `/transfer`\n\nRealiza uma transferência entre dois usuários.\n\n**Request:**\n```json\n{\n  \"value\": 100.0,\n  \"payer\": 1,\n  \"payee\": 2\n}\n{\n  \"id\": 1,\n  \"amount\": 100.0,\n  \"sender\": {...},\n  \"receiver\": {...},\n  \"timestamp\": \"2025-04-06T15:00:00\"\n}\n```\n# 👤 POST /users\n## Cria um novo usuário.\n```\n{\n  \"name\": \"Vinicius Zanin\",\n  \"document\": \"12345678901\",\n  \"email\": \"vinicius@email.com\",\n  \"balance\": 500.00,\n  \"userType\": \"COMMON\"\n}\n```\n# ⚙️ Como rodar o projeto\n```\n# Clone o repositório\ngit clone https://github.com/seu-usuario/nome-do-repo.git\ncd nome-do-repo\n\n# Build do projeto\n./mvnw clean install\n\n# Rode a aplicação\n./mvnw spring-boot:run\n\n```\n# 👨‍💻 Desenvolvedor\n\n**Vinicius Zanin**\n[LinkedIn](https://www.linkedin.com/in/viniciuszanin)\n\n# 📝 Observações\nAPI externa para autorização: https://util.devi.tools/api/v2/authorize\n\nAPI externa para notificações: https://util.devi.tools/api/v1/notify\n\nBanco de dados usado: H2 em memória (para facilitar testes locais)\n\nEste projeto é apenas um desafio técnico e não representa o PicPay oficialmente.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinizanindev%2Fpicpaysimplificado","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvinizanindev%2Fpicpaysimplificado","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinizanindev%2Fpicpaysimplificado/lists"}