{"id":26584206,"url":"https://github.com/lukasveiga/customers-users-transactions","last_synced_at":"2026-04-09T07:35:08.884Z","repository":{"id":247686795,"uuid":"826538808","full_name":"Lukasveiga/customers-users-transactions","owner":"Lukasveiga","description":"API that allows customers to know all transactions for a given user","archived":false,"fork":false,"pushed_at":"2024-09-15T02:01:54.000Z","size":420,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-09-15T15:14:02.084Z","etag":null,"topics":["golang","grpc","nginx","rest-api","swagger"],"latest_commit_sha":null,"homepage":"","language":"Go","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/Lukasveiga.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":"2024-07-09T22:46:35.000Z","updated_at":"2024-09-15T02:01:58.000Z","dependencies_parsed_at":"2024-07-10T04:24:08.524Z","dependency_job_id":"436abd4a-2b9b-4c98-bf83-35fc360fa70a","html_url":"https://github.com/Lukasveiga/customers-users-transactions","commit_stats":null,"previous_names":["lukasveiga/customers-users-transactions"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lukasveiga%2Fcustomers-users-transactions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lukasveiga%2Fcustomers-users-transactions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lukasveiga%2Fcustomers-users-transactions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lukasveiga%2Fcustomers-users-transactions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lukasveiga","download_url":"https://codeload.github.com/Lukasveiga/customers-users-transactions/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245082375,"owners_count":20557960,"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":["golang","grpc","nginx","rest-api","swagger"],"created_at":"2025-03-23T09:32:20.950Z","updated_at":"2025-12-30T23:35:32.826Z","avatar_url":"https://github.com/Lukasveiga.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://neonxp.gallerycdn.vsassets.io/extensions/neonxp/gotools/0.1.5/1691451648679/Microsoft.VisualStudio.Services.Icons.Default\" width=80/\u003e\n    \u003ch2\u003eDesafio Técnico Golang: Transação de Usuários \u003c/h2\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n     \u003ca alt=\"Golang\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Golang-v1.22.4-blue.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca alt=\"Chi\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Gin-v1.10.0-purple.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca alt=\"Viper\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Viper-v2-brightgreen.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca alt=\"PostgreSQL\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/PostgreSQL-v16-lightgreen.svg\" /\u003e\n    \u003c/a\u003e\n     \u003ca alt=\"Goose\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Goose-v3.0.0-orange.svg\" /\u003e\n    \u003c/a\u003e\n     \u003ca alt=\"Testcontainers\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/TestcontainersGo-v0.31.0-yellow.svg\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"justify\"\u003e\nO objetivo do desafio é criar uma API RESTful para consultar transações de contas e gerar um PDF contendo as transações, focando em alta performance, escalabilidade e boas práticas de desenvolvimento.\u003cbr\u003e\u003cbr\u003e\nFonte: https://github.com/devconductor/desafio-golang\n\u003c/div\u003e\n\n\n## Sobre o desafio:\n\nO desafio consiste na construção de dois serviços que permitam:\n\u003col\u003e\n    \u003cli\u003eCriar, consultar, atualizar e remover todas as trasações de uma determinada conta.\u003c/li\u003e\n    \u003cli\u003eGerar um PDF contendo uma tabela simples com as transações de uma conta específica.\u003c/li\u003e\n\u003c/ol\u003e\n\n## Requisitos do Projeto:\n\n\u003col\u003e\n    \u003cli\u003eCriação de uma API RESTful com todos os CRUDs.\u003c/li\u003e\n    \u003cli\u003eDocumentação com Swagger/OpenAPI.\u003c/li\u003e\n    \u003cli\u003eEndpoint GET /contas/{id}/transacoes.pdf para retornar um PDF com uma tabela das transações de uma conta específica.\u003c/li\u003e\n\u003c/ol\u003e\n\n## Diferenciais utilizados:\n\n\u003col\u003e\n    \u003cli\u003eImplementação de gRPC.\u003c/li\u003e\n    \u003cli\u003eCriação de Dockerfile para facilitar a execução do projeto em ambientes padronizados.\u003c/li\u003e\n    \u003cli\u003eTestes unitários abrangentes.\u003c/li\u003e\n    \u003cli\u003eConfiguração de CI/CD utilizando GitHub Actions.\u003c/li\u003e\n    \u003cli\u003eSuporte a multi-tenancy.\u003c/li\u003e\n    \u003cli\u003eLayout e design aprimorado para o PDF gerado.\u003c/li\u003e\n\u003c/ol\u003e\n\n## Tecnologias Utilizadas:\n\n\u003cul\u003e\n    \u003cli\u003e\u003cb\u003eLinguagem\u003c/b\u003e: Golang\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eBanco de Dados\u003c/b\u003e: PostgreSQL\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eTestes Unitários\u003c/b\u003e: Testify\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eContainerização\u003c/b\u003e: Docker\u003c/li\u003e\n    \u003cli\u003e\u003cb\u003eCI/CD\u003c/b\u003e: GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\n## Diagrama de casos de uso:\n\u003cimg src=\"./assets/diagram-updated.png\"\u003e\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukasveiga%2Fcustomers-users-transactions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukasveiga%2Fcustomers-users-transactions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukasveiga%2Fcustomers-users-transactions/lists"}