{"id":23248729,"url":"https://github.com/devgabrielcoelho/walletapi","last_synced_at":"2026-05-07T17:41:18.408Z","repository":{"id":268618686,"uuid":"891513390","full_name":"DevGabrielCoelho/WalletApi","owner":"DevGabrielCoelho","description":"WalletApi é uma API para gerenciamento de carteiras digitais, permitindo criar carteiras, registrar transações, consultar saldos e realizar transferências com possibilidade de estorno. Conta com autenticação segura via JWT e hash de senhas com Argon2. Desenvolvida em C# e ASP.NET Core, usa SQL Server.","archived":false,"fork":false,"pushed_at":"2025-03-06T12:29:49.000Z","size":63,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"DevGabrielCoelho","last_synced_at":"2025-04-06T01:17:04.763Z","etag":null,"topics":["api","argon2","asp-net-core","csharp","dotnet-core","jwt","transactions"],"latest_commit_sha":null,"homepage":"","language":"C#","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/DevGabrielCoelho.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-11-20T13:23:24.000Z","updated_at":"2025-03-06T12:29:52.000Z","dependencies_parsed_at":"2024-12-17T22:31:37.395Z","dependency_job_id":"0dd8d0f1-a23a-4987-864a-dcc2b14ceb0b","html_url":"https://github.com/DevGabrielCoelho/WalletApi","commit_stats":null,"previous_names":["devgabrielcoelho/walletapi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevGabrielCoelho%2FWalletApi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevGabrielCoelho%2FWalletApi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevGabrielCoelho%2FWalletApi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevGabrielCoelho%2FWalletApi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevGabrielCoelho","download_url":"https://codeload.github.com/DevGabrielCoelho/WalletApi/tar.gz/refs/heads/DevGabrielCoelho","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevGabrielCoelho%2FWalletApi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":257616049,"owners_count":22573430,"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":["api","argon2","asp-net-core","csharp","dotnet-core","jwt","transactions"],"created_at":"2024-12-19T08:15:04.776Z","updated_at":"2026-05-07T17:41:13.388Z","avatar_url":"https://github.com/DevGabrielCoelho.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WalletApi\n\nA digital wallet management API, enabling control of financial transactions, balances, and other related functionalities.\n\n## 🛠️ Features\n\n- Creation of users and digital wallets.\n- Record and query of financial transactions.\n- Real-time balance check.\n- Transfer between accounts with the possibility of reversal.\n- Secure authentication and authorization using JWT and Argon2.\n- Docker support for easy deployment.  \n\n## 📋 Prerequisites\n\nMake sure you have the following tools installed on your machine before starting:\n\n- **[Docker](https://www.docker.com/products/docker-desktop/)** (recommended latest version)\n\n## 🚀 Installation and Setup\n\n1. **Clone the repository:**\n\n   ```bash\n   git clone https://github.com/DevGabrielCoelho/WalletApi.git\n   cd WalletApi\n   ```\n\n2. **Configure the environment file:**  \n    Create the `.env` file in the root of the project and add the following configurations (adjust as needed):\n\n   ```.env\n   DEFAULT_CONNECTION=\"Server=msql,1433;Database=WalletDb;User Id=sa;Password=YourStrong!Passw0rd;TrustServerCertificate=True;\"\n\n   LOGGING_LOG_LEVEL_DEFAULT=\"Information\"\n   LOGGING_LOG_LEVEL_MICROSOFT_ASP_NET_CORE=\"Warning\"\n\n   ALLOWED_HOSTS=\"*\"\n\n   ISSUER=\"IssuerNameOrLink(recommended \"http://localhost:5236\")\"\n   AUDIENCE=\"AudienceNameOrLink(recommended \"http://localhost:5236\")\"\n   SIGNIN_KEY=\"YourStrongSigninKey(recommended 128 characters)\"\n\n   SALT_SIZE=IntSaltSize(recommended 16)\n   KEY_SIZE=IntSaltSize(recommended 32)\n   MEMORY_SIZE=IntMemorySize(recommended 15360)\n   ITERATIONS=IntIterations(recommended 2)\n   DEGREE_OF_PARALLELISM=IntDegreeOfParallelism(recommended 1)\n   DELIMITER=\"CharDelimiter(recommended \";\")\"\n\n   DOCKER_SA_PASSWORD=\"YourStrong!Passw0rd\"\n   DOCKER_MSSQL_PID=\"Developer\"\n\n   DOCKER_ASP_NET_CORE_PORT=5236:5236\n   DOCKER_MSQL_PORT=1433:1433\n\n   URLS=http://+:5236\n\n   SQLCMD_COMMAND=/opt/mssql-tools/bin/sqlcmd -S \"mssql,1433\" -U \"sa\" -P \"YourStrong!Passw0rd\" -Q \"SELECT 1\"\n   ```\n\n3. **Start Docker build:**\n\n   ```bash\n   docker-compose up -d --build\n   ```\n\n4. Access the API at:\n   ```\n   http://localhost:5236 (or the port configured in .env)\n   ```\n\n## 🧪 API Endpoints\n\nHere are the available routes and their main functionalities:\n\n- **`GET /api/account/balance/?id=uuid_string`**: Shows the balance of a user.\n- **`POST /api/auth`**: Performs login.\n- **`POST /api/refunding/refound/?createdBy=uuid_string\u0026transactionId=uuid_string`**: Performs a refund.\n- **`POST /api/transaction/transfer/?toAccountId=uuid_string\u0026fromAccountId=uuid_string\u0026value=decimal`**: Performs a transfer.\n- **`POST /api/users/register`**: Creates a new user.\n- **`PUT /api/users/edit-user/?id=uuid_string`**: Edits an existing user.\n\n## 🛠️ Technologies Used\n\n- **C#**: Programming language.\n- **ASP.NET Core**: Framework for building RESTful APIs.\n- **SQL Server**: Relational database.\n- **JWT**: For secure authentication.\n- **Argon2**: For secure password hashing.\n- **Docker**: For containerization and application deployment.\n\n## 📂 Project Structure\n\n```\nsrc/\n├── Controllers/        # Controllers for the API routes\n├── Data/               # Database context\n├── docker/             # docker/.sh file\n├── Dtos/               # Data transfer objects\n├── Enums/              # Enum definitions\n├── Interfaces/         # Contracts for abstractions\n├── Mappers/            # DTO to Model conversions and vice versa\n├── Models/             # Data models\n├── Properties/         # Project configurations\n└── Repository/         # Implementations of interfaces using DbContext\n```\n\n## 📞 Contact\n\nFor questions, suggestions, or collaborations, feel free to reach out:\n\n- **Gabriel Coelho**\n- GitHub: [DevGabrielCoelho](https://github.com/DevGabrielCoelho)\n- Email: [gabriel.coelhosousasantos.pv@gmail.com](mailto:gabriel.coelhosousasantos.pv@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevgabrielcoelho%2Fwalletapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevgabrielcoelho%2Fwalletapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevgabrielcoelho%2Fwalletapi/lists"}