{"id":19742267,"url":"https://github.com/tavareshenrique/rocketpay-nlw","last_synced_at":"2026-05-10T16:03:18.866Z","repository":{"id":105064147,"uuid":"341383218","full_name":"tavareshenrique/rocketpay-nlw","owner":"tavareshenrique","description":"Rocketpay é uma API criada utilizando Elixir e Phoenix durante a NLW#4 da Rocketseat.","archived":false,"fork":false,"pushed_at":"2021-02-28T21:22:33.000Z","size":117,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-10T20:18:06.949Z","etag":null,"topics":["elixir","elixir-lang","nlw","nlw-4","phoenix-framework","rocketpay","rocketseat","rocketseat-nlw"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tavareshenrique.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-02-23T00:55:01.000Z","updated_at":"2021-02-28T21:22:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"7334cff8-6952-4a65-8652-25faa7e50317","html_url":"https://github.com/tavareshenrique/rocketpay-nlw","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tavareshenrique%2Frocketpay-nlw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tavareshenrique%2Frocketpay-nlw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tavareshenrique%2Frocketpay-nlw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tavareshenrique%2Frocketpay-nlw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tavareshenrique","download_url":"https://codeload.github.com/tavareshenrique/rocketpay-nlw/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241072501,"owners_count":19904782,"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":["elixir","elixir-lang","nlw","nlw-4","phoenix-framework","rocketpay","rocketseat","rocketseat-nlw"],"created_at":"2024-11-12T01:29:53.380Z","updated_at":"2026-05-10T16:03:18.762Z","avatar_url":"https://github.com/tavareshenrique.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n   \u003cimg src=\"https://raw.githubusercontent.com/tavareshenrique/rocketpay-nlw/211393e0de5fd98d43682b5337cc6f9e125cf7b0/assets/logo.svg\" alt=\"Rocketpay\" width=\"280\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n   \u003ca href=\"https://www.linkedin.com/in/tavareshenrique/\"\u003e\n      \u003cimg alt=\"Henrique Tavares\" src=\"https://img.shields.io/badge/-Henrique Tavares-4e5acf?style=flat\u0026logo=Linkedin\u0026logoColor=white\" /\u003e\n   \u003c/a\u003e\n \u003cimg alt=\"Repository size\" src=\"https://img.shields.io/github/repo-size/tavareshenrique/rocketpay-nlw?color=4e5acf\"\u003e\n\n  \u003ca aria-label=\"Last Commit\" href=\"https://github.com/tavareshenrique/rocketpay-nlw/commits/master\"\u003e\n    \u003cimg alt=\"Last commit on GitHub\" src=\"https://img.shields.io/github/last-commit/tavareshenrique/rocketpay-nlw?color=4e5acf\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/tavareshenrique/rocketpay-nlw/commits/master\"\u003e\n    \u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/tavareshenrique/rocketpay-nlw?color=4e5acf\"\u003e\n  \u003c/a\u003e\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-MIT-4e5acf\"\u003e\n\u003c/p\u003e\n\n\u003e \u003cb\u003eRocketpay\u003c/b\u003e é uma API criada utilizando Elixir e Phoenix durante a NLW#4 da [Rocketseat](https://github.com/Rocketseat). Esse projeto permite a transação de valores entre 2 usuários.\n\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eO \u003cstrong\u003eRocketpay\u003c/strong\u003e foi desenvolvido com ❤︎ pelo\n    \u003ca href=\"https://github.com/tavareshenrique\"\u003eHenrique Tavares\u003c/a\u003e\n  \u003c/sub\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\" style=\"margin-top: 16px\" \u003e\u003ca href=\"https://insomnia.rest/run/?label=%5BRocketseat%5D%20Rocketpay\u0026uri=https%3A%2F%2Fraw.githubusercontent.com%2Ftavareshenrique%2Frocketpay-nlw%2Fmain%2Fassets%2FInsomnia_2021-02-28.json\" target=\"_blank\"\u003e\u003cimg src=\"https://insomnia.rest/images/run.svg\" alt=\"Run in Insomnia\"\u003e\u003c/a\u003e\u003c/div\u003e\n\n# :pushpin: Conteúdo\n\n- [API](#floppy_disk-api)\n  - [Accounts](#accounts)\n    - [Deposit](#deposit)\n    - [Withdraw](#withdraw)\n    - [Transaction](#transaction)\n  - [User](#user)\n    - [Create User](#create-user)\n- [Tecnologias](#computer-tecnologias)\n- [Executando](#construction_worker-executando)\n- [Autores](#computer-autores)\n- [Licença](#closed_book-licença)\n\n# :floppy_disk: API\n\n# Accounts\n\n## Deposit\n\nEsse End-Point permite o deposito de um determinado valor na conta do usuário.\n\n- **URL**\n\n  `/accounts/:userId/deposit`\n\n- **Method:**\n\n  `POST`\n\n- **URL Params**\n\n  - **Required:**\n\n    `:userId` **-\u003e ID do usuário que será feito o deposito.**\n    `Basic Auth` **-\u003e Informe o nome de usuário \"henrique\" e senha \"123456\" como autenticação básica**\n\n- **JSON Example:**\n\n  ```json\n  {\n    \"value\": \"100.50\"\n  }\n  ```\n\n- **Success Response:**\n\n  - **Code:** 200 \u003cbr /\u003e\n    **Content:**\n\n    ```json\n    {\n      \"account\": {\n        \"balance\": \"100.50\",\n        \"id\": \"a44e81ee-7852-49d0-85b1-e3fa5775e3a7\"\n      },\n      \"message\": \"Ballance changed successfully\"\n    }\n    ```\n\n---\n\n## Withdraw\n\nEsse End-Point permite o saque de um determinado valor na conta do usuário.\n\n- **URL**\n\n  `/accounts/:userId/withdraw`\n\n- **Method:**\n\n  `POST`\n\n- **URL Params**\n\n  - **Required:**\n\n    `:userId` **-\u003e ID do usuário que será feito o deposito.**\n    `Basic Auth` **-\u003e Informe o nome de usuário \"henrique\" e senha \"123456\" como autenticação básica**\n\n- **JSON Example:**\n\n  ```json\n  {\n    \"value\": \"50.50\"\n  }\n  ```\n\n- **Success Response:**\n\n  - **Code:** 200 \u003cbr /\u003e\n    **Content:**\n\n    ```json\n    {\n      \"account\": {\n        \"balance\": \"50\",\n        \"id\": \"a44e81ee-7852-49d0-85b1-e3fa5775e3a7\"\n      },\n      \"message\": \"Ballance changed successfully\"\n    }\n    ```\n\n---\n\n## Transaction\n\nEsse End-Point permite a transferência entre dois usuários.\n\n- **URL**\n\n  `/accounts/transaction`\n\n- **Method:**\n\n  `POST`\n\n- **URL Params**\n\n  - **Required:**\n\n    `Basic Auth` **-\u003e Informe o nome de usuário \"henrique\" e senha \"123456\" como autenticação básica**\n\n- **JSON Example:**\n\n  ```json\n  {\n    \"value\": \"39.60\",\n    \"from\": \"a44e81ee-7852-49d0-85b1-e3fa5775e3a7\",\n    \"to\": \"98981aca-7c3c-4f1d-8520-1cbf0445dd11\"\n  }\n  ```\n\n- **Success Response:**\n\n  - **Code:** 200 \u003cbr /\u003e\n    **Content:**\n\n    ```json\n    {\n      \"message\": \"Transaction done successfully\",\n      \"transaction\": {\n        \"from_account\": {\n          \"balance\": \"120.80\",\n          \"id\": \"a44e81ee-7852-49d0-85b1-e3fa5775e3a7\"\n        },\n        \"to_account\": {\n          \"balance\": \"368.80\",\n          \"id\": \"98981aca-7c3c-4f1d-8520-1cbf0445dd11\"\n        }\n      }\n    }\n    ```\n\n---\n\n# User\n\n## Create User\n\nEsse End-Point permit a criação de um usuário\n\n- **URL**\n\n  `/users`\n\n- **Method:**\n\n  `POST`\n\n- **JSON Example:**\n\n  ```json\n  {\n    \"name\": \"Henrique\",\n    \"nickname\": \"henrique\",\n    \"email\": \"henrique@gmail.com\",\n    \"age\": 24,\n    \"password\": \"123456\"\n  }\n  ```\n\n- **Success Response:**\n\n  - **Code:** 200 \u003cbr /\u003e\n    **Content:**\n\n    ```json\n    {\n      \"message\": \"User created\",\n      \"user\": {\n        \"account\": {\n          \"balance\": \"0.00\",\n          \"id\": \"a44e81ee-7852-49d0-85b1-e3fa5775e3a7\"\n        },\n        \"id\": \"d88ffdf0-0cf7-4a32-ac18-7ac00b8eaaaf\",\n        \"name\": \"Henrique\",\n        \"nickname\": \"henrique\"\n      }\n    }\n    ```\n\n---\n\n# :computer: Tecnologias\n\nEste projeto foi feito utilizando as seguintes tecnologias:\n\n- [Elixir](https://github.com/elixir-lang/elixir)\n- [Phoenix](https://github.com/phoenixframework/phoenix)\n- [Ecto](https://github.com/elixir-ecto/ecto)\n- [Postgres](https://www.postgresql.org/)\n- [Credo](https://github.com/rrrene/credo)\n- [pbkdf2_elixir](https://github.com/riverrun/pbkdf2_elixir)\n- [decimal](https://github.com/ericmj/decimal)\n- [excoveralls](https://github.com/parroty/excoveralls)\n\n# :construction_worker: Executando\n\n**Passo 1:**\n\n```bash\n# Clone o Repositório\n$ git@github.com:tavareshenrique/rocketpay-nlw.git\n```\n\n**Passo 2:**\n\n```bash\n# É necessário que você tenha o banco Postgres rodando em sua máquina, seja Docker ou não.\n```\n\n**Passo 3:**\n\n```bash\n# Crie dois bancos com os seguintes nomes:\n\nrocketpay_dev\n# e\nrocketpay_test\n```\n\n**Passo 4:**\n\n```bash\n# Configure seu usuário, senha etc. do banco nos arquivos:\n\nconfig \u003e dev.exs\n# e\nconfig \u003e test.exs\n```\n\n**Passo 5:**\n\n```bash\n# Rode esse comando para ele criar/registrar o banco de dados\n$ mix ecto.create\n```\n\n**Passo 5:**\n\n```bash\n# Rodando as Migrations\n$ mix ecto.migrate\n```\n\n**Passo 5:**\n\n```bash\n# Pronto! Agora é só executar o Server;\n$ mix phx.server\n```\n\nAcesse \u003chttp://localhost:3000\u003e para ver o resultado.\n\n# :computer: Autores\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"http://github.com/tavareshenrique/\"\u003e\n        \u003cimg src=\"https://avatars1.githubusercontent.com/u/27022914?v=4\" width=\"100px;\" alt=\"Henrique Tavares\"/\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\n          \u003cb\u003eHenrique Tavares\u003c/b\u003e\n        \u003c/sub\u003e\n       \u003c/a\u003e\n       \u003cbr /\u003e\n       \u003ca href=\"https://www.linkedin.com/in/tavareshenrique/\" title=\"Linkedin\"\u003e@tavareshenrique\u003c/a\u003e\n       \u003cbr /\u003e\n       \u003ca href=\"https://github.com/tavareshenrique/fastfeet-api/commits?author=tavareshenrique\" title=\"Code\"\u003e💻\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"http://github.com/tavareshenrique/\"\u003e\n        \u003cimg src=\"https://avatars0.githubusercontent.com/u/28929274?s=200\u0026v=4\" width=\"100px;\" alt=\"Henrique Tavares\"/\u003e\n        \u003cbr /\u003e\n        \u003csub\u003e\n          \u003cb\u003eRocketseat\u003c/b\u003e\n        \u003c/sub\u003e\n       \u003c/a\u003e\n       \u003cbr /\u003e\n       \u003ca href=\"https://github.com/Rocketseat\" title=\"Linkedin\"\u003e@Rocketseat\u003c/a\u003e\n       \u003cbr /\u003e\n       \u003ca href=\"https://github.com/tavareshenrique/fastfeet-api/commits?author=tavareshenrique\" title=\"Creators\"\u003e🚀\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n# :closed_book: Licença\n\nEste projeto está sob a licença [MIT](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftavareshenrique%2Frocketpay-nlw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftavareshenrique%2Frocketpay-nlw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftavareshenrique%2Frocketpay-nlw/lists"}