{"id":30657675,"url":"https://github.com/charmingruby/mvplease","last_synced_at":"2025-08-31T11:16:44.895Z","repository":{"id":227135077,"uuid":"770470447","full_name":"charmingruby/mvplease","owner":"charmingruby","description":"Consistent and scalable Go MVP boilerplate.","archived":false,"fork":false,"pushed_at":"2024-06-02T13:53:20.000Z","size":93,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-21T02:07:47.580Z","etag":null,"topics":[],"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/charmingruby.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-03-11T15:56:46.000Z","updated_at":"2024-06-02T13:53:22.000Z","dependencies_parsed_at":"2024-06-02T15:05:19.909Z","dependency_job_id":"6ccdc1ad-1c9c-49b6-a28a-b8a00c9d6951","html_url":"https://github.com/charmingruby/mvplease","commit_stats":null,"previous_names":["charmingruby/mvplease"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/charmingruby/mvplease","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmingruby%2Fmvplease","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmingruby%2Fmvplease/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmingruby%2Fmvplease/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmingruby%2Fmvplease/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charmingruby","download_url":"https://codeload.github.com/charmingruby/mvplease/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmingruby%2Fmvplease/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272971557,"owners_count":25024100,"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-08-31T02:00:09.071Z","response_time":79,"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":[],"created_at":"2025-08-31T11:16:37.229Z","updated_at":"2025-08-31T11:16:44.887Z","avatar_url":"https://github.com/charmingruby.png","language":"Go","readme":"# Exemplo de documentação\n\nDescrição...\n\n# Requisitos\n\nAlgumas ferramentas são necessárias para utilizar a aplicação:\n\n- Docker\n\n# Execução\n\nO ambiente de execução é inserido em um Docker Compose, onde possui tanto os serviços de banco de dados Postgres quanto a própria API Golang. Para executar, clone o repositório e execute os comandos:\n\n```\n$ docker compose up --build -d\n```\n\n# Tecnologias e Bibliotecas\n\n- Golang 1.22 - Linguagem de programação\n- PostgreSQL - Banco de dados\n- SQLX - Executar operações no banco de dados\n- Golang Migrate - Executar migrações no banco de dados\n- Testify - Realizar testes mais claros\n\n# API\n\nO servidor HTTP foi todo feito com ferramentas nativas do Golang.\n\n## Autenticação\n\nA autenticação foi feita no formato JWT, armazenando o `id` do usuário no campo `sub` do token.\n\nPara acessar uma rota que requer autenticação, é necessário enviar um `token de acesso`, que é recebido quando se autentica, e enviar no cabeçalho da requisição o header `Authorization` e o valor `Bearer seu_token`.\n\n## Rotas\n\n| Método | URL                                   | Privada | Funcionalidade                                                                            |\n| :----- | ------------------------------------- | :-----: | ----------------------------------------------------------------------------------------- |\n| POST   | /api/v1/login                         |    -    | Autentica utilizando CPF e Secret da conta, retornando JWT para acesso de rotas privadas. |\n| GET    | /api/v1/accounts                      |    -    | Retorna todas contas cadastradas.                                                         |\n| POST   | /api/v1/accounts                      |    -    | Cria uma nova conta.                                                                      |\n| GET    | /api/v1/accounts/{account_id}/balance |    -    | Retorna o saldo da conta.                                                                 |\n| GET    | /api/v1/transfers                     |   Sim   | Retorna a lista de transferências em que a conta serviu como origem da operação.          |\n| POST   | /api/v1/transfers                     |   Sim   | Faz uma transferência da conta autenticada para uma conta informada.                      |\n\n## Dados para execução\n\nModelo padrão de resposta\n\n```\n{\n    \"message\": \"mensagem do contexto\",\n    \"status_code\": 200,\n    \"data\": {\n        ...conteúdo\n    }\n}\n```\n\n### `[POST]` /api/v1/accounts\n\nCaso de Sucesso: Rota para criar uma conta, retornando os dados da conta e status code 201.\n\nHeader: `Authorization: Bearer seu_token`\n\nBody da requisição:\n\n```\n{\n    \"name\": \"dummyy doe\",\n    \"cpf\": \"24628728097\",\n    \"secret\": \"password123\"\n}\n```\n\nBody da resposta:\n\n```\n{\n    \"message\": \"Account created\",\n    \"status_code\": 201\n}\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharmingruby%2Fmvplease","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharmingruby%2Fmvplease","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharmingruby%2Fmvplease/lists"}